Cómo funcionan las aplicaciones
Una aplicación es un conjunto de entidades declaradas usando funcionesdefineEntity() del paquete twenty-sdk. El SDK detecta estas declaraciones mediante análisis de AST en tiempo de compilación y produce un manifiesto — una descripción completa de lo que tu aplicación agrega a un espacio de trabajo. Estas funciones validan tu configuración en tiempo de compilación y proporcionan autocompletado en el IDE y seguridad de tipos.
La organización de archivos depende de ti. La detección de entidades se basa en el AST — el SDK encuentra llamadas a
export default defineEntity(...) sin importar dónde se encuentre el archivo. La estructura de carpetas anterior es una convención, no un requisito.Tipos de entidades
| Entidad | Propósito | Documentación |
|---|---|---|
| Aplicación | Identidad de la aplicación, rol predeterminado, variables | Configuración de la aplicación |
| Rol | Conjuntos de permisos para objetos y campos | Roles y permisos |
| Objeto | Tipos de registros personalizados con campos | Objetos |
| Campo | Agregar campos a objetos de otras aplicaciones | Ampliar objetos |
| Relación | Vínculos bidireccionales entre objetos | Relaciones |
| Función de lógica | TypeScript del lado del servidor con activadores | Funciones de lógica |
| Habilidad | Instrucciones reutilizables para agentes de IA | Habilidades y agentes |
| Agente | Asistentes de IA con prompts personalizados | Habilidades y agentes |
| Proveedor de conexión | Credenciales OAuth para APIs de terceros | Conexiones |
| Vista | Vistas de listas de registros preconfiguradas | Vistas |
| Elemento del menú de navegación | Entradas personalizadas de la barra lateral | Elementos del menú de navegación |
| Diseño de página | Pestañas y widgets en la página de detalles de un registro | Diseños de página |
| Componente de frontend | Interfaz de usuario de React en entorno aislado dentro de Twenty | Componentes de frontend |
| Elemento del menú de comandos | Acciones rápidas y entradas Cmd+K | Elementos del menú de comandos |
Sandboxing
- Las funciones de lógica se ejecutan en procesos de Node.js aislados en el servidor. Solo acceden a los datos a través del cliente de API tipado, limitado a los permisos del rol de la aplicación.
- Los componentes de frontend se ejecutan en Web Workers usando Remote DOM — aislados de la página principal pero renderizando elementos DOM nativos (no iframes). Se comunican con Twenty a través de una API de host de paso de mensajes.
- Los permisos se aplican a nivel de API. El token de tiempo de ejecución (
TWENTY_APP_ACCESS_TOKEN) se deriva del rol definido endefineApplication().
Ciclo de vida de la aplicación
yarn twenty dev— observa tus archivos fuente y sincroniza en tiempo real los cambios con un servidor de Twenty conectado. El cliente de API tipado se regenera automáticamente cuando cambia el esquema.yarn twenty dev:build— compila TypeScript, agrupa las funciones de lógica y los componentes de frontend con esbuild, y produce un manifiesto.- Hooks de pre/post-instalación — funciones opcionales que se ejecutan durante la instalación. Consulta Hooks de instalación para más detalles.
Próximos pasos
Configuración
Identidad de la aplicación, rol predeterminado y hooks de instalación.
Datos
Objetos, campos y relaciones bidireccionales.
Lógica
Funciones de lógica, habilidades, agentes y conexiones OAuth.
Diseño
Vistas, navegación, diseños de página y componentes de frontend.
Operaciones
CLI, pruebas, remotos, CI y publicación de tu aplicación.