2b3b2362db
Created by Github action Co-authored-by: github-actions <github-actions@twenty.com>
65 lines
5.2 KiB
Plaintext
65 lines
5.2 KiB
Plaintext
---
|
||
title: Configuration de l'application
|
||
description: Déclarez l'identité de votre application, son rôle par défaut, ses variables et ses métadonnées de la marketplace avec defineApplication.
|
||
icon: rocket
|
||
---
|
||
|
||
Chaque application doit avoir exactement un appel à `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](/l/fr/developers/extend/apps/logic/logic-functions).
|
||
|
||
```ts src/application-config.ts
|
||
import { defineApplication } from 'twenty-sdk/define';
|
||
|
||
export default defineApplication({
|
||
universalIdentifier: '39783023-bcac-41e3-b0d2-ff1944d8465d',
|
||
displayName: 'My Twenty App',
|
||
description: 'My first Twenty app',
|
||
applicationVariables: {
|
||
DEFAULT_RECIPIENT_NAME: {
|
||
universalIdentifier: '19e94e59-d4fe-4251-8981-b96d0a9f74de',
|
||
description: 'Default recipient name for postcards',
|
||
value: 'Jane Doe',
|
||
isSecret: false,
|
||
},
|
||
},
|
||
});
|
||
```
|
||
|
||
Notes :
|
||
|
||
* Les champs `universalIdentifier` sont des identifiants déterministes que vous contrôlez. Générez-les une fois et conservez-les stables entre les synchronisations.
|
||
* `applicationVariables` deviennent des variables d'environnement pour vos fonctions et vos composants front-end. Dans les fonctions logiques (côté serveur), elles sont disponibles sous `process.env.VARIABLE_NAME`. Dans les composants front-end, utilisez `getApplicationVariable('VARIABLE_NAME')` depuis `twenty-sdk/front-component`. Les variables marquées avec `isSecret: true` sont 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()`](/l/fr/developers/extend/apps/config/roles) — vous n’avez pas besoin d’y faire référence depuis `defineApplication()`.
|
||
* 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 `defaultRoleUniversalIdentifier` est toujours pris en charge pour des raisons de rétrocompatibilité, mais il est obsolète au profit de `defineApplicationRole()`.
|
||
|
||
## Rôle de fonction par défaut
|
||
|
||
Le rôle déclaré avec [`defineApplicationRole()`](/l/fr/developers/extend/apps/config/roles) 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_TOKEN` est 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.
|
||
|
||
Lorsque vous générez une nouvelle application, la CLI crée un fichier de rôle par défaut à `src/roles/default-role.ts`. Voir [Rôles et autorisations](/l/fr/developers/extend/apps/config/roles) pour la référence complète.
|
||
|
||
## Métadonnées de la marketplace
|
||
|
||
Si vous prévoyez de [publier votre application](/l/fr/developers/extend/apps/operations/publishing), 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 |
|