defineApplication. Ela declara:
- Identidade — identificador universal, nome de exibição, descrição.
- Permissões — qual papel é usado pelas suas funções de lógica e pelos componentes de front-end.
- Variáveis (opcional) — pares chave–valor expostos ao seu código como variáveis de ambiente.
- Hooks de pré-instalação/pós-instalação (opcional) — consulte Funções de lógica.
src/application-config.ts
- Os campos
universalIdentifiersão IDs determinísticos que você controla. Gere-os uma vez e mantenha-os estáveis entre sincronizações. applicationVariablestornam-se variáveis de ambiente para suas funções e componentes de front-end. Em funções lógicas (no lado do servidor), elas ficam disponíveis comoprocess.env.VARIABLE_NAME. Em componentes de front-end, usegetApplicationVariable('VARIABLE_NAME')detwenty-sdk/front-component. Variáveis marcadas comisSecret: truesão injetadas apenas em funções lógicas. Componentes de front-end recebem apenas variáveis não secretas.- O papel padrão é detectado automaticamente a partir do arquivo de definição de papel marcado com
defineApplicationRole()— você não precisa referenciá-lo emdefineApplication(). - As funções de pré-instalação e pós-instalação são detectadas automaticamente durante a construção do manifesto — você não precisa referenciá-las em
defineApplication(). - Passar
defaultRoleUniversalIdentifierexplicitamente ainda é compatível para retrocompatibilidade, mas foi preterido em favor dedefineApplicationRole().
Papel de função padrão
O papel declarado comdefineApplicationRole() controla o que as funções de lógica e os componentes de front-end do aplicativo podem acessar:
- O token em tempo de execução injetado como
TWENTY_APP_ACCESS_TOKENé derivado desse papel. - O cliente de API tipado é restrito às permissões concedidas a esse papel.
- Siga o princípio do menor privilégio: declare apenas as permissões de que suas funções precisam.
src/roles/default-role.ts. Consulte Papéis e permissões para a referência completa.
Metadados do Marketplace
Se você planeja publicar seu app, estes campos opcionais controlam como seu app aparece no marketplace:| Campo | Descrição |
|---|---|
author | Nome do autor ou da empresa |
category | Categoria do app para filtragem no marketplace |
logoUrl | Caminho para o logo do seu app (por exemplo, public/logo.png) |
screenshots | Array de caminhos de capturas de tela (por exemplo, public/screenshot-1.png) |
aboutDescription | Descrição em markdown mais longa para a aba “Sobre”. Se omitido, o marketplace usa o README.md do pacote no npm |
websiteUrl | Link para seu site |
termsUrl | Link para os Termos de Serviço |
emailSupport | Endereço de e-mail de suporte |
issueReportUrl | Link para o rastreador de problemas |