--login / --logout / --whoami ainda é aceita como alias para compatibilidade com versões anteriores.
A autenticação é opcional. Políticas, o dashboard, a página /audit e todos os outros recursos locais funcionam exatamente da mesma forma, independentemente de você estar conectado ou não. A tela de login existe para que recursos que precisam de uma identidade estável (lembretes de re-auditoria por enquanto, mais no futuro) tenham onde se ancorar.
Fluxo de login
~/.failproofai/auth.json (modo 0600). A mesma sessão fica visível no dashboard do aplicativo — ao clicar em [ set a reminder ] em /audit, você aparecerá como conectado.
O dashboard expõe o mesmo fluxo como um diálogo modal em /audit para usuários que nunca usam a CLI.
Sair
~/.failproofai/auth.json. Se o servidor de API estiver inacessível, o arquivo local é removido de qualquer forma — a intenção local de sair sempre prevalece.
Verificação de identidade
<email> (<user uuid>) e encerra com código 0 quando existe uma sessão válida, ou not signed in e encerra com código 1 caso contrário. Atualiza silenciosamente o token de acesso em segundo plano se ele estiver a menos de um minuto de expirar.
Lembrete recorrente de re-auditoria
Quando você clica em[ set a reminder ] na página /audit (ou entra via o modal que o botão acessa), o dashboard grava um pequeno arquivo auxiliar em ~/.failproofai/next-audit.json:
0600 como auth.json.
O endpoint /api/auth/reminder do dashboard expõe GET (ler), POST (definir / reagendar) e DELETE (limpar), e requer uma sessão ativa.
O que há em ~/.failproofai/auth.json
0600 (leitura/escrita somente pelo proprietário). O token de acesso é um JWT HS256 com validade de 1 hora; o token de atualização é uma string aleatória opaca de 256 bits que o servidor armazena como SHA-256(token). A reutilização do token de atualização é detectada no servidor e revoga todas as sessões do usuário.
Variáveis de ambiente
| Variável | Padrão | Finalidade |
|---|---|---|
FAILPROOF_API_URL | https://api.befailproof.ai | Substitui a URL base do servidor de API. Útil para desenvolvimento local com um servidor de API auto-hospedado. |
FAILPROOFAI_AUTH_DIR | ~/.failproofai | Substitui o local onde auth.json é armazenado. Principalmente para testes. |
Solução de problemas
“Could not reach the api-server” — a CLI não consegue abrir uma conexão TCP comFAILPROOF_API_URL. Verifique sua rede ou defina FAILPROOF_API_URL se você estiver executando um servidor de API auto-hospedado.
“Rate limited” — muitas tentativas de login em uma janela de 15 minutos para aquele e-mail (5/e-mail) ou IP (20/IP), ou um cooldown de 30 segundos após a solicitação anterior para o mesmo e-mail. A mensagem de erro inclui o tempo de espera em segundos.
Código rejeitado — o OTP estava incorreto, expirou ou a entrada atingiu o bloqueio de 5 tentativas erradas. Execute failproofai auth login novamente para solicitar um novo código.
