diff --git a/recovery/agent-db/DECISIONS.md b/recovery/agent-db/DECISIONS.md index ade783f08..046cd7be0 100644 --- a/recovery/agent-db/DECISIONS.md +++ b/recovery/agent-db/DECISIONS.md @@ -322,3 +322,77 @@ DELETE FROM public.integration_credentials WHERE notes LIKE '%Decision 007%'; - Documentação dos adapters em `BATCH_D3_D5_COMPLETE.md` e `EXECUTION_LOG.md` para preservar histórico. - Funções com tipo divergente do Lovable podem precisar de re-cast em código frontend/edge functions; isso é benigno e foi assumido. + +--- + +## Decision 010 — Manter REMOVIDAS as rotas públicas com token + +**Data**: 2026-05-12 +**Status**: ✅ DEFINITIVA +**Reafirma**: Decisão original de Joaquim em 07/05/2026 (commit `0bc97759b7e235b995c6110a0e94228e86006c8a`) + +### Trigger +Após o merge da PR #146 (D.3 + D.4 — Lovable 100% parity), o checklist final +listava como "pendente" reaplicar `kit-public-view` e `quote-public-view`. +Sponsor reafirmou: **manter exclusão**. + +### Decisão original (07/05/2026, commit 0bc97759b) +> "Rotas públicas com token não são viáveis para o modelo de negócio do +> PromoGifts. Cliente externo não acessará mais nada via link sem login. +> Orçamento vira só documento (PDF/proposta), sem conceito de aprovação +> pública." + +### Escopo da remoção (já consolidado em main) + +**7 rotas frontend removidas:** +- `/approve/:token` (aprovação pública de orçamento) +- `/proposta/:token` (alias) +- `/kit/:token` (visualização pública de kit) +- `/lista-publica/:token` (lista de favoritos) +- `/colecao-publica/:token` (coleção) +- `/comparar-publica/:token` (comparação) +- `/dossie/:token` (dossiê BI) + +**6 edge functions removidas:** +- `quote-public-view` +- `kit-public-view` +- `favorites-public-react` +- `collections-public-react` +- `comparisons-public-react` +- `bi-share-dossier` + +**7 páginas React + 4 hooks + 5 componentes** deletados. + +### Implicações para o trabalho de recovery +- ✅ Lovable 100% parity já considera essas edges como **fora do escopo** +- ✅ Auditoria de tables D.3+D.4 não recriou tables relacionadas (`quote_approval_tokens`, `kit_share_tokens` etc — já dropadas no main) +- ⚠️ A migration `20260507161547_drop_public_token_tables.sql` foi **preparada mas NÃO rodou** ainda em PROD (DROP de `quote_approval_tokens`, `public_token_failures`, `kit_share_tokens`) + - Atenção: `public_token_failures` FOI recriada em D.4.1 Step-Up MFA (para fins de auditoria de tentativas inválidas em geral, não apenas tokens públicos). Manter. +- ⚠️ Pendência Fase B (do commit original): 26 menções a status `approved`/`rejected`/`pending_approval` em dashboard/kanban/BI continuam. Cleanup quando Joaquim definir conceito de "orçamento finalizado" + +### Onde NÃO mais aparecer como pendente +- `recovery/agent-db/progress.md` — atualizado para "❌ NÃO reaplicar" +- `recovery/patches/BATCH_D3_D4_README.md` — atualizado para "❌ NÃO reaplicar" + + +### Auditoria de tables/functions órfãos relacionados (validada em 2026-05-12 contra PROD) + +**Tables vazias em PROD que ainda existem:** +- `kit_share_tokens` — 0 rows +- `quote_approval_tokens` — 0 rows + +**Funções que ainda referenciam essas tables** (precisam de cleanup futuro): +- `record_public_token_failure` +- `validate_status_fields` +- `get_quote_token_by_value` +- `submit_quote_response` +- `dispatch_quote_webhook_event` ⚠️ (recriada em D.4.2 — tem branch que monta payload de `kit.shared` via `kit_share_tokens`) + +**Recomendação (Fase B — cleanup técnico):** +1. Confirmar com Joaquim que a migration `20260507161547_drop_public_token_tables.sql` pode rodar +2. Antes do DROP, refatorar as 5 funções acima para remover branches que dependem dessas tables +3. Validar via grep no frontend que nenhum lugar mais consome essas funções com payload de token público +4. Rodar migration + recriar `dispatch_quote_webhook_event` SEM o branch `kit_share_tokens` + +**Por que não fazer agora:** fora do escopo desta sessão (recovery de Lovable). Cleanup técnico depende de validação do frontend. + diff --git a/recovery/agent-db/progress.md b/recovery/agent-db/progress.md index e472c71dc..cec46585b 100644 --- a/recovery/agent-db/progress.md +++ b/recovery/agent-db/progress.md @@ -19,5 +19,5 @@ - Total Lovable parity: ✅ 100% (exceto 2 edges públicas removidas conscientemente) ## 🟦 Pendente (decisão de produto) -- Reaplicar `kit-public-view` e `quote-public-view` edge functions (foram removidas em PRs anteriores por security) +- ❌ **NÃO reaplicar** `kit-public-view` e `quote-public-view` — decisão de produto (Joaquim, 07/05/2026, commit `0bc97759b`): "rotas públicas com token não são viáveis para o modelo de negócio do PromoGifts. Cliente externo não acessará mais nada via link sem login." Removidas junto com outras 5 rotas públicas (favoritos, coleções, comparações, dossiê, kit) e 7 páginas React - Validar features no frontend (Magic Up, Expert Chat, Voice Commands) — pode precisar de adaptações em código React diff --git a/recovery/patches/BATCH_D3_D4_README.md b/recovery/patches/BATCH_D3_D4_README.md index dae15e19e..097222ed9 100644 --- a/recovery/patches/BATCH_D3_D4_README.md +++ b/recovery/patches/BATCH_D3_D4_README.md @@ -53,5 +53,5 @@ Funções de suporte criadas no PROD que não vieram no dump mas eram referencia ## Próximos passos - ✅ Merge desta PR -- 🟦 Reaplicar `kit-public-view` e `quote-public-view` (edges removidas em PRs anteriores) — decisão de produto se voltar ao escopo +- ❌ **NÃO reaplicar** `kit-public-view` e `quote-public-view` — decisão definitiva de produto (Joaquim, 07/05/2026, commit `0bc97759b`). Rotas públicas com token não fazem parte do modelo de negócio do PromoGifts - 🟦 Validar com frontend que features Magic Up, Expert Chat, Voice Commands estão funcionando