# Validação da baseline

Execução local em 17 setembro 2026, macOS, Node 24.1.0. Nenhum email real foi enviado; os dados usados são fictícios. As credenciais dos testes são criadas em diretórios temporários e não existem contas pré-instaladas na baseline.

## Verificações concluídas

- TypeScript: sem erros.
- ESLint: sem erros/avisos na verificação final.
- Build de produção Next 16.3.5: aprovada; páginas institucionais estáticas, administração e APIs dinâmicas.
- 10 testes de lógica: migrações/checksum/idempotência, validação e ficheiros condicionais, MIME/assinatura, isolamento de storage, limites reais do corpo, CSRF/redirecionamentos, scrypt/sessões/revogação, rollback SQL, leases/backoff/tentativas, CSV contra fórmulas, rate limit e PDF multipágina.
- 12 testes HTTP: público sem DB, sitemap/robots/404, autorização, rascunhos cifrados/retoma/expiração, submissão/idempotência, uploads inválidos, login/listagem/filtros/CSV/notas/estados/revisão, PDF e envio por SMTP fictício, pedidos de documentos/reenvio, falha SMTP/retry, RBAC/logout/arquivo lógico, rate limit e backup/restauro.
- Backup: SQLite restaurada abre com `integrity_check=ok`; conjunto de documentos presente no snapshot.
- Navegador Chrome: homepage 390 e 1440 px sem overflow; validação de passo vazio; gravação/retoma de rascunho sem restaurar uploads; cinco passos e submissão com sucesso; zero erros JavaScript capturados. Texto de privacidade revisto em mobile.
- Imagens: original sintético 2000×1000 → oito variantes (320/640/960/1440, WebP/AVIF), dimensões e proporções verificadas. Originais não servidos pelo componente.
- PDF: comprovativo de três páginas renderizado e inspecionado; cabeçalho, linhas, paginação, texto português, labels legíveis e ausência de sobreposições.
- Auditoria npm final (incluindo desenvolvimento): zero vulnerabilidades conhecidas reportadas, resultado JSON guardado.
- Integridade da fonte CSPVF: 527 ficheiros comparados por SHA-256, zero alterações. Não foram copiados dados, uploads ou credenciais.

## Repetir

```sh
npm ci
npm run typecheck
npm run lint
npm test
npm run build
npm run test:http
npm audit
```

`test:http` usa portas 3102/25252 e termina os serviços de teste. Saídas temporárias de PDF em `output/test-artifacts/` são ignoradas pelo Git. `npm test` não lê a `.env` do cliente; usa apenas DB/storage temporários.

## Limites da validação

Não foi feito deploy nem teste de capacidade no alojamento final. SMTP real, DNS, TLS, permissões/cron e entrega de email dependem da configuração de cada cliente e precisam de smoke test autorizado no destino. O benchmark é local de laboratório; INP real não foi medido. Ver `performance-before-after.md` e `deployment.md` para limites operacionais e resultados completos.
