Files
reservas/docs/PRODUCTION_CHECKLIST.md

5.5 KiB

Checklist de entrada em produção

Este documento é o registo de prontidão. Cada item deve ter responsável, data e ligação para a evidência no sistema institucional de operação. Nunca colocar segredos, tokens ou dados pessoais neste ficheiro.

1. Microsoft Entra ID

  • Registar uma aplicação de tenant único do tipo Web.
  • Configurar exatamente https://<domínio>/auth/microsoft/callback como redirect URI.
  • Criar credencial com validade e rotação definidas; preferir mecanismo externo de segredos.
  • Definir MICROSOFT_ENABLED=true, client ID, tenant GUID, secret e redirect URI fora do repositório.
  • Confirmar que uma conta local consegue associar e remover a identidade em Segurança.
  • Confirmar login, logout, utilizador desativado, tenant incorreto e rotação da chave de assinatura.
  • Aplicar Conditional Access/MFA institucional aos perfis privilegiados.
  • Documentar o procedimento de recuperação através de login local administrado.

Referências oficiais: Authorization Code Flow com PKCE, tokens e validação de claims e validação de assinatura/emissor.

2. Snipe-IT

  • Confirmar URL e versão da instância institucional.
  • Criar conta/token de leitura com menor privilégio.
  • Criar conta/token operacional separado, apenas com checkout/check-in necessários.
  • Executar sincronização integral e comparar amostra de etiquetas, categorias, estados e localizações.
  • Confirmar por inspeção e testes simulados que o portal não contém endpoints de criação, edição ou eliminação de inventário.
  • Validar tecnicamente a produção apenas com pedidos GET; nunca usar um movimento artificial como teste de conectividade.
  • No primeiro movimento institucional legítimo, usar um ativo existente e não atribuído, verificar o preflight e reconciliar handover_records.
  • Confirmar que um ativo já atribuído é bloqueado sem qualquer pedido de escrita.
  • Confirmar resposta a indisponibilidade, timeout e falha parcial sem retries de escrita.

3. Email, domínio e TLS

  • Configurar SMTP institucional e remetente autorizado.
  • Validar submissão, esclarecimento, aprovação, rejeição e substituição em destinatários reais de teste.
  • Publicar domínio e certificado TLS com renovação automática.
  • Definir APP_ENV=production, APP_DEBUG=false, APP_URL=https://..., cookies seguros e proxy confiável.
  • Remover exposição pública de PostgreSQL, Redis, Vite e Mailpit.

4. Segredos e infraestrutura

  • Montar APP_KEY, credenciais PostgreSQL/Redis/SMTP, tokens Snipe-IT e Entra através do gestor externo.
  • Confirmar que logs, dumps, imagens e artefactos de CI não contêm segredos.
  • Construir imagem imutável, executar migrations com etapa controlada e reiniciar workers após deploy.
  • Definir limites de CPU/memória, rotação de logs e política de atualização de imagens/dependências.

5. Saúde, monitorização e alertas

  • Monitorizar GET /health/live para disponibilidade do processo.
  • Usar GET /health/ready para retirar instâncias sem PostgreSQL/cache do balanceamento.
  • Alertar para HTTP 5xx, latência, filas acumuladas, jobs falhados, scheduler parado e disco baixo.
  • Alertar para sincronização Snipe-IT falhada/antiga e erros de autenticação anormais.
  • Definir contacto, severidade, escalonamento e janela de manutenção.

6. Backup e recuperação

  • Agendar ops/backup-postgres.sh <destino> com utilizador restrito e armazenamento cifrado.
  • Copiar backups e respetivos .sha256 para uma localização externa com retenção diária/semanal/mensal.
  • Monitorizar idade, tamanho e resultado de cada backup.
  • Executar ops/test-restore-postgres.sh <ficheiro.dump> pelo menos mensalmente em ambiente isolado.
  • Registar RPO, RTO, responsável, duração e resultado do ensaio.
  • Ensaiar recuperação da configuração e segredos por procedimento separado.

7. Segurança, desempenho e piloto

  • Executar análise de dependências, análise estática e testes completos no artefacto de release.
  • Testar autorização horizontal/vertical para todos os perfis e exportações.
  • Testar concorrência na aprovação/reserva contra PostgreSQL real.
  • Medir catálogo, calendário global, relatórios e exportações com volume representativo.
  • Executar E2E com equipamentos reais, scanner, entrega parcial, incidente e reconciliação.
  • Importar utilizadores/perfis iniciais e rever a matriz de aprovadores.
  • Formar requisitantes, aprovadores, operadores e administradores com runbook aplicável.
  • Realizar piloto limitado, registar incidentes e obter decisão formal de go/no-go.

Registo de evidências

Área Responsável Data Resultado Evidência externa
Entra ID Por atribuir — Pendente —
Snipe-IT Codex (validação técnica) 2026-08-05 Parcial: dois tokens distintos responderam a GET; sincronização de 2367 ativos; zero escritas Registo interno em PROJECT_STATUS.md; validação institucional pendente
SMTP/TLS Por atribuir — Pendente —
Monitorização Por atribuir — Pendente —
Restauro Por atribuir — Pendente —
Piloto Por atribuir — Pendente —