defineConnectionProvider({ type: 'oauth', ... }) müssen nicht migriert werden.
defineConnectionProvider
Legen Sie fest, wie die Verbindungen Ihrer App bezogen werden
defineConnectionProvider
Legen Sie fest, wie die Verbindungen Ihrer App bezogen werden
Ein Verbindungsanbieter beschreibt den OAuth-Handshake, den Ihre App benötigt. Der Benutzer klickt in den Einstellungen Ihrer App auf “Verbindung hinzufügen”, schließt den Zustimmungsbildschirm des Anbieters ab, und in seinem Arbeitsbereich wird eine Hauptpunkte:
ConnectedAccount-Zeile erstellt.Eine funktionierende Einrichtung benötigt zwei Dateien — den Verbindungsanbieter und eine passende serverVariables-Deklaration in defineApplication, die die OAuth-Client-Anmeldedaten enthält.src/connection-providers/linear-connection.ts
src/application.config.ts
nameist die eindeutige Bezeichner-Zeichenfolge, die inlistConnections({ providerName })verwendet wird (kebab-case, muss^[a-z][a-z0-9-]*$entsprechen).displayNamewird im Einstellungs-Tab der jeweiligen App und in der KI-Toolliste angezeigt.clientIdVariable/clientSecretVariablesind Namen, keine Werte — sie müssen den indefineApplication.serverVariablesdeklarierten Schlüsseln entsprechen. Die tatsächlichenclient_idundclient_secretwerden vom Serveradministrator über die App-Registrierungsoberfläche eingegeben und niemals in Ihr Repository eingecheckt.- Verwenden Sie
serverVariables(nichtapplicationVariables) — OAuth-Anmeldedaten gelten serverweit und es gibt eine OAuth-App pro Twenty-Server. - Solange beide
serverVariablesnicht ausgefüllt sind, zeigt der Einstellungs-Tab pro App den Hinweis “Benötigt Server-Admin” an und der Button “Verbindung hinzufügen” ist deaktiviert. type: 'oauth'ist derzeit der einzige unterstützte Wert. Der Diskriminator ist vorwärtskompatibel: zukünftige Typen ('pat','api-key', …) werden neue Unterkonfigurationsblöcke nebenoauthhinzufügen.
listConnections / getConnection
Verbindungen aus einer Logikfunktion verwenden
listConnections / getConnection
Verbindungen aus einer Logikfunktion verwenden
Innerhalb eines Logikfunktions-Handlers gibt Jede Verbindung hat:
Hauptpunkte:
listConnections({ providerName }) die ConnectedAccount-Zeilen dieser App für den angegebenen Anbieter zurück, mit aktualisierten Zugriffstoken.src/logic-functions/handlers/create-linear-issue-handler.ts
| Feld | Beschreibung |
|---|---|
id | Eindeutige Zeilen-ID; an getConnection(id) übergeben, um eine einzelne Verbindung erneut abzurufen |
visibility | 'user' (privat für ein Mitglied des Arbeitsbereichs) oder 'workspace' (mit allen Mitgliedern geteilt) |
scopes | Vom Upstream-Anbieter gewährte OAuth-Berechtigungen (unabhängig von visibility — diese sind nicht miteinander verknüpft) |
userWorkspaceId | Die userWorkspace-ID des Eigentümers — nützlich, um “die Verbindung des anfragenden Benutzers” in HTTP-Routen-Triggern auszuwählen |
accessToken | Frisches OAuth-Zugriffstoken (wird bei Ablauf automatisch erneuert) |
name / handle | Anzeigename der Verbindung (automatisch beim OAuth-Callback abgeleitet, vom Benutzer umbenennbar) |
authFailedAt | Gesetzt, wenn die jüngste Aktualisierung fehlgeschlagen ist; der Benutzer muss die Verbindung erneut herstellen |
- Übergeben Sie
{ providerName }, um nach Anbieter zu filtern; lassen Sie es weg, um alle Verbindungen dieser App über alle Anbieter hinweg zu erhalten. - Der Server aktualisiert das Zugriffstoken vor der Rückgabe transparent. Ihr Handler sieht stets ein verwendbares Token (oder
authFailedAtist gesetzt). getConnection(id)ist das Pendant für eine einzelne Zeile.
Sichtbarkeit: pro Benutzer vs. im Arbeitsbereich geteilt
Wie Benutzer zwischen privaten und geteilten Anmeldedaten wählen
Sichtbarkeit: pro Benutzer vs. im Arbeitsbereich geteilt
Wie Benutzer zwischen privaten und geteilten Anmeldedaten wählen
Wenn ein Benutzer auf “Verbindung hinzufügen” klickt, wird er aufgefordert, eine Sichtbarkeit auszuwählen:Mehrere Verbindungen pro (Benutzer, Anbieter) sind erlaubt, sodass derselbe Benutzer “Persönliches Linear” und “Arbeits-Linear” nebeneinander haben kann.
- Nur für mich — die Anmeldedaten sind für den sich verbindenden Benutzer privat. Jede Logikfunktion, die in seinem/ihrem Auftrag aufgerufen wird (HTTP-Routen-Trigger mit
isAuthRequired: true), sieht sie; Cron-Trigger und Datenbankereignisse nicht. - Im Arbeitsbereich geteilt — jedes Arbeitsbereichsmitglied kann die Anmeldedaten verwenden. Cron-/Datenbank-Trigger sehen sie ebenfalls, da sie keinen anfragenden Benutzer haben.
Einmalige Anbietereinrichtung
Registrieren Sie Ihre OAuth-App beim Drittanbieterdienst
Einmalige Anbietereinrichtung
Registrieren Sie Ihre OAuth-App beim Drittanbieterdienst
Für jeden Verbindungsanbieter muss der Serveradministrator zunächst eine OAuth-App beim Drittanbieter registrieren.
- Gehen Sie zu den Entwickler-Einstellungen des Anbieters (z. B. https://linear.app/settings/api/applications/new).
- Setzen Sie die Redirect-URI auf
\<SERVER_URL>/apps/oauth/callback. - Kopieren Sie die generierte Client ID und das Client Secret.
- Öffnen Sie die installierte App in Twenty als Serveradministrator → setzen Sie die Werte in den entsprechenden
serverVariables. - Mitglieder des Arbeitsbereichs können dann Verbindungen im Verbindungen-Abschnitt der jeweiligen App hinzufügen.