Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

Referenca manifesta aplikacije

Datoteka manifesta stripe-app.json je osrednja konfiguracija vaše aplikacije Stripe App. Določa identiteto aplikacije, dovoljenja, poglede vmesnika, varnostne politike in vedenje po namestitvi.

Caution

Stanje: načrtovano, ne izdelano. Tajo nima aplikacije Stripe, zato danes ničesar iz tega razdelka ni mogoče namestiti. Identifikatorji aplikacije, naslovi URL in poverilnice na tej strani so ponazoritvena nadomestila, ne delujoče končne točke.

Celoten primer manifesta

{
"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": "Read 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.example.com",
"https://api.brevo.com"
],
"image-src": [
"https://cdn.example.com",
"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.example.com/v1",
"SYNC_INTERVAL_SECONDS": "300"
}
}

Referenca sheme

Polja na najvišji ravni

PoljeTipObveznoOpis
idstringDaEnolični identifikator aplikacije v obrnjenem domenskem zapisu (oblika slug)
versionstringDaNiz semantične različice (na primer "1.2.0")
namestringDaPrikazno ime na tržnici (največ 35 znakov)
iconstringDaRelativna pot do datoteke z ikono aplikacije (PNG ali SVG velikosti 300x300)
distribution_typestringDa"public" za tržnico ali "private" za interno rabo
sandbox_install_compatiblebooleanNeAli je aplikacijo mogoče namestiti v peskovniku oziroma testnem načinu
stripe_api_access_typestringNeNačin dostopa do API: "oauth" ali "api_key"
allowed_redirect_urisstring[]NeDovoljeni preusmeritveni naslovi OAuth za namestitveni potek
permissionsPermissionRequest[]DaPolje zahtev za dovoljenja
ui_extensionUIExtensionManifestNeKonfiguracija razširitve vmesnika
post_install_actionPostInstallActionNeDejanje po namestitvi aplikacije
constantsobjectNePari ključ-vrednost, dostopni v aplikaciji med izvajanjem

id

Identifikator aplikacije je niz v obliki slug, običajno v obrnjenem domenskem zapisu:

"id": "com.tajo.brevo-integration"
  • Mora biti enolični med vsemi aplikacijami Stripe Apps
  • Uporabljajte samo male črke, števke, vezaje in pike
  • Po ustvarjanju aplikacije ga ni več mogoče spremeniti
  • Določa naslov URL aplikacije na tržnici

version

Sledi semantičnemu določanju različic:

"version": "1.2.0"
  • MAJOR: nezdružljive spremembe ali obsežne nove funkcije
  • MINOR: nove funkcije, združljive nazaj
  • PATCH: odprava napak in manjše izboljšave
  • Ob vsakem nalaganju jo je treba povečati

distribution_type

Določa, kdo lahko namesti vašo aplikacijo:

VrednostOpis
"public"Na voljo vsem uporabnikom na tržnici Stripe App Marketplace
"private"Namestljiva samo z vašim lastnim računom Stripe

stripe_api_access_type

Določa, kako se vaša aplikacija overi pri API-ju Stripe:

VrednostOpis
"oauth"Uporablja potek OAuth 2.0 za preverjanje pristnosti (priporočeno za javne aplikacije)
"api_key"Uporablja omejene ključe API (primerno za zasebne aplikacije)

PermissionRequest

Vsaka zahteva za dovoljenje navede določeno dovoljenje za API Stripe, ki ga vaša aplikacija potrebuje:

{
"permission": "customer_read",
"purpose": "Read customer profiles to sync with Brevo contacts"
}
PoljeTipObveznoOpis
permissionstringDaIdentifikator dovoljenja (glejte referenco dovoljenj)
purposestringDaČloveku razumljiva razlaga, zakaj je to dovoljenje potrebno

Smernice za polje purpose:

  • Napišite jasne in konkretne razlage, ki jih trgovci razumejo
  • Pojasnite, čemu je dovoljenje namenjeno, ne le kaj omogoča
  • Opisi naj bodo jedrnati (en stavek)
  • Izogibajte se tehničnemu žargonu

UIExtensionManifest

Konfigurira komponente vmesnika vaše aplikacije:

{
"ui_extension": {
"views": [...],
"content_security_policy": {...}
}
}
PoljeTipObveznoOpis
viewsViewManifest[]DaPolje deklaracij pogledov
content_security_policyCSPRequestNeVarnostna politika vsebine za zunanje vire

ViewManifest

Vsak pogled preslika komponento React v izsek nadzorne plošče Stripe:

{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
}
PoljeTipObveznoOpis
viewportstringDaMesto na nadzorni plošči, kjer se pogled izriše (glejte referenco izsekov)
componentstringDaIme komponente React za izris (ujemati se mora z imenom izvožene komponente)

Ena aplikacija lahko določi več pogledov za različne izseke:

"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
},
{
"viewport": "stripe.dashboard.payment.detail",
"component": "PaymentDetailView"
},
{
"viewport": "stripe.dashboard.home.overview",
"component": "OverviewView"
}
]

CSPRequest

Varnostna politika vsebine določa, s katerimi zunanjimi domenami se lahko vaša aplikacija poveže:

{
"content_security_policy": {
"connect-src": [
"https://api.example.com",
"https://api.brevo.com"
],
"image-src": [
"https://cdn.example.com"
],
"purpose": "Connect to Tajo API for data sync and load images from CDN"
}
}
PoljeTipObveznoOpis
connect-srcstring[]NeDomene, na katere lahko aplikacija pošilja omrežne zahteve
image-srcstring[]NeDomene, s katerih lahko aplikacija nalaga slike
purposestringDaRazlaga, zakaj so te zunanje povezave potrebne

Caution

Navedite samo domene, s katerimi se vaša aplikacija resnično mora povezati. Prevelik nabor vnosov CSP lahko sproži dodatno pregledovanje.

PostInstallAction

Konfigurira, kaj se zgodi takoj po tem, ko uporabnik namesti vašo aplikacijo:

{
"post_install_action": {
"type": "onboarding"
}
}
PoljeTipObveznoOpis
typestringDaVrsta dejanja (glejte spodaj)
urlstringPogojnoNaslov URL za dejanja vrste external

Vrste dejanj

VrstaVedenje
"onboarding"Odpre uvajalni pogled aplikacije na nadzorni plošči
"settings"Odpre pogled z nastavitvami aplikacije na nadzorni plošči
"external"Preusmeri uporabnika na zunanji naslov URL (zahteva polje url)

Primeri:

// Open onboarding flow
{
"post_install_action": {
"type": "onboarding"
}
}
// Open settings page
{
"post_install_action": {
"type": "settings"
}
}
// Redirect to external setup
{
"post_install_action": {
"type": "external",
"url": "https://app.tajo.io/stripe/setup"
}
}

Podrobne vzorce izvedbe najdete v vodniku po dejanjih po namestitvi.

Konstante

Določite statične pare ključ-vrednost, ki so v aplikaciji dostopni med izvajanjem:

{
"constants": {
"API_BASE_URL": "https://api.example.com/v1",
"SYNC_INTERVAL_SECONDS": "300",
"MAX_BATCH_SIZE": "100"
}
}
  • Vse vrednosti morajo biti nizi
  • Konstante se v aplikacijo vgradijo med gradnjo
  • Konstante uporabite za konfiguracijo, ki se razlikuje med okolji
  • Nikoli ne shranjujte skrivnosti ali ključev API kot konstant, uporabite Secret Store API

Do konstant v kodi aplikacije dostopate takole:

import { constants } from '@stripe/ui-extension-sdk/constants';
const apiUrl = constants.API_BASE_URL;

Razširjeni manifest za razvoj

Med lokalnim razvojem so na voljo dodatna polja:

{
"id": "com.tajo.brevo-integration",
"version": "0.1.0",
"name": "Tajo for Brevo (Dev)",
"icon": "./assets/icon-dev.png",
"distribution_type": "private",
"sandbox_install_compatible": true,
"dev": {
"hot_reload": true,
"port": 4242
}
}

Razdelek dev se med produkcijskimi gradnjami in nalaganjem aplikacije odstrani. Uporabljajte ga izključno za nastavitve, ki olajšajo lokalni razvoj.

Preverjanje

Pred nalaganjem preverite svoj manifest:

Terminal window
# Validate manifest syntax and schema
stripe apps validate
# Check for common issues
stripe apps check

Pogoste napake pri preverjanju:

NapakaVzrokRešitev
Invalid permissionNeznan identifikator dovoljenjaPreverite referenco dovoljenj
Invalid viewportNeznan identifikator izsekaPreverite referenco izsekov
Missing purposeDovoljenje brez polja purposeVsakemu dovoljenju dodajte niz purpose
Invalid versionNiz različice ni v obliki semverUporabite obliko MAJOR.MINOR.PATCH
Icon not foundPot do ikone se ne razrešiPreverite, ali datoteka z ikono obstaja na navedeni poti

Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

AI pomočnik

Živjo! Vprašajte me o dokumentaciji.

Ta stran kot Markdown: app-manifest.md

Nalaganje Markdowna …
Odpri v Claude Odpri v ChatGPT