Справочник за манифест на App

Манифест файлът stripe-app.json е централната конфигурация за вашия Stripe App. Той декларира идентичността, разрешенията, UI изгледите, политиките за сигурност и поведението след инсталиране на вашия app.

Пример за пълен манифест

{
"id": "com.tajo.brevo-integration",
"version": "1.2.0",
"name": "Tajo for Brevo",
"icon": "./assets/icon.png",
"distribution_type": "public",
"sandbox_install_compatible": true,
"stripe_api_access_type": "oauth",
"allowed_redirect_uris": [
"https://tajo.io/stripe/callback",
"https://tajo.io/stripe/oauth/complete"
],
"permissions": [
{
"permission": "customer_read",
"purpose": "Read customer profiles to sync with Brevo contacts"
},
{
"permission": "customer_write",
"purpose": "Update customer metadata with Brevo sync status"
},
{
"permission": "charge_read",
"purpose": "Access payment history for Brevo event tracking"
},
{
"permission": "product_read",
"purpose": "Sync product catalog to Brevo for personalized campaigns"
},
{
"permission": "event_read",
"purpose": "Subscribe to real-time events for Brevo automation triggers"
},
{
"permission": "invoice_read",
"purpose": "Track invoice lifecycle events in Brevo"
}
],
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
},
{
"viewport": "stripe.dashboard.customer.list",
"component": "CustomerListView"
},
{
"viewport": "stripe.dashboard.home.overview",
"component": "OverviewView"
},
{
"viewport": "stripe.dashboard.drawer.default",
"component": "DrawerView"
},
{
"viewport": "stripe.dashboard.settings",
"component": "SettingsView"
},
{
"viewport": "stripe.dashboard.onboarding",
"component": "OnboardingView"
}
],
"content_security_policy": {
"connect-src": [
"https://api.tajo.io",
"https://api.brevo.com"
],
"image-src": [
"https://cdn.tajo.io",
"https://assets.brevo.com"
],
"purpose": "Connect to Tajo API for data sync and Brevo API for contact management"
}
},
"post_install_action": {
"type": "onboarding"
},
"constants": {
"API_BASE_URL": "https://api.tajo.io/v1",
"SYNC_INTERVAL_SECONDS": "300"
}
}

Справочник за схемата

Полета на горно ниво

ПолеТипЗадължителноОписание
idstringДаУникален идентификатор на app в обратна доменна нотация
versionstringДаСемантичен низ за версия (напр. "1.2.0")
namestringДаПоказвано им, видимо на пазара (максимум 35 знака)
iconstringДаОтносителен път до файла с иконата на app (300x300 PNG или SVG)
distribution_typestringДа"public" за пазара или "private" за вътрешна употреба
sandbox_install_compatiblebooleanНеДали app-ът може да бъде инсталиран в sandbox/тестов режим
stripe_api_access_typestringНеМетод за достъп до API: "oauth" или "api_key"
allowed_redirect_urisstring[]НеРазрешени OAuth URI за пренасочване за потока на инсталиране
permissionsPermissionRequest[]ДаМасив от заявки за разрешения
ui_extensionUIExtensionManifestНеКонфигурация на UI разширение
post_install_actionPostInstallActionНеДействие след инсталиране на app
constantsobjectНеДвойки ключ-стойност, достъпни в app-а по време на изпълнение

Типове действия след инсталиране

ТипПоведение
"onboarding"Отваря изгледа за въвеждане на app-а в таблото
"settings"Отваря изгледа за настройки на app-а в таблото
"external"Пренасочва потребителя към външен URL (изисква поле url)

Валидиране

Валидирайте вашия манифест преди качване:

Terminal window
# Валидиране на синтакса и схемата на манифеста
stripe apps validate
# Проверка за чести проблеми
stripe apps check

Чести грешки при валидиране:

ГрешкаПричинаПоправка
Invalid permissionНеизвестен идентификатор на разрешениеПроверете Справочник за разрешения
Invalid viewportНеизвестен идентификатор на viewportПроверете Справочник за viewport-и
Missing purposeРазрешение без поле purposeДобавете низ за purpose към всяко разрешение
Invalid versionНиз за версия, несъответстващ на semverИзползвайте формат MAJOR.MINOR.PATCH
Icon not foundПътят на иконата не се разрешаваПроверете дали файлът с иконата съществува на посочения път

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI асистент

Здравейте! Попитайте ме за документацията.

Започнете безплатно с Brevo