defineApplication. Acesta declară:
- Identitate — identificator universal, nume de afișare, descriere.
- Permisiuni — sub ce rol rulează funcțiile logice și componentele front-end ale acesteia.
- Variabile (opțional) — perechi cheie–valoare expuse codului dvs. ca variabile de mediu.
- Hook-uri de pre-instalare / post-instalare (opțional) — vedeți Funcții logice.
src/application-config.ts
- Câmpurile
universalIdentifiersunt ID-uri deterministe pe care le dețineți. Generați-le o singură dată și mențineți-le stabile între sincronizări. applicationVariablesdevin variabile de mediu pentru funcțiile și componentele front-end. În funcțiile de logică (server-side), acestea sunt disponibile caprocess.env.VARIABLE_NAME. În componentele front-end, foloseștegetApplicationVariable('VARIABLE_NAME')dintwenty-sdk/front-component. Variabilele marcate cuisSecret: truesunt injectate doar în funcțiile de logică. Componentele front-end primesc doar variabile non-secrete.- Rolul implicit este detectat automat din fișierul de rol marcat cu
defineApplicationRole()— nu este necesar să faci referire la el îndefineApplication(). - Funcțiile de pre-instalare și post-instalare sunt detectate automat în timpul construirii manifestului — nu trebuie să le referiți în
defineApplication(). - Transmiterea explicită a
defaultRoleUniversalIdentifiereste în continuare acceptată pentru compatibilitate retroactivă, dar este considerată învechită în favoareadefineApplicationRole().
Rol implicit pentru funcții
Rolul declarat cudefineApplicationRole() controlează la ce pot avea acces funcțiile logice și componentele de interfață ale aplicației:
- Tokenul de runtime injectat ca
TWENTY_APP_ACCESS_TOKENeste derivat din acest rol. - Clientul API tipizat este restricționat la permisiunile acordate acelui rol.
- Respectați principiul celui mai mic privilegiu: declarați doar permisiunile de care au nevoie funcțiile.
src/roles/default-role.ts. Consultați Roluri și permisiuni pentru referința completă.
Metadate pentru marketplace
Dacă intenționați să publicați aplicația, aceste câmpuri opționale controlează modul în care apare în marketplace:| Câmp | Descriere |
|---|---|
author | Numele autorului sau al companiei |
category | Categoria aplicației pentru filtrarea în marketplace |
logoUrl | Calea către logo-ul aplicației (de ex., public/logo.png) |
screenshots | Array de căi către capturi de ecran (de ex., public/screenshot-1.png) |
aboutDescription | Descriere markdown mai lungă pentru fila “About”. Dacă este omis, marketplace-ul folosește README.md al pachetului de pe npm |
websiteUrl | Link către site-ul dvs. |
termsUrl | Link către termenii de serviciu |
emailSupport | Adresă de e-mail pentru suport |
issueReportUrl | Link către sistemul de urmărire a problemelor |