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
Un fournisseur de connexion décrit le processus d’échange OAuth requis par votre application. L’utilisateur clique sur “Ajouter une connexion” dans les paramètres de votre application, complète l’écran de consentement du fournisseur, et une ligne Points clés :
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.src/connection-providers/linear-connection.ts
src/application.config.ts
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.
listConnections / getConnection
Utilisez les connexions depuis une fonction logique
listConnections / getConnection
Utilisez les connexions depuis une fonction logique
Dans un gestionnaire de fonction logique, Chaque connexion comporte :
Points clés :
listConnections({ providerName }) renvoie les lignes ConnectedAccount de cette application pour le fournisseur donné, avec des jetons d’accès actualisés.src/logic-functions/handlers/create-linear-issue-handler.ts
| Champ | Description |
|---|---|
id | ID de ligne unique ; à passer à getConnection(id) pour en récupérer une seule |
visibility | 'user' (réservée à un membre de l’espace de travail) ou 'workspace' (partagée avec tous les membres) |
scopes | Autorisations OAuth accordées par le fournisseur en amont (distinctes de visibility — sans rapport) |
userWorkspaceId | L’ID userWorkspace du propriétaire — utile pour sélectionner “la connexion de l’utilisateur de la requête” dans les déclencheurs de routes HTTP |
accessToken | Jeton d’accès OAuth à jour (actualisé automatiquement s’il a expiré) |
name / handle | Le nom d’affichage de la connexion (déduit automatiquement lors du callback OAuth, renommable par l’utilisateur) |
authFailedAt | Défini lorsque le rafraîchissement le plus récent a échoué ; l’utilisateur doit se reconnecter |
- 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
Lorsqu’un utilisateur clique sur “Ajouter une connexion”, il lui est demandé de choisir une visibilité :Plusieurs connexions par (utilisateur, fournisseur) sont autorisées, ainsi le même utilisateur peut avoir “Linear personnel” et “Linear professionnel” côte à côte.
- 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
Pour chaque fournisseur de connexion, l’administrateur du serveur doit d’abord enregistrer une 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.