defineConnectionProvider({ type: 'oauth', ... }) nu vor trebui să migreze.
defineConnectionProvider
Declară cum sunt obținute conexiunile aplicației tale
defineConnectionProvider
Declară cum sunt obținute conexiunile aplicației tale
Un furnizor de conexiune descrie handshake-ul OAuth de care are nevoie aplicația ta. Utilizatorul face clic pe “Adaugă conexiune” în setările aplicației tale, completează ecranul de consimțământ al furnizorului și este creată o înregistrare Puncte cheie:
ConnectedAccount în spațiul său de lucru.O configurație funcțională are nevoie de două fișiere — furnizorul de conexiune și o declarație serverVariables corespunzătoare în defineApplication care conține acreditările clientului OAuth.src/connection-providers/linear-connection.ts
src/application.config.ts
nameeste șirul identificator unic folosit înlistConnections({ providerName })(kebab-case, trebuie să corespundă^[a-z][a-z0-9-]*$).displayNameapare în fila de setări a aplicației și în lista de instrumente AI.clientIdVariable/clientSecretVariablesunt nume, nu valori — trebuie să se potrivească cheilor declarate îndefineApplication.serverVariables. Valorile realeclient_idșiclient_secretsunt introduse de administratorul serverului prin interfața de înregistrare a aplicației și nu sunt niciodată comise în repo-ul tău.- Folosește
serverVariables(nuapplicationVariables) — acreditările OAuth sunt la nivel de server și există o singură aplicație OAuth pentru fiecare server Twenty. - Până când ambele
serverVariablessunt completate, fila de setări a aplicației afișează un indiciu “necesită administrator de server” și butonul “Adaugă conexiune” este dezactivat. type: 'oauth'este singura valoare acceptată în prezent. Discriminatorul este compatibil cu versiuni viitoare: tipurile viitoare ('pat','api-key', …) vor adăuga blocuri noi de sub-configurație alături deoauth.
listConnections / getConnection
Folosește conexiunile dintr-o funcție logică
listConnections / getConnection
Folosește conexiunile dintr-o funcție logică
În interiorul unui handler de funcție logică, Fiecare conexiune are:
Puncte cheie:
listConnections({ providerName }) returnează înregistrările ConnectedAccount ale acestei aplicații pentru furnizorul dat, cu tokenuri de acces reîmprospătate.src/logic-functions/handlers/create-linear-issue-handler.ts
| Câmp | Descriere |
|---|---|
id | ID unic al înregistrării; pasează-l la getConnection(id) pentru a reobține acea înregistrare |
visibility | 'user' (privată pentru un membru al spațiului de lucru) sau 'workspace' (partajată cu toți membrii) |
scopes | Permisiunile OAuth acordate de furnizorul upstream (distincte de visibility — nu au legătură) |
userWorkspaceId | ID-ul userWorkspace al deținătorului — util pentru a alege “conexiunea utilizatorului care face cererea” în declanșatoarele de rută HTTP |
accessToken | Token de acces OAuth proaspăt (reîmprospătat automat dacă a expirat) |
name / handle | Numele afișat al conexiunii (derivat automat la callback-ul OAuth, poate fi redenumit de utilizator) |
authFailedAt | Setat când cea mai recentă reîmprospătare a eșuat; utilizatorul trebuie să se reconecteze |
- Pasează
{ providerName }pentru a filtra după furnizor; omite-l pentru a obține toate conexiunile pe care această aplicație le deține la toți furnizorii. - Serverul reîmprospătează transparent tokenul de acces înainte de a returna. Handlerul tău vede întotdeauna un token utilizabil (sau
authFailedAtsetat). getConnection(id)este echivalentul pentru o singură înregistrare.
Vizibilitate per utilizator vs partajată la nivel de spațiu de lucru
Cum aleg utilizatorii între acreditări private și partajate
Vizibilitate per utilizator vs partajată la nivel de spațiu de lucru
Cum aleg utilizatorii între acreditări private și partajate
Când un utilizator face clic pe “Adaugă conexiune”, i se solicită să aleagă o vizibilitate:Sunt permise mai multe conexiuni per (utilizator, furnizor), astfel încât același utilizator poate avea “Personal Linear” și “Work Linear” una lângă alta.
- Doar pentru mine — acreditarea este privată pentru utilizatorul care se conectează. Orice funcție logică apelată în numele lor (declanșator de rută HTTP cu
isAuthRequired: true) o vede; declanșatoarele cron și evenimentele din bază de date nu. - Partajată la nivel de spațiu de lucru — orice membru al spațiului de lucru poate folosi acreditarea. Declanșatoarele cron / din bază de date o văd, de asemenea, deoarece nu au un utilizator al cererii.
Configurare unică a furnizorului
Înregistrează-ți aplicația OAuth la serviciul terț
Configurare unică a furnizorului
Înregistrează-ți aplicația OAuth la serviciul terț
Pentru fiecare furnizor de conexiune, administratorul serverului trebuie mai întâi să înregistreze o aplicație OAuth la serviciul terț.
- Mergi la setările pentru dezvoltatori ale furnizorului (de ex. https://linear.app/settings/api/applications/new).
- Setează Redirect URI la
\<SERVER_URL>/auth/apps/callback. - Copiază Client ID și Client Secret generate.
- Deschide aplicația instalată în Twenty ca administrator de server → setează valorile pe
serverVariablescorespunzătoare. - Membrii spațiului de lucru pot apoi să adauge conexiuni din secțiunea Conexiuni a fiecărei aplicații.