Última modificação: 11 de setembro de 2025
Se você já compilou um aplicativo privado na versão anterior do framework do desenvolvedor, poderá migrar manualmente a configuração do seu aplicativo para o novo framework (2025.2
).
Este guia o guiará pelo seguinte:
- Você começará clonando o projeto existente para que os arquivos originais possam servir como backup e, em seguida, poderá revisar cada um dos arquivos de configuração associados para garantir que estejam em conformidade com o novo esquema do projeto. Isso exigirá pequenas atualizações nos nomes e na estrutura dos arquivos de configuração do componente, bem como em suas respectivas propriedades.
- Em seguida, você atualizará os arquivos de configuração existentes
hsproject.json
eapp.json
de nível superior.- Em seguida, você pode seguir cada uma das seções subsequentes para atualizar a configuração de seus componentes de aplicativo para que estejam em conformidade com a versão
2025.2
da plataforma para desenvolvedores, com base nos recursos existentes que você configurou (por exemplo, um cartão de aplicativo criado com extensões de interface). - Observe que, com exceção do
hsproject.json
, todos os outros arquivos de configuração seguem um esquema de nomenclatura previsível (*-hsmeta.json
, em que*
é baseado no diretório ou componente específico) e todos compartilham as mesmas propriedades de nível superior:
- Em seguida, você pode seguir cada uma das seções subsequentes para atualizar a configuração de seus componentes de aplicativo para que estejam em conformidade com a versão
- Depois de atualizar todos os componentes do seu projeto existente clonado, você carregará o novo projeto na sua Conta de desenvolvedor da HubSpot como parte da última etapa deste guia.
Lembre-se das seguintes limitações antes de migrar seu aplicativo privado:
- Os comandos de migração da CLI da HubSpot não são compatíveis com aplicativos privados existentes, pois não há suporte à migração automática no momento.
- O suporte para a Integração com o GitHub, que dispara carregamentos e compilações automáticos do GitHub, ainda não está disponível. Se o seu projeto existente estiver vinculado ao GitHub, certifique-se de desabilitar a integração antes de iniciar a migração. Para desabilitar a integração do GitHub e configurar as Ações do GitHub para automatizar CI/CD, confira as instruções neste artigo.
Clonar os arquivos de configuração de projeto existentes
Antes de fazer atualizações, clone o projeto existente para ter um backup para referenciar ou reverter caso tenha problemas. Depois de clonar o projeto, abra os arquivos clonados no IDE de sua preferência, como VSCode. Se estiver procurando um projeto mínimo que esteja em conformidade com os novos esquemas2025.2
que você pode referenciar, baixe um modelo básico:
- Verifique se você instalou a versão beta mais recente da CLI do HubSpot executando o comando
npm i -g @hubspot/cli@next
e se o conectou à sua conta usando os comandoshs auth
ehs accounts use
. - Execute o comando abaixo no terminal para criar um projeto com o modelo básico para um aplicativo com distribuição
private
e autenticaçãostatic
.
- Siga as instruções para fornecer um nome e um diretório local para baixar o modelo básico.
- Quando solicitado a selecionar um modelo, selecione Iniciar projeto com aplicativo privado usando um token de acesso.
- Abra o projeto recém-criado no editor de sua preferência. Você pode, então, comparar a estrutura de diretórios do projeto e os arquivos de esquema
*-hsmeta.json
associados ao projeto existente para garantir que as especificações correspondam quando aplicável. Observe que o modelo deve ser usado como referência, mas não editado diretamente, pois é recomendado fazer edições na versão clonada do seu projeto, conforme descrito acima.
2025.2
da plataforma para desenvolvedores está detalhada no guia de configuração do aplicativo.
Atualizar sua configuração hsproject.json
As alterações nohsproject.json
de nível superior implicam pequenas alterações nas propriedades name
e platformVersion
, conforme descrito nos blocos de código abaixo:
Antes:
hsproject.json
de nível superior em seu projeto reside no mesmo local na nova plataforma para desenvolvedores, mas você precisará atualizar o platformVersion
para "2025.2"
. Também é possível atualizar o campo name
com um nome exclusivo para que ele não substitua seu projeto existente ao ser carregado. Por exemplo, se o nome do seu aplicativo privado existente for My private app
, talvez você queira acrescentar (Developer Platform v2025.2)
ou algo semelhante para distingui-lo do aplicativo antigo.
Analisar o esquema de nível superior do seu aplicativo
Os blocos de código abaixo fornecem exemplos da configuração antes e depois das alterações necessárias: Antes (src/app/app.json
):
src/app/app-hsmeta.json
):
app.json
. Esses detalhes de configuração do seu aplicativo agora são especificados com o arquivo de esquema de aplicativo no arquivo /src/app/app-hsmeta.json
. As principais mudanças entre a configuração antiga app.json
e a nova app-hsmeta.json
incluem o seguinte:
- A propriedade
public
de nível superior foi substituída pordistribution
e deve ser definida comoprivate
. Observe que a subpropriedadetype
do campoauth
deve ser definida comostatic
, o que restringirá a instalação do seu aplicativo a uma única conta. Saiba mais sobre distribuição e autenticação de aplicativos no guia de configuração do aplicativo. - Os escopos do seu aplicativo agora estão especificados como uma subpropriedade do campo
auth
e são divididos entrerequiredScopes
,conditionallyRequiredScopes
eoptionalScopes
. Saiba mais sobre como especificar cada um desses tipos de escopo no guia de configuração do aplicativo. - Você não precisa definir a propriedade
extensions
de nível superior do seu projeto anterior, já que a propriedade não está presente no novo arquivoapp-hsmeta.json
. Todas as extensões de interface configuradas anteriormente (por exemplo, cartões na página do registro o CRM) são gerenciadas usando o diretóriocards/
do seu projeto. Nesse diretório, os detalhes da configuração do cartão são especificados em um arquivo*-hsmeta.json
, juntamente com o código de componente do cartão fornecido em um arquivo.jsx
que é referenciado usando a propriedadeentrypoint
do arquivo*-hsmeta.json
. - Você também não precisa definir acima da propriedade
webhooks
de nível superior do seu projeto anterior no novo arquivoapp-hsmeta.json
, à medida que os webhooks são configurados e gerenciados usando o diretóriowebhooks/
do seu projeto. Saiba mais na seção Migrar assinaturas de webhook abaixo.
Atualizar a configuração de componentes individuais
Estas seções abaixo descrevem como transferir quaisquer extensões de interface e webhooks para seu novo aplicativo. Se seu aplicativo antigo não tiver nenhum desses componentes, vá para a seção carregar seu projeto.Migrar cartões do CRM criados com extensões de interface
Os blocos de código abaixo fornecem exemplos da configuração antes e depois das alterações necessárias: Antes (src/app/extensions/card.json
):
src/app/cards/example-app-card-hsmeta.json
):
cards/
do seu projeto, substituindo o antigo diretório extensions/
do seu projeto antigo. No novo diretório cards/
, os detalhes da configuração do cartão são especificados em um arquivo *-hsmeta.json
, juntamente com o código de componente do cartão fornecido em um arquivo .jsx
que é referenciado usando a propriedade entrypoint
do arquivo *-hsmeta.json
.
Para transferir o código de extensão da interface do seu aplicativo antigo, copie todos os valores relevantes do app.json
antigo nas propriedades associadas no arquivo *-hsmeta.json
no diretório cards/
, tendo em mente as seguintes alterações:
- O valor da propriedade
type
foi alterado de"crm-card"
para"card"
. - A propriedade
uid
foi transferida de uma subpropriedade dedata
e agora é especificado no nível superior da sua configuração. - A propriedade
data
foi alterada paraconfig
, que inclui as seguintes subpropriedades:- A propriedade
title
foi renomeada paraname
. - Uma nova propriedade
description
permite que você forneça mais contexto sobre a funcionalidade do cartão. A descrição aparecerá nas configurações de projeto do seu aplicativo. - A propriedade
module
foi renomeada paraentrypoint
e o valor deve agora ser uma string que representa o caminho para o componente JSX, relativo à raiz do seu projeto (por exemplo,"/app/cards/example-app-card.jsx"
). - A propriedade
objectTypes
foi simplificada e agora é uma matriz de strings que representa os tipos de objetos em que seu cartão deve aparecer (por exemplo,["CONTACT", "COMPANY"]
). - A propriedade
location
permanece inalterada e pode ser definida comocrm.record.tab
,crm.record.sidebar
ouhelpdesk.sidebar
.
- A propriedade
example-app-card-hsmeta.json
e o componente JSX example-app-card.jsx
são fornecidos no diretório src/app/cards
.
Para obter um guia completo sobre a criação de cartões de aplicativo na nova plataforma para desenvolvedores, confira este artigo.
Migrar assinatura de webhook
Os blocos de código abaixo fornecem exemplos da configuração antes e depois das alterações necessárias: Antes (src/app/webhooks/webhooks.json
):
src/app/webhooks/webhooks-hsmeta.json
):
webhooks/
do seu projeto. No diretório, os detalhes da assinatura são especificados em um arquivo *-hsmeta.json
. A estrutura do arquivo é muito semelhante ao esquema webhooks.json
anterior em seu aplicativo privado, com as seguintes alterações relevantes:
- Uma propriedade
uid
obrigatória deve ser definida no nível superior do seu arquivo*-hsmeta.json
, que deve receber um nome para diferenciá-lo de outros recursos de aplicativo (por exemplo,"migrated_private_app_webhooks"
). - Uma propriedade
type
obrigatória também devem ser definida no nível superior da sua configuração*-hsmeta.json
e deve ser definida como"webhooks"
. - As propriedades
subscriptions
esettings
permanecem inalteradas dewebhooks.json
mas devem ser movidas para a propriedadeconfig
definida no nível superior do seu arquivo*-hsmeta.json
.
Carregar projeto
Depois de migrar a configuração do seu aplicativo privado existente para os respectivos subdiretórios do seu projeto, você pode carregar seu novo aplicativo na sua conta da HubSpot. Lá, você pode encontrar o token de acesso do seu aplicativo que pode ser usado para autenticar solicitações de API e continuar a desenvolver a funcionalidade na nova plataforma para desenvolvedores.Observação:
Se seu aplicativo privado existente tiver funções sem servidor definidas:- Faça um backup do
src/app/app.functions
do seu projeto antigo, juntamente com qualquer referência associada às funções sem servidor em qualquer outro lugar em seu projeto. - As funções sem servidor não devem ser incluídas no diretório do projeto carregado como parte do seu novo aplicativo. Depois de carregar seu projeto, você pode seguir as etapas na seção abaixo para recriar o mesmo comportamento na nova plataforma para desenvolvedores.
Migrar manipulação de funções sem servidor
Se seu aplicativo privado incluiu funções sem servidor, você precisará criar seu próprio serviço de backend baseado em REST e usar a APIhubspot.fetch()
para buscar dados. Isso exigirá que você migre qualquer lógica de serviço existente que tenha sido definida anteriormente em suas funções sem servidor hospedadas no HubSpot, bem como seu token de acesso ao aplicativo privado para uma plataforma de hospedagem de terceiros, como Vercel, DigitalOcean, AWS, etc.
Para migrar sua lógica de função sem servidor para uma plataforma de hospedagem de terceiros:
- Localize suas funções sem servidor no projeto do seu aplicativo privado existente no diretório
src/app/app.functions
. - Copie toda a lógica relevante de suas funções. No exemplo de função sem servidor abaixo, somente a linha 4 precisa ser copiada.
- Na plataforma de hospedagem de terceiros, cole a lógica da sua definição de função sem servidor anterior e verifique se os nomes dos parâmetros estão alinhados. Você precisará consultar a documentação para definir a função sem servidor na plataforma que está usando.
- Copie seu token de acesso da página de detalhes do projeto do seu aplicativo e adicione-o como uma variável de ambiente em sua plataforma de hospedagem de terceiros para que possa ser referenciado em seu código.
-
Em seguida, você precisará atualizar a propriedade
permittedUrls
do seu arquivo de esquemaapp-hsmeta.json
de nível superior para incluir o campofetch
. O valor deste campo deve ser definido para uma matriz que inclua o URL do seu ponto de extremidade hospedado na plataforma de hospedagem de terceiros. -
Em seguida, atualize quaisquer referências em seu código React em seus cartões de aplicativo para chamar o novo URL da função sem servidor que você configurou. Saiba mais sobre como usar
hubspot.fetch()
neste guia.
Limpar
Depois de carregar com sucesso seu novo projeto, migrar qualquer manipulação de função sem servidor (se aplicável) e testar completamente seu aplicativo para confirmar se o comportamento é consistente, você poderá excluir seu projeto antigo em sua conta de desenvolvedor da HubSpot. Lembre-se de que você ainda tem o backup original do seu projeto localmente, conforme descrito na primeira etapa deste guia caso precise dele como referência. Para excluir o projeto antigo da conta de desenvolvedor:- Na sua conta da HubSpot, acesse Desenvolvimento.
- Na página Projetos, clique no nome do seu projeto antigo.
- Clique na guia Configurações.
- Em Excluir este projeto, clique em Excluir [nome do projeto].
- Revise as informações na caixa de diálogo para confirmar se você está pronto para continuar. Em seguida, insira o nome do projeto e clique em Excluir projeto.
