Última modificação:  10 de outubro de 2025
Veja abaixo informações de referência para recursos da plataforma para desenvolvedores, incluindo definições de arquivo de configuração, detalhes de escopos e muito mais.
Estrutura do projeto
- Todos os componentes do projeto devem estar no diretório srcespecificado no arquivo de configuraçãohsproject.jsonde nível superior.
- Todos os recursos e componentes do aplicativo devem estar no diretório src/app/. No diretórioapp/, você definirá subdiretórios para cada recurso ao qual deseja que seu aplicativo ofereça suporte:- Os eventos de aplicativo são configurados em app-events/.
- Objetos de aplicativo são definidos em app-objects/.
- Todos os recursos do cartão são definidos no cards/.
- Os recursos da página de configurações são definidos no settings/.
- A telemetria é configurada em telemetry/.
- As assinaturas de webhook são definidas no diretório webhooks/.
- As ações de fluxo de trabalho personalizadas são definidas no workflow-actions/.
 
- Os eventos de aplicativo são configurados em 
- Dentro de cada subdiretório de recurso, você configurará o recurso usando um arquivo *-hsmeta.json. Você pode prefixar o nome do arquivo com algo significativo para seu aplicativo (por exemplo,my-app-hsmeta.json), desde que o arquivo termine com-hsmeta.json. Esses arquivos devem estar no nível raiz da respectiva pasta (por exemplo,app/my-app-hsmeta.json,cards/my-card-hsmeta.json).
app-hsmeta.json de nível superior são fornecidos na seção de esquema de aplicativo a seguir. Quando estiver pronto para adicionar recursos de aplicativo, confira a seção adicionar recursos de aplicativo.
Ver exemplo no GitHub
*-hsmeta.json.
Especificar UIDs
O campouid é um identificador exclusivo interno para seu aplicativo específico e também deve ser globalmente exclusivo dentro do projeto. Cada recurso de aplicativo terá seu próprio uid definido nos respectivos arquivos *-hsmeta.json, que devem ser diferentes do uid de nível superior escolhido no arquivo app-hsmeta.json do seu aplicativo.
Esquema de aplicativo
A configuração de nível superior do seu aplicativo é especificada em um arquivo de configuraçãoapp-hsmeta.json no diretório app.
app-hsmeta.json.
Ver exemplo no GitHub
Campos marcados com * são obrigatórios.
| Campo | Tipo | Descrição | 
|---|---|---|
| uid* | String | Um identificador exclusivo interno do aplicativo. Deve ser globalmente exclusivo dentro do projeto. Pode ser qualquer string de até 64 caracteres. Os caracteres podem ser maiúsculos ou minúsculos e podem incluir números e sublinhados ( _), traços (-) e pontos (.). | 
| type* | String | O tipo de componente. Deve corresponder ao nome da pasta principal ( app). | 
| description* | String | Uma descrição do que o aplicativo faz para o usuário que está instalando. Pode ser qualquer string de até 8192 caracteres. | 
| name* | String | O nome do aplicativo, que será exibido na interface do HubSpot. Pode ser qualquer string de até 200 caracteres. Não deve iniciar ou terminar com um caractere de espaço. | 
| distribution* | String | O método de distribuição do aplicativo, que pode ser definido como um dos seguintes: 
 Saiba mais na seção distribuição abaixo. | 
