Files
adaptador-planilhas/docs/spreadsheet-adapter/08-final-readiness-report.md
T
camilafagundesandCursor 6e23f1533b Implementa o MVP do Adaptador de Planilhas no Elo Pro.
O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 23:02:00 -03:00

3.1 KiB

Revisão final contra o escopo V3

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

  • 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