Como as aplicações funcionam
Uma aplicação é uma coleção de entidades declaradas usando funçõesdefineEntity() do pacote twenty-sdk. O SDK detecta essas declarações via análise de AST no momento da compilação e produz um manifesto — uma descrição completa do que seu aplicativo adiciona a um espaço de trabalho. Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos.
A organização de arquivos fica a seu critério. A detecção de entidades é baseada em AST — o SDK encontra chamadas a
export default defineEntity(...) independentemente de onde o arquivo esteja. A estrutura de pastas acima é uma convenção, não um requisito.Tipos de entidade
Sandboxing
- Funções lógicas são executadas em processos Node.js isolados no servidor. Eles acessam dados apenas por meio do cliente de API tipado, que atua como a pessoa que disparou a execução ou como o próprio app. Consulte Qual acesso uma chamada usa.
- Componentes de front-end executam em Web Workers usando Remote DOM — isolados da página principal, mas renderizando elementos DOM nativos (não iframes). Eles se comunicam com o Twenty por meio de uma API de host com passagem de mensagens.
- Permissões são aplicadas no nível da API. Dois tokens de runtime são inseridos, ambos derivados da função declarada com
defineApplicationRole(); o padrão é ainda mais limitado ao que a pessoa que disparou a execução pode fazer quando há alguém por trás da execução.
Ciclo de vida do aplicativo
yarn twenty dev— observa seus arquivos-fonte e sincroniza ao vivo as alterações com um servidor Twenty conectado. O cliente de API tipado é regenerado automaticamente quando o esquema muda.yarn twenty dev:build— compila TypeScript, empacota funções de lógica e componentes de front-end com o esbuild e produz um manifesto.- Hooks de pré/pós-instalação e desinstalação — funções opcionais que são executadas durante a instalação ou logo antes da remoção. Veja Hooks de instalação para detalhes.
Próximos passos
Configuração
Identidade da aplicação, função padrão e hooks de instalação e desinstalação.
Dados
Objetos, campos e relações bidirecionais.
Lógica
Funções lógicas, habilidades, agentes e conexões OAuth.
Layout
Vistas, navegação, layouts de página, componentes de front-end.
Operações
CLI, testes, remotos, CI e publicação do seu aplicativo.