defineConnectionProvider({ type: 'oauth', ... })` n’auront pas besoin de migrer.
defineConnectionProvider
Déclarez comment les connexions de votre application sont obtenues
defineConnectionProvider
Déclarez comment les connexions de votre application sont obtenues
ConnectedAccount est créée dans son espace de travail.Une configuration fonctionnelle nécessite deux fichiers — le fournisseur de connexion, et une déclaration serverVariables correspondante sur defineApplication qui contient les identifiants client OAuth.nameest l’identifiant unique utilisé danslistConnections({ providerName })(kebab-case, doit correspondre à^[a-z][a-z0-9-]*$).displayNames’affiche dans l’onglet des paramètres par application et dans la liste des outils d’IA.clientIdVariable/clientSecretVariablesont des noms, pas des valeurs — ils doivent correspondre aux clés déclarées dansdefineApplication.serverVariables. Lesclient_idetclient_secretréels sont saisis par l’administrateur du serveur via l’interface d’enregistrement de l’application, et ne sont jamais validés dans votre dépôt.- Utilisez
serverVariables(pasapplicationVariables) — les identifiants OAuth sont au niveau du serveur et il n’y a qu’une application OAuth par serveur Twenty. - Tant que les deux
serverVariablesne sont pas renseignées, l’onglet des paramètres par application affiche une indication “nécessite un administrateur du serveur” et le bouton “Ajouter une connexion” est désactivé. type: 'oauth'est la seule valeur prise en charge à ce jour. Le discriminateur est compatible avec les évolutions : des types futurs ('pat','api-key', …) ajouteront de nouveaux blocs de sous-configuration à côté deoauth.
Exécuter une fonction logique lors de la connexion
Réagir au moment où une connexion est établie
Exécuter une fonction logique lors de la connexion
Réagir au moment où une connexion est établie
team_id de l’espace de travail sur lequel les événements entrants seront indexés. Définissez onConnectLogicFunction pour référencer une fonction logique dans la même application (par son universalIdentifier), et elle s’exécute juste après la création du ConnectedAccount.getConnection(connectedAccountId) pour lire le jeton d’accès actualisé et appeler l’API du fournisseur (par exemple Slack auth.test) ou persister un mappage dans le stockage clé-valeur.listConnections / getConnection
Utilisez les connexions depuis une fonction logique
listConnections / getConnection
Utilisez les connexions depuis une fonction logique
listConnections({ providerName }) renvoie les lignes ConnectedAccount de cette application pour le fournisseur donné, avec des jetons d’accès actualisés.- Passez
{ providerName }pour filtrer par fournisseur ; omettez-le pour obtenir toutes les connexions que cette application possède sur l’ensemble des fournisseurs. - Le serveur actualise de manière transparente le jeton d’accès avant de répondre. Votre gestionnaire voit toujours un jeton utilisable (ou
authFailedAtdéfini). getConnection(id)est l’équivalent pour une seule ligne.
Visibilité par utilisateur vs partagée à l'échelle de l'espace de travail
Comment les utilisateurs choisissent entre des identifiants privés et partagés
Visibilité par utilisateur vs partagée à l'échelle de l'espace de travail
Comment les utilisateurs choisissent entre des identifiants privés et partagés
- Uniquement pour moi — les identifiants sont privés pour l’utilisateur qui se connecte. Toute fonction logique appelée en son nom (déclencheur de route HTTP avec
isAuthRequired: true) y a accès ; les déclencheurs cron et les événements de base de données n’y ont pas accès. - Partagé au niveau de l’espace de travail — tout membre de l’espace de travail peut utiliser les identifiants. Les déclencheurs cron / base de données y ont également accès, puisqu’ils n’ont pas d’utilisateur de requête.
Configuration unique du fournisseur
Enregistrez votre application OAuth auprès du service tiers
Configuration unique du fournisseur
Enregistrez votre application OAuth auprès du service tiers
- Accédez aux paramètres développeur du fournisseur (par ex. https://linear.app/settings/api/applications/new).
- Définissez l’URI de redirection sur
\<SERVER_URL>/auth/apps/callback. - Copiez l’ID client et le Secret client générés.
- Ouvrez l’application installée dans Twenty en tant qu’administrateur du serveur → définissez les valeurs sur les
serverVariablescorrespondantes. - Les membres de l’espace de travail peuvent ensuite ajouter des connexions depuis la section Connexions par application.