App Manifest Referenz
Die stripe-app.json Manifest-Datei ist die zentrale Konfiguration für Ihre Stripe App. Sie deklariert die Identität, Berechtigungen, UI-Ansichten, Sicherheitsrichtlinien und das Post-Install-Verhalten Ihrer App.
Vollständiges Manifest-Beispiel
{ "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" }}Schema-Referenz
Top-Level-Felder
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja | Eindeutiger App-Bezeichner in umgekehrter Domain-Notation (Slug-Format) |
version | string | Ja | Semantische Versionszeichenfolge (z.B. "1.2.0") |
name | string | Ja | Anzeigename im Marketplace (max. 35 Zeichen) |
icon | string | Ja | Relativer Pfad zur App-Icon-Datei (300x300 PNG oder SVG) |
distribution_type | string | Ja | "public" für Marketplace oder "private" für internen Gebrauch |
sandbox_install_compatible | boolean | Nein | Ob die App im Sandbox-/Testmodus installiert werden kann |
stripe_api_access_type | string | Nein | API-Zugriffsmethode: "oauth" oder "api_key" |
allowed_redirect_uris | string[] | Nein | Erlaubte OAuth-Redirect-URIs für den Installationsflow |
permissions | PermissionRequest[] | Ja | Array von Berechtigungsanfragen |
ui_extension | UIExtensionManifest | Nein | UI Extension-Konfiguration |
post_install_action | PostInstallAction | Nein | Aktion nach der App-Installation |
constants | object | Nein | Schlüssel-Wert-Paare, die zur Laufzeit in der App zugänglich sind |
Validierung
Validieren Sie Ihr Manifest vor dem Upload:
# Validate manifest syntax and schemastripe apps validate
# Check for common issuesstripe apps checkHäufige Validierungsfehler:
| Fehler | Ursache | Lösung |
|---|---|---|
Invalid permission | Unbekannter Berechtigungsbezeichner | Prüfen Sie die Berechtigungsreferenz |
Invalid viewport | Unbekannter Viewport-Bezeichner | Prüfen Sie die Viewports Referenz |
Missing purpose | Berechtigung ohne Purpose-Feld | Fügen Sie jedem Permission einen Purpose-String hinzu |
Invalid version | Nicht-semantische Versionszeichenfolge | Verwenden Sie das Format MAJOR.MINOR.PATCH |
Icon not found | Icon-Pfad löst nicht auf | Überprüfen Sie, ob die Icon-Datei am angegebenen Pfad existiert |