# Runbook de rotacao de segredos

Status: procedimento definido para qualquer segredo exposto, suspeito ou antigo.

## Quando executar

- Segredo apareceu no Git, em print, ticket, log ou mensagem.
- Colaborador ou fornecedor perdeu acesso autorizado.
- Troca programada de producao, homologacao ou desenvolvimento.
- Incidente de seguranca, ainda que sem confirmacao de uso indevido.

## Ordem recomendada

1. Abrir registro de manutencao com data, responsavel e motivo.
2. Gerar novo segredo forte fora do repositorio.
3. Atualizar o secret manager, painel do provedor ou `.env` do servidor.
4. Reiniciar a aplicacao e validar `/api/health`, login e fluxo afetado.
5. Revogar o segredo antigo no provedor de origem.
6. Rodar `npm run security:test` e `npm run build` quando a troca afetar aplicacao.
7. Se o segredo entrou no Git, tratar como comprometido mesmo apos remover do historico.

## Segredos criticos

- `NEXTAUTH_SECRET`: trocar invalida sessoes; comunicar janela curta de relogin.
- `CRON_SECRET`: atualizar workflows e servidor antes de reativar automacoes.
- `ASAAS_WEBHOOK_TOKEN`: atualizar Asaas e ambiente da aplicacao na mesma janela.
- SMTP: trocar senha/app password e enviar e-mail de teste.
- Banco: rotacionar usuario/senha e testar backup/restore depois.

## Evidencia minima

- Identificador do segredo, sem expor o valor.
- Ambiente afetado.
- Horario de troca e revogacao do valor antigo.
- Resultado dos testes e healthcheck.
- Plano de rollback, quando houver.
