defineConnectionProvider({ type: 'oauth', ... }) no necesitarán migrar.
defineConnectionProvider
Declara cómo se obtienen las conexiones de tu aplicación
defineConnectionProvider
Declara cómo se obtienen las conexiones de tu aplicación
Un proveedor de conexión describe el flujo de OAuth que tu aplicación necesita. El usuario hace clic en “Agregar conexión” en la configuración de tu aplicación, completa la pantalla de consentimiento del proveedor y se crea una fila Puntos clave:
ConnectedAccount en su espacio de trabajo.Una configuración funcional necesita dos archivos — el proveedor de conexión y una declaración serverVariables correspondiente en defineApplication que contiene las credenciales del cliente OAuth.src/connection-providers/linear-connection.ts
src/application.config.ts
namees la cadena de identificador única utilizada enlistConnections({ providerName })(kebab-case, debe coincidir con^[a-z][a-z0-9-]*$).displayNamese muestra en la pestaña de configuración por aplicación y en la lista de herramientas de IA.clientIdVariable/clientSecretVariableson nombres, no valores — deben coincidir con las claves declaradas endefineApplication.serverVariables. Losclient_idyclient_secretreales los introduce el administrador del servidor a través de la interfaz de registro de la aplicación; nunca se incluyen en tu repositorio.- Usa
serverVariables(noapplicationVariables) — las credenciales de OAuth son a nivel de servidor y hay una aplicación OAuth por servidor de Twenty. - Hasta que ambos
serverVariablesestén completos, la pestaña de configuración por aplicación muestra un aviso de “requiere administrador del servidor” y el botón “Agregar conexión” está deshabilitado. type: 'oauth'es el único valor admitido actualmente. El discriminador es compatible hacia adelante: tipos futuros ('pat','api-key', …) agregarán nuevos bloques de subconfiguración junto aoauth.
listConnections / getConnection
Usa conexiones desde una función de lógica
listConnections / getConnection
Usa conexiones desde una función de lógica
Dentro de un controlador de función de lógica, Cada conexión tiene:
Puntos clave:
listConnections({ providerName }) devuelve las filas ConnectedAccount de esta aplicación para el proveedor indicado, con tokens de acceso actualizados.src/logic-functions/handlers/create-linear-issue-handler.ts
| Campo | Descripción |
|---|---|
id | ID de fila único; pásalo a getConnection(id) para volver a obtener una sola conexión |
visibility | 'user' (privada para un miembro del espacio de trabajo) o 'workspace' (compartida con todos los miembros) |
scopes | Permisos de OAuth concedidos por el proveedor de origen (distintos de visibility — no están relacionados) |
userWorkspaceId | El id de userWorkspace del propietario — útil para elegir “la conexión del usuario de la solicitud” en activadores de rutas HTTP |
accessToken | Token de acceso OAuth actualizado (se renueva automáticamente si ha expirado) |
name / handle | El nombre para mostrar de la conexión (derivado automáticamente en el callback de OAuth, el usuario puede cambiarlo) |
authFailedAt | Se establece cuando la actualización más reciente falló; el usuario debe reconectarse |
- Pasa
{ providerName }para filtrar por proveedor; omítelo para obtener todas las conexiones que posee esta aplicación en todos los proveedores. - El servidor actualiza de forma transparente el token de acceso antes de devolver la respuesta. Tu controlador siempre ve un token utilizable (o
authFailedAtestablecido). getConnection(id)es el equivalente de una sola fila.
Visibilidad por usuario vs. compartida con el espacio de trabajo
Cómo los usuarios eligen entre credenciales privadas y compartidas
Visibilidad por usuario vs. compartida con el espacio de trabajo
Cómo los usuarios eligen entre credenciales privadas y compartidas
Cuando un usuario hace clic en “Agregar conexión”, se le solicita que elija una visibilidad:Se permiten múltiples conexiones por (usuario, proveedor), por lo que el mismo usuario puede tener “Linear personal” y “Linear de trabajo” a la vez.
- Solo para mí — la credencial es privada para el usuario que se conecta. Cualquier función de lógica llamada en su nombre (activador de ruta HTTP con
isAuthRequired: true) la ve; los activadores de cron y los eventos de base de datos no. - Compartida en el espacio de trabajo — cualquier miembro del espacio de trabajo puede usar la credencial. Los activadores de cron y de base de datos también la ven, ya que no tienen usuario de la solicitud.
Configuración única del proveedor
Registra tu aplicación OAuth con el servicio de terceros
Configuración única del proveedor
Registra tu aplicación OAuth con el servicio de terceros
Para cada proveedor de conexión, el administrador del servidor debe registrar primero una aplicación OAuth en el servicio de terceros.
- Ve a la configuración de desarrollador del proveedor (p. ej., https://linear.app/settings/api/applications/new).
- Configura el URI de redirección en
\<SERVER_URL>/auth/apps/callback. - Copia el Client ID y el Client Secret generados.
- Abre la aplicación instalada en Twenty como administrador del servidor → establece los valores en los
serverVariablescorrespondientes. - Luego, los miembros del espacio de trabajo pueden agregar conexiones desde la sección Conexiones por aplicación.