Pular para o conteúdo principal

Runbook — Credenciais e JWT

Sintomas

  • 401 em massa após deploy
  • Presença e REST a divergir (um funciona, o outro não)
  • Segredo ou .env apareceu num commit / log / ticket

Acções imediatas

  1. Trate como incidente de segurança (SECURITY.md) — canal interno, não issue pública.
  2. Rode JWT_SECRET (e JWT_SECRET_FILE se aplicável) em todos os emissores: esta API e default-crm.
  3. Rode passwords de PostgreSQL e Redis se o ficheiro as continha.
  4. Invalide tokens: com TTL de JWT_EXPIRES_IN_SECONDS (default 10800 s) os JWT antigos morrem sozinhos após o rotate; para corte imediato só mudando o segredo.
  5. Remova o segredo do git com o processo interno de history (não force-push em main/Develop sem acordo). O .gitignore já ignora .env / .ENV.

Prevenção

  • .env.example no repositório, com placeholders.
  • Preferir JWT_SECRET_FILE em Swarm/K8s.
  • Nunca colar tokens em ADRs, issues ou Postman committed.