Pular para o conteúdo

Integração inicial

Quando você entra pela primeira vez em app.engram.page, o Engram guia você por um breve assistente de integração antes de abrir o seu cofre. O assistente existe porque o Engram exige o aceite dos Termos e um estado de assinatura ativo antes que os endpoints do cofre fiquem acessíveis.

O assistente tem duas etapas:

  1. Aceite. Aceite os Termos de Serviço e a Política de Privacidade. O aceite é registrado na tabela user_agreements do servidor, contra a versão dos Termos em vigor. A versão ativa é resolvida dinamicamente a partir da tabela terms_versions (com memoização em Engram.Legal.VersionCache), e não é uma constante de compilação.
  2. Cobrança. Escolha um plano e conclua o checkout pelo Paddle (ou escolha o Free, que dispensa o Paddle por completo). Veja Cobrança → Planos para saber o que cada plano cobre.

Quando as duas etapas estão concluídas, você é encaminhado ao navegador de cofres.

O backend envolve /api/notes, /api/search e /api/folders em um plug RequireOnboarding que verifica:

  • Se os Termos mais recentes foram aceitos por este usuário
  • Se a assinatura está em dia (ou se é hospedagem própria, que ignora essa verificação por completo)

Se qualquer verificação falhar, a API retorna 403 e o app web redireciona de volta ao assistente. Isso significa que você não consegue cair por acidente em um estado de integração pela metade; o bloqueio ou deixa você passar ou mostra a tela que resolve a etapa que falta.

Na hospedagem própria, a cobrança vem desligada por padrão (sem PADDLE_API_KEY → config :engram, :billing_enabled é false). O assistente pula a etapa de escolha de plano. Você ainda aceita os Termos uma vez.

Você não consegue executá-lo de novo manualmente; depois de aceito, você passou dele. Se os Termos mudarem, o Engram aumenta a versão no servidor e a próxima chamada de API retorna 403; o app volta a mostrar apenas a etapa de aceite dos Termos. As mudanças de plano acontecem na página de Cobrança, não no assistente.