| auth* | Objeto | Um objeto que contém os detalhes do método de autenticação do aplicativo. Consulte a seção de autenticação abaixo para obter detalhes. | 
| permittedUrls | Objeto | Uma matriz que contém os URLs que o aplicativo tem permissão para chamar. Os URLs devem usar o esquema HTTPS e devem conter uma autoridades, seguido por um prefixo de caminho opcional, se necessário. | 
| supportEmail | String | Um endereço de e-mail válido com o qual os usuários podem entrar em contato para obter suporte. | 
| documentationUrl | String | O URL externa na qual os usuários podem navegar para documentação de suporte. Devem usar HTTPS. | 
| supportUrl | String | O URL externo para o qual os usuários podem navegar para obter suporte adicional. Devem usar HTTPS. | 
| supportPhone | String | O número de telefone com o qual os usuários podem entrar em contato para obter suporte. Deve começar com um sinal de mais ( +). | 
Distribuição
O campodistribution no esquema do aplicativo permite que você configure como deseja distribuir o aplicativo:
- Se você planeja listar seu aplicativo no Marketplace de aplicativos da HubSpot, defina o campo distributioncomo"marketplace". Um exemplo de esquema de aplicativo para esta opção pode ser encontrado aqui. Se você escolher essa opção, verifique se definiutypena propriedadeauthcomooauth, tal como especificado na seção de autenticação abaixo.
- Se você quiser permitir que seu aplicativo seja instalado em um conjunto específico de contas permitidas, ou se quiser restringir a instalação a uma única conta por vez, defina distributioncomo"private". Certifique-se de definir otypedentro da propriedadeauth:- Se você quiser instalar seu aplicativo em várias contas com base em uma lista de permissões definida nas configurações do seu projeto, defina a autenticação typecomooauth. Consulte o exemplo de esquema de aplicativo para esta opção aqui.
- Para restringir a instalação a uma única conta, seja a mesma conta usada para desenvolvimento ou outra à qual o usuário instalador tenha acesso, defina a autenticação typecomostatic. Um exemplo de esquema de aplicativo para autenticação estática pode ser encontrado aqui.
 
- Se você quiser instalar seu aplicativo em várias contas com base em uma lista de permissões definida nas configurações do seu projeto, defina a autenticação 
Autenticação
A autenticação do seu aplicativo é configurada por meio da propriedadeauth no esquema do aplicativo. Você pode especificar os requisitos de escopo do seu aplicativo, os URLs de redirecionamento e o tipo de autenticação.
Campos marcados com * são obrigatórios.
| Campo | Tipo | Descrição | 
|---|---|---|
| type* | String | O tipo de autenticação, que pode ser definido como um dos seguintes: 
 | 
| redirectUrls* | Matriz | Uma lista de URLs que o OAuth tem permissão para usar em redirecionamentos. Cada aplicativo deve ter pelo menos um URL de redirecionamento de autenticação e deve usar HTTPS. A única exceção é que http://localhosté permitida para testes. | 
| requiredScopes* | Matriz | Uma lista dos escopos obrigatórios do seu aplicativo. Cada aplicativo deve incluir pelo menos um escopo, e o usuário instalador deve conceder esses escopos para instalar o aplicativo. Saiba mais sobre escopos abaixo. | 
| optionalScopes | Matriz | Uma lista dos escopos opcionais do seu aplicativo. Esses escopos podem ser excluídos da autorização durante a instalação se a conta ou o usuário que está instalando o aplicativo não tiver as permissões adequadas. Nesse caso, o escopo não será incluído no token de atualização ou de acesso resultante. Saiba mais sobre escopos abaixo. | 
| conditionallyRequiredScopes | Matriz | Uma lista de escopos que são necessários somente quando incluídos no parâmetro de consulta scopedo URL de instalação. Saiba mais sobre escopos abaixo. | 
Escopos
Na janelaauth de um arquivo de configuração de aplicativo, você pode especificar três tipos de escopos: necessários, condicionalmente necessários e opcionais.
No mínimo, seu aplicativo deve incluir o escopo read para permitir que os clientes acessem o tipo de objeto do CRM associado.
Adicionar recursos do aplicativo
Para configurar recursos de aplicativo, como assinaturas de webhook, ações de fluxo de trabalho personalizadas e cartões de aplicativo, confira os guias abaixo para obter detalhes sobre como adicionar os arquivos*-hsmeta.json ao seu projeto: