Skip to main content

Quando usar

O fluxo padrão de ativação exige que o operador abra o navegador, faça login (Magic Link ou OAuth) e aguarde o registro completar. Para o primeiro registro de um e-mail, isso é necessário. Para toda instalação subsequente do mesmo operador (mesmo e-mail), você pode pular o navegador inteiro e ativar a licença em uma única chamada HTTP. Ideal para:
  • Deploy automatizado (CI/CD, Terraform, Ansible)
  • Múltiplas instâncias do mesmo produto em servidores diferentes
  • Containers efêmeros que sobem e morrem com frequência
  • Provisionamento programático (multi-tenant, multi-região)
A primeira ativação ainda precisa ser feita pelo fluxo manual (navegador + Magic Link/OAuth). Só depois disso o e-mail fica “conhecido” pelo servidor de licenciamento e a ativação automática passa a funcionar.

Endpoint

Campos: Resposta de sucesso (200):
A api_key retornada está pronta para uso imediato — não é necessário chamar /v1/activate em seguida. A instância já entra como active no servidor. Se a chamada for repetida com o mesmo (email, instance_id), a resposta inclui "reused": true e devolve a mesma api_key da chamada anterior. Isso torna a chamada idempotente — seguro para retry em scripts de boot.

Modelo de confiança

O servidor de licenciamento aceita a chamada usando apenas o e-mail como prova de identidade. Não há segundo fator, não há captcha, não há rate limit. Por quê:
  • O e-mail já foi verificado uma vez (no registro manual inicial, via Magic Link ou OAuth)
  • Emitir uma licença para um customer não é uma ação destrutiva — todas as instâncias ficam visíveis no portal do customer
  • O customer pode revogar api_keys a qualquer momento se detectar uso não autorizado
  • O customer pode desabilitar a ativação automática (auto_activation_enabled = false) no portal caso suspeite que o e-mail vazou
Implicação: quem souber o e-mail de um customer pode emitir licenças nesse nome. Se isso for um problema para seu cenário (multi-tenant comercial, e-mail compartilhado, suspeita de vazamento), desabilite a ativação automática no portal e force todos os deploys a usarem o fluxo manual.

Códigos de erro

A resposta CUSTOMER_NOT_FOUND é o sinal canônico para o cliente cair para o fluxo manual. Sempre implemente esse fallback — primeiro deploy de um e-mail novo precisa passar pelo manual.

Fluxo recomendado no client

Variável de ambiente padrão

Os produtos Evolution leem o e-mail do operador da variável EVOLUTION_OPERATOR_EMAIL:
Se a variável não estiver definida, o produto cai diretamente no fluxo manual (sem tentar auto-ativação).

Idempotência detalhada

A chamada é idempotente em (email, instance_id): Isso é o que torna seguro chamar a rota no startup do container — se o container já registrou antes, recebe a mesma key; se é nova, recebe key nova.
Containers que sempre geram UUID novo a cada boot acumulam APIKeys (uma por boot) sob o mesmo customer. Se quiser comportamento idempotente real, persista o instance_id em volume montado (/data/instance-id) entre reinicializações.

Como desabilitar para meu customer

No portal do customer (https://license.evolutionfoundation.com.br/portal), há um toggle “Ativação Automática por E-mail”. Quando desabilitado:
  • Todas as chamadas a /v1/register/auto com seu e-mail retornam 403 AUTO_ACTIVATION_DISABLED
  • Novos deploys obrigatoriamente passam pelo fluxo manual (navegador + Magic Link/OAuth)
  • Suas api_keys existentes continuam funcionando normalmente
Recomendado para customers que:
  • Operam em ambiente regulado e querem trilha de auditoria em cada ativação
  • Têm o e-mail conhecido publicamente e querem reduzir superfície de ataque
  • Suspeitam de uso indevido do e-mail

Auditoria

Cada chamada a /v1/register/auto gera uma linha em activation_logs com alert_type = 'auto_activation'. O portal do customer mostra:
  • Data/hora de cada auto-ativação
  • IP do servidor que solicitou
  • Localização aproximada (país/cidade via GeoIP)
  • Resultado (created ou reused)
Se você ver auto-ativações que não reconhece, suspenda a key correspondente no portal imediatamente — isso revoga acesso da instância sem afetar as outras.

Próximos passos

Fluxo manual

Fluxo completo do /v1/register/init — necessário no primeiro registro

Telemetria

O que é enviado em cada chamada de licença

FAQ

Perguntas frequentes

Visão Geral

Resumo do sistema de licenciamento