Files
adaptador-planilhas/docs/spreadsheet-adapter/08-final-readiness-report.md
camilafagundes 419325db12
ci / verify (push) Has been cancelled
Inicio do Projeto Piloto
2026-10-02 23:59:36 -03:00

51 lines
3.3 KiB
Markdown

# Revisão final contra o escopo V3
Status consolidado: **Pilot Ready in Code / Environment Validation Pending**. O gate, a ordem da validação no ambiente Elo Pro e a regra de manter a feature flag desligada estão em `18-pilot-final-gate.md`.
| Requisito | Status | Evidência |
| --- | --- | --- |
| Sem login, senha ou token próprio | OK | `src/server/auth`, ausência de tabela de senha |
| Sessão Supabase e cookie de workspace | OK | `context.ts`, middleware |
| Flag de módulo, padrão desligado | OK | `workspace_module_flags`, página de módulo desligado |
| RLS e papéis | OK | `0003_rls.sql`, testes de RLS e jornada |
| 10 modelos, nome único, soft delete provisório | OK | triggers, unique index, `status` |
| XLSX/CSV, 10 MB, 50k, 10 fontes | OK | domínio + testes; 50k no caminho CSV |
| Uma aba e linha de cabeçalho | OK | jornada e `updateSource` |
| Mapeamento 1:1, obrigatórias, select e drag | OK | domínio, UI e testes |
| Prévia antes de processar | OK | `previewSource` e passo da jornada |
| Lock, idempotência, Redis obrigatório em produção | OK | coordinator e teste de indisponibilidade |
| Modelo imutável | OK | SHA-256 e comparação de bytes na jornada |
| Temporários e limpeza | OK | `cleanupExpired`; TTL de produto aberto |
| Exclusão só owner/admin e bloqueio com job ativo | OK | jornada |
| Auditoria sem células | OK | scrub e teste do token `=CMD()` |
| Sentry sem planilha | OK | `beforeSend` e teste de scrub |
| Saída XLSX, CSV e PDF | OK | jornada gera os três |
| UI com tokens V3, Manrope, Lucide | PARCIAL | Componentes locais no token do escopo; biblioteca oficial do Elo Pro não estava no repo |
| Acessibilidade básica | PARCIAL | Select, switch, dialog e foco visível cobertos; não houve auditoria WCAG formal |
| E2E no browser do Elo Pro | PARCIAL | Jornada de API completa; browser do ecossistema inexistente aqui |
| Performance 10 MB / 50k XLSX / 10 fontes paralelas | PARCIAL | 50k CSV e rejeição de arquivo acima de 10 MB; ExcelJS de 50k linhas não medido |
| Job runner de produção | DECISÃO ABERTA | Worker no mesmo código; fila externa não escolhida |
| Storage de produção | DECISÃO ABERTA | Interface pronta; local só fora de produção |
| TTL, biblioteca XLSX, soft delete, SSO entre hosts | DECISÃO ABERTA | ADRs |
## Bloqueios de release para o piloto no ecossistema
1. Apontar `DATABASE_URL` do Postgres Elo Pro e não aplicar o shim de identidade se as tabelas já existirem com outro formato.
2. Aprovar bucket privado e preencher as envs de storage.
3. Definir TTL numérico em `SPREADSHEET_TEMP_TTL_SECONDS`.
4. Rodar `ADAPTER_JOB_MODE=worker` com Redis, não o modo inline, no ambiente de piloto.
5. Confirmar a biblioteca ExcelJS (MIT, provisória) ou trocar o codec em `src/infra/spreadsheet/parse.ts`.
6. Ligar a flag só no workspace piloto.
## Riscos residuais
PDF truncado de propósito. Formatação do modelo não é reaproveitada. Conexão de serviço ignora RLS. Lock em memória não atravessa várias instâncias.
## Checklist de release
- [x] Suíte Vitest, typecheck, lint e build de produção locais
- [ ] Smoke no staging com Supabase, Redis e bucket reais
- [ ] Smoke no staging com Supabase, Redis e bucket reais
- [ ] Flag desligada para quem não é piloto
- [ ] Sentry com DSN, sem anexo de arquivo