defineApplication. Il déclare :
- Identité — identifiant universel, nom d’affichage, description.
- Autorisations — le rôle sous lequel s’exécutent ses fonctions logiques et ses composants front-end.
- Variables (facultatif) — paires clé–valeur exposées à votre code en tant que variables d’environnement.
- Hooks de pré-installation / post-installation (facultatif) — voir Fonctions logiques.
src/application-config.ts
- Les champs
universalIdentifiersont des identifiants déterministes que vous contrôlez. Générez-les une fois et conservez-les stables entre les synchronisations. applicationVariablesdeviennent des variables d’environnement pour vos fonctions et vos composants front-end. Dans les fonctions logiques (côté serveur), elles sont disponibles sousprocess.env.VARIABLE_NAME. Dans les composants front-end, utilisezgetApplicationVariable('VARIABLE_NAME')depuistwenty-sdk/front-component. Les variables marquées avecisSecret: truesont uniquement injectées dans les fonctions logiques. Les composants front-end ne reçoivent que des variables non secrètes.- Le rôle par défaut est détecté automatiquement à partir du fichier de rôle marqué avec
defineApplicationRole()— vous n’avez pas besoin d’y faire référence depuisdefineApplication(). - Les fonctions de pré-installation et de post-installation sont détectées automatiquement lors de la construction du manifeste — vous n’avez pas besoin de les référencer dans
defineApplication(). - Le passage explicite de
defaultRoleUniversalIdentifierest toujours pris en charge pour des raisons de rétrocompatibilité, mais il est obsolète au profit dedefineApplicationRole().
Rôle de fonction par défaut
Le rôle déclaré avecdefineApplicationRole() contrôle ce à quoi les fonctions logiques de l’application et les composants front peuvent accéder :
- Le jeton d’exécution injecté sous
TWENTY_APP_ACCESS_TOKENest dérivé de ce rôle. - Le client d’API typé est limité aux autorisations accordées à ce rôle.
- Appliquez le principe du moindre privilège : déclarez uniquement les autorisations dont vos fonctions ont besoin.
src/roles/default-role.ts. Voir Rôles et autorisations pour la référence complète.
Métadonnées de la marketplace
Si vous prévoyez de publier votre application, ces champs optionnels contrôlent la façon dont elle apparaît dans la marketplace :| Champ | Description |
|---|---|
author | Nom de l’auteur ou de l’entreprise |
category | Catégorie de l’application pour le filtrage dans la marketplace |
logoUrl | Chemin vers le logo de votre application (p. ex., public/logo.png) |
screenshots | Tableau de chemins de captures d’écran (p. ex., public/screenshot-1.png) |
aboutDescription | Description markdown plus longue pour l’onglet “À propos”. S’il est omis, la marketplace utilise le README.md du package sur npm |
websiteUrl | Lien vers votre site web |
termsUrl | Lien vers les conditions d’utilisation |
emailSupport | Adresse e-mail du support |
issueReportUrl | Lien vers le système de suivi des problèmes |