defineApplication. Declara:
- Identidad — identificador universal, nombre para mostrar, descripción.
- Permisos — bajo qué rol se ejecutan sus funciones de lógica y componentes de frontend.
- Variables (opcionales) — pares clave–valor expuestos a tu código como variables de entorno.
- Hooks de preinstalación / postinstalación (opcionales) — consulta Funciones de lógica.
src/application-config.ts
- Los campos
universalIdentifierson identificadores deterministas que te pertenecen. Genéralos una vez y mantenlos estables entre sincronizaciones. applicationVariablesse convierten en variables de entorno para tus funciones y componentes de frontend. En las funciones lógicas (del lado del servidor), están disponibles comoprocess.env.VARIABLE_NAME. En los componentes de frontend, usagetApplicationVariable('VARIABLE_NAME')detwenty-sdk/front-component. Las variables marcadas conisSecret: truesolo se inyectan en las funciones lógicas. Los componentes de frontend solo reciben variables no secretas.- El rol predeterminado se detecta automáticamente a partir del archivo de rol marcado con
defineApplicationRole(); no necesitas hacer referencia a él desdedefineApplication(). - Las funciones de preinstalación y posinstalación se detectan automáticamente durante la compilación del manifiesto; no necesitas referenciarlas en
defineApplication(). - Pasar
defaultRoleUniversalIdentifierexplícitamente sigue siendo compatible por motivos de retrocompatibilidad, pero está en desuso en favor dedefineApplicationRole().
Rol de función predeterminado
El rol declarado condefineApplicationRole() controla a qué pueden acceder las funciones de lógica y los componentes de interfaz de la aplicación:
- El token en tiempo de ejecución inyectado como
TWENTY_APP_ACCESS_TOKENse deriva de este rol. - El cliente de API tipado está restringido a los permisos otorgados a ese rol.
- Sigue el principio de mínimo privilegio: declara solo los permisos que necesitan tus funciones.
src/roles/default-role.ts. Consulta Roles y permisos para obtener la referencia completa.
Metadatos del Marketplace
Si planeas publicar tu aplicación, estos campos opcionales controlan cómo aparece en el marketplace:| Campo | Descripción |
|---|---|
author | Nombre del autor o de la empresa |
category | Categoría de la aplicación para el filtrado en el marketplace |
logoUrl | Ruta al logotipo de tu aplicación (p. ej., public/logo.png) |
screenshots | Arreglo de rutas de capturas de pantalla (p. ej., public/screenshot-1.png) |
aboutDescription | Descripción en Markdown más extensa para la pestaña “Acerca de”. Si se omite, el marketplace utiliza el README.md del paquete en npm |
websiteUrl | Enlace a tu sitio web |
termsUrl | Enlace a los términos del servicio |
emailSupport | Dirección de correo electrónico de soporte |
issueReportUrl | Enlace al rastreador de incidencias |