From 4493e7834938d4da578d8e06565e4a2e286e438b Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 13 Jun 2026 16:45:36 -0300 Subject: [PATCH] wiki: F6.3 preparada + itens SaaS-admin em aberto Co-Authored-By: Claude Fable 5 --- Obsidian/Brain/log.md | 3 +++ Obsidian/Brain/wiki/Migracao Schema-per-Tenant.md | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Obsidian/Brain/log.md b/Obsidian/Brain/log.md index fa81154..7013650 100644 --- a/Obsidian/Brain/log.md +++ b/Obsidian/Brain/log.md @@ -1684,3 +1684,6 @@ Touched: Migracao Schema-per-Tenant ## [2026-06-13 16:26] session | F6 wiring no clone (tenants novos completos) Touched: Migracao Schema-per-Tenant + +## [2026-06-13 16:45] session | F6.3 preparada (nao-aplicada) + itens SaaS-admin +Touched: Migracao Schema-per-Tenant diff --git a/Obsidian/Brain/wiki/Migracao Schema-per-Tenant.md b/Obsidian/Brain/wiki/Migracao Schema-per-Tenant.md index de341d4..e08e1ef 100644 --- a/Obsidian/Brain/wiki/Migracao Schema-per-Tenant.md +++ b/Obsidian/Brain/wiki/Migracao Schema-per-Tenant.md @@ -37,7 +37,15 @@ Sub-lotes propostos (cada um com smoke test + commit): ## ✅✅ F6.2 COMPLETA (2026-06-13) — 66 funções migradas Triggers (A agnósticos + B schema-aware + C notif) + RPCs (D usuário + E cron + F anon/token + G SQL→plpgsql). Tudo smoke-testado, build passa. Próximo: **wiring no clone** + **F6.3 DROP** (com OK do Leonardo). - ✅ **wiring DONE** (commit dc7826d, manual/f6_2h_clone_wiring.supabase_admin.sql): trigger AFTER INSERT em tenant_schemas (trg_attach_business_triggers) dispara os 3 attach pro schema novo → tenant novo nasce com 84 triggers. attach_agnostic agora SELF-CONTAINED (dirigido por colunas, não lê public — sobrevive ao DROP). provision_account_tenant: clone ANTES do seed. Smoke OK. -- Então **F6.3 DROP** (com OK do Leonardo, após testar o app). +- **F6.3 DROP** 📋 PREPARADA não-aplicada (commit cdb9ce1, manual/f6_3_drop_public_tenant_tables.supabase_admin.sql): pré-flight assert + 2 FKs viram coluna solta (document_share_links.documento_id, whatsapp_credits_transactions.conversation_message_id) + dropa 9 views public + DROP CASCADE das 78 + limpa financial_records_inject_tenant. **BLOQUEADA** pelos itens em aberto abaixo. + +## ⛔ ITENS EM ABERTO antes do F6.3 DROP (verificados: 16 reads FE públicos remanescentes, TODOS aqui) +Superfície **SaaS-admin / cross-tenant** que ainda lê `public.` e quebraria no DROP: +1. **SaasWhatsappPage.vue + v_twilio_whatsapp_overview + twilioWhatsappService.getAllChannels()** — admin cross-tenant de canais WhatsApp (notification_channels/whatsapp_connection_incidents). Reescrever fan-out por schema OU usar `public.channel_routing`. +2. **SaasNotificationTemplatesPage.vue** — gerencia templates DEFAULT do sistema (tenant_id NULL). Apontar pra `_tenant_template.notification_templates` (os defaults vivem lá agora). +3. **SaasFeriadosPage.vue** — gerencia feriados nacionais default. Idem `_tenant_template.feriados`. +4. **notification-webhook** (Meta) — conferir fan-out/channel_routing. +Decisão de arquitetura: as páginas que editam DEFAULTS do sistema devem editar `_tenant_template` (propaga a tenants novos); as views cross-tenant admin devem fan-out por schema ou usar channel_routing. Resolver, testar, então aplicar F6.3. ## 🟢 APP TESTÁVEL AGORA (pós-wiring, pré-DROP) Dados nos schemas (F6.1) + 66 funções/triggers/RPCs roteiam (F6.2) + PostgREST expõe (F5) + frontend usa tenantDb (F3) + edge roteia (F4). Os dados ainda estão ESPELHADOS em public (nada dropado). Leonardo deve abrir o app no branch `feat/schema-per-tenant` e testar fluxos reais (agenda, financeiro, pacientes, documentos, notificações). Só após validação → F6.3 DROP.