87 lines
5.1 KiB
Markdown
87 lines
5.1 KiB
Markdown
# Gate final do piloto
|
|
|
|
**Status: Pilot Ready in Code / Environment Validation Pending**
|
|
|
|
Não há novas alterações funcionais até a validação no ambiente real da Elo Pro. O Adaptador só entra no workspace do primeiro cliente depois que todos os itens externos deste gate passarem nesse ambiente.
|
|
|
|
| Frente | Estado |
|
|
| --- | --- |
|
|
| Código | Aprovado para piloto |
|
|
| Infraestrutura Elo Pro | Ainda não validada |
|
|
| Segurança multi-tenant | Aprovada na suíte disponível |
|
|
| Smoke real | Pendente |
|
|
| Rollback real | Pendente |
|
|
| Feature flag do cliente piloto | Desligada |
|
|
|
|
Pendências que não bloqueiam o código atual e bloqueiam a ativação: integração com o repositório real da Elo Pro e validação visual com os tokens oficiais. `#0B3D91` permanece provisório e não vira token oficial.
|
|
|
|
## Próximo pacote — somente validação no ambiente Elo Pro
|
|
|
|
1. Integrar e validar o login real no navegador.
|
|
2. Validar Postgres, migrations e RLS no banco Elo Pro.
|
|
3. Provisionar e testar o bucket privado.
|
|
4. Subir Redis e worker e confirmar processamento assíncrono real.
|
|
5. Provocar um erro controlado e confirmar sanitização no Sentry.
|
|
6. Executar o smoke end-to-end completo.
|
|
7. Executar o ensaio de rollback.
|
|
8. Integrar os tokens oficiais do Design System quando forem disponibilizados.
|
|
9. Somente então ativar a feature flag do workspace piloto.
|
|
|
|
Verificado nesta máquina em 2 de outubro de 2026:
|
|
|
|
- `npx eslint .` passou
|
|
- `npx tsc --noEmit` passou
|
|
- `npx vitest run` passou depois da correção do teste de auditoria (34 testes, 1 smoke real ignorado de propósito)
|
|
- `npx next build` passou
|
|
|
|
O smoke com Supabase, Redis e bucket reais não foi executado. `tests/smoke/real-environment.test.ts` permanece ignorado sem `SMOKE_REAL=1`.
|
|
|
|
Os prompts 21 e 22 não foram executados: não há repositório da Elo Pro nem tokens oficiais do Design System neste workspace. O azul `#0B3D91` continua provisório.
|
|
|
|
## Avaliação
|
|
|
|
| Área | Resultado | Teste que ainda falta |
|
|
| --- | --- | --- |
|
|
| Elo Pro Auth | PASS WITH EXTERNAL DEPENDENCY | Login real no navegador, sessão reconhecida, logout e sessão expirada no host Elo Pro |
|
|
| Workspace isolation | PASS | Suíte de aplicação executada |
|
|
| RLS | PASS WITH EXTERNAL DEPENDENCY | Repetir o isolamento no Postgres do piloto, não só no PGlite |
|
|
| Storage | PASS WITH EXTERNAL DEPENDENCY | Upload e download no bucket privado real |
|
|
| Redis | PASS WITH EXTERNAL DEPENDENCY | Lock e fila contra um Redis real |
|
|
| Worker | PASS WITH EXTERNAL DEPENDENCY | Subir `npm run worker` no ambiente do piloto e concluir um job enfileirado |
|
|
| TTL | PASS | Configuração inválida, arquivo vencido e limpeza repetida cobertos na suíte |
|
|
| XLSX | PASS | ExcelJS mantido. Fixtures e imutabilidade do modelo executadas |
|
|
| Observability | PASS WITH EXTERNAL DEPENDENCY | A sanitização foi testada com sentinela. Falta um evento real no projeto Sentry |
|
|
| Feature flag | PASS | Workspace desligado, flag alterada depois do job e contexto forjado cobertos. A ativação do workspace piloto é o último passo operacional |
|
|
| Audit trail | PASS | Eventos de upload, mapeamento, processo e download. Update pelo `app_user` é recusado |
|
|
| Upload security | PASS | Macro, CSV inválido, célula enorme, zip e tamanho cobertos |
|
|
| Concurrency | PASS | Duas chamadas do mesmo usuário terminam em um resultado |
|
|
| Production env | PASS WITH EXTERNAL DEPENDENCY | O validador foi testado. Falta subir web e worker com as envs reais do piloto |
|
|
| Smoke tests | PASS WITH EXTERNAL DEPENDENCY | A jornada local passou. A jornada no ambiente real não foi executada |
|
|
| Rollback | PASS WITH EXTERNAL DEPENDENCY | O procedimento está no runbook. Um ensaio de rollback não foi feito |
|
|
|
|
Nenhum item ficou FAIL no código desta entrega. O piloto não está liberado para o cliente enquanto os itens com dependência externa não forem executados no ambiente real.
|
|
|
|
## Congelamento
|
|
|
|
| Ocorrência | Classificação |
|
|
| --- | --- |
|
|
| `ADAPTER_DEV_AUTH` | Manter apenas em desenvolvimento |
|
|
| Jobs inline | Manter apenas em desenvolvimento |
|
|
| Shim `profiles` / `workspaces` / `workspace_members` | Manter até o schema real. Remover a dependência só na integração da Elo Pro |
|
|
| `console.log` dos scripts de migrate, seed, flag e cleanup | Aceitável no piloto. Não imprimem célula |
|
|
| `console.error` com o nome do erro | Aceitável no piloto |
|
|
| Azul `#0B3D91` | Pós-piloto, quando houver token oficial |
|
|
| Bucket público, senha própria, identidade paralela | Não há. Nada a remover |
|
|
| TODO / FIXME no código | Não há |
|
|
|
|
## Pilot Activation Checklist
|
|
|
|
- [ ] Confirmar que o schema Elo Pro já existente não receberá o shim de identidade
|
|
- [ ] Aplicar as migrations do Adaptador no banco conferido
|
|
- [ ] Criar o bucket privado
|
|
- [ ] Configurar Redis, worker, TTL, Sentry e o login central
|
|
- [ ] Subir web e worker e receber `ready` em `/api/health/ready`
|
|
- [ ] Executar o smoke real: modelo, fonte, aba, cabeçalho, mapeamento, prévia, processamento, XLSX, CSV e PDF
|
|
- [ ] Confirmar auditoria sem conteúdo de célula e rollback ensaiado com a flag desligada
|
|
- [ ] Enable Spreadsheet Adapter for pilot workspace
|