Skip to content

docs(redeploy-t3): audit supabase/migrations vs prod db (zero intersection)#154

Merged
adm01-debug merged 1 commit into
mainfrom
chore/redeploy-t3-migrations-audit
May 12, 2026
Merged

docs(redeploy-t3): audit supabase/migrations vs prod db (zero intersection)#154
adm01-debug merged 1 commit into
mainfrom
chore/redeploy-t3-migrations-audit

Conversation

@adm01-debug
Copy link
Copy Markdown
Owner

@adm01-debug adm01-debug commented May 12, 2026

🎯 Tarefa 3 do redeploy Promo_Gifts — Auditoria de Migrations

Audita o estado de supabase/migrations/ vs o banco real. Achado: divergência total.

Closes part of #153


Achado

Camada Total Papel
Banco Supabase (schema_migrations em prod) 209 versions ✅ Fonte da verdade
Repo (supabase/migrations/) 332 versions Histórico desincronizado
Intersecção 0 versions

Última aplicada em prod: 20260512164738_onda3_simplifica_nf_e_retry (hoje 16:47).
Última no repo: 20260512153020_drop_favorite_item_reactions (T2, criada por mim).

Premissa correta

O banco Supabase é a fonte da verdade. Lovable, Dashboard SQL Editor, MCP apply_migration e scripts ad-hoc são apenas ferramentas que aplicam DDL nele. O banco pode estar mais atualizado que qualquer cliente individual.

Mudanças

  • docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md (164 linhas) — auditoria completa
  • supabase/migrations/README.md reescrito com aviso "NÃO rode db push"

Implicação para T11 do redeploy

⚠️ Não usar supabase db push — destruiria o banco.

Aplicar APENAS a migration 20260512153020_drop_favorite_item_reactions.sql via MCP:

SUPABASE - GESTÃO DE PRODUTOS:apply_migration
- name: drop_favorite_item_reactions
- query: DROP TABLE IF EXISTS public.favorite_item_reactions CASCADE;

Sem mudanças de código

Esta PR é só docs (zero arquivos de src/, zero arquivos de teste). Riscos de regressão: zero.

Co-Authored-By: Claude noreply@anthropic.com

Summary by CodeRabbit

Documentação

  • Documentação de procedimentos de migração atualizada com orientações operacionais
  • Adicionado guia de auditoria para sincronização de schema

Review Change Stack

…0% desync

Tarefa 3 do redeploy. Comparação direta entre supabase_migrations.schema_migrations
em prod e supabase/migrations/ no repo revelou divergência total:

- Banco Supabase (fonte da verdade do schema): 209 versions aplicadas
- Repo supabase/migrations/: 332 arquivos .sql
- Intersecção: ZERO versions

Banco Supabase é a fonte da verdade. Lovable, Dashboard, MCP e scripts ad-hoc
são apenas ferramentas que aplicam DDL nele. As 332 migrations no repo são
histórico legado de várias fontes que não foi sincronizado com a realidade.

Implicação crítica para T11: NÃO usar 'supabase db push' (causaria conflitos
massivos). Aplicar a migration específica via MCP apply_migration.

Entregáveis:
- docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md (164 linhas)
- supabase/migrations/README.md com aviso 'NÃO rode db push'
- Issue #153 aberta com 3 opções estratégicas (manter, baseline, outra ferramenta)

Closes part of #153

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 12, 2026 17:45
@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
promo-gifts Ready Ready Preview, Comment May 12, 2026 5:46pm

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documents the results of Redeploy Task 3 by auditing supabase/migrations/ against the production Supabase schema_migrations table, and updates migration guidance to prevent destructive CLI usage in a drifted state.

Changes:

  • Adds a detailed audit write-up documenting the “zero intersection” finding and its operational implications for redeploy steps.
  • Rewrites supabase/migrations/README.md to explicitly warn against running supabase db push and to describe the intended workflow for schema changes in this project.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
supabase/migrations/README.md Replaces the old catalog with a safety warning and updated process guidance for applying schema changes.
docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md New audit document capturing findings, risks, and redeploy plan implications regarding migration drift.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

**Migrations já aplicadas em produção NÃO devem ser editadas.** Pra mudanças no schema, **adicione uma nova migration** seguindo a convenção abaixo. Editar uma migration existente quebra deploys e drift detection.
O conteúdo deste diretório:
- Contém **332 arquivos** que historicamente vieram de várias fontes (bootstrap, iterações do Lovable, tentativas locais)
- **Não reflete o estado real do banco** — zero intersecção entre os filenames aqui e a tabela `supabase_migrations.schema_migrations` em prod

_Doc gerado automaticamente. Pra atualizar: `node scripts/gen-migrations-readme.mjs` (script preservado em `scripts/`)._
Esta situação foi detectada e documentada na **Tarefa 3 do redeploy** (2026-05-12).
Detalhes completos: [`../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md`](../../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md)
Esta situação foi detectada e documentada na **Tarefa 3 do redeploy** (2026-05-12).
Detalhes completos: [`../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md`](../../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md)

Issue de follow-up para discussão estratégica: (a ser criada na T3)

O banco Supabase aceita DDL de várias fontes:
- **Supabase Dashboard** (SQL Editor)
- **MCP `apply_migration`** (caminho que usei na T2 da auditoria — não, espera, só CRIEI o arquivo, ainda não apliquei)

-- Última aplicada (registro do que o BANCO aceitou):
SELECT version, name FROM supabase_migrations.schema_migrations ORDER BY version DESC LIMIT 1;
-- → 20260512164738_onda3_simplifica_nf_e_retry (12 maio 16:47)
Comment on lines +161 to +164
- query: DROP TABLE IF EXISTS public.favorite_item_reactions CASCADE;
```
4. Issue de discussão (a abrir na T3) vai estar linkada nesta tarefa
5. Próxima tarefa: **T4 — auditar load alto na VPS**
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef0e0f6348

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

| Camada | Total | Papel |
|---|---|---|
| **Banco Supabase** (`schema_migrations`) | 209 versions | ✅ Fonte da verdade do schema real |
| **Repo** (`supabase/migrations/`) | 332 versions | Histórico desincronizado (várias fontes contribuíram) |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the migration inventory counts

The audit's repo-side baseline is wrong: checking the reviewed tree with git ls-tree -r 16afd4ef supabase/migrations | awk '/\.sql$/' shows 369 SQL migration files, not 332, and the monthly breakdown has 74 files in 2025 rather than 37. Because this document is intended to guide the redeploy reconciliation, undercounting by 37 makes the “zero intersection” audit hard to trust and can cause operators to miss a full batch of migrations when establishing a new baseline.

Useful? React with 👍 / 👎.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

📝 Walkthrough

Visão geral

A PR documenta uma auditoria completa que descobriu desincronização total entre as migrações armazenadas em supabase/migrations/ e o histórico registrado em schema_migrations do Supabase. Establece Supabase como fonte de verdade, proíbe supabase db push, e fornece orientações operacionais precisas para aplicação segura de mudanças de schema durante o redeploy.

Mudanças

Auditoria de desincronização e guias de redeploy

Camada / Arquivo(s) Resumo
Relatório e análise técnica do audit
docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md (linhas 1–123)
Introduz o audit documentando zero sobreposição entre versões de migração no repositório e banco de dados. Apresenta descoberta com exemplos SQL, explica como IDE, Supabase Dashboard e MCP registram migrações de forma inconsistente, e analisa a sequência provável de eventos (edições na IDE, edições no dashboard, aplicação via MCP, commits seletivos) que causaram a desincronização.
Orientações operacionais e redefinições de redeploy
docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md (linhas 56–164)
Especifica guidance prático: proíbe explicitamente supabase db push, recomenda aplicação apenas da migração T2 (20260512153020_drop_favorite_item_reactions.sql) via MCP apply_migration ou SQL Editor do Supabase. Mapeia riscos críticos, enumera mitigações (documentação, auditoria, aplicação com rastreabilidade), redefine tarefas T11/T14/T15, e fornece instruções concretas para futuros agentes com parâmetros exatos de MCP.
README de migrações e fluxos aprovados
supabase/migrations/README.md (linhas 1–31)
Substitui catálogo anterior por aviso direto: supabase/migrations/ não é fonte de verdade e db push é proibido. Documenta dois caminhos aprovados (Lovable IDE com commit automático, ou criação ad-hoc + MCP/SQL Editor), inclui verificação via schema_migrations, e referencia documento de auditoria.

Esforço estimado de revisão

🎯 1 (Trivial) | ⏱️ ~3 minutos

Possíveis questões relacionadas

  • adm01-debug/Promo_Gifts#153 — Ambas as mudanças modificam os mesmos documentos de auditoria e README de migrações, descrevendo a desincronização e a mesma mitigação (proibição de db push, aplicação de migração específica).

Possíveis PRs relacionadas

  • adm01-debug/Promo_Gifts#150 — A auditoria desta PR instrui aplicar a migração exata (20260512153020_drop_favorite_item_reactions.sql) que a PR recuperada adiciona, e ambas tratam da limpeza do Supabase e remediação de desincronização.

Poema

🐰 Migrações em desacordo, mas agora reveladas,
Supabase é verdade, não arquivos desalinhados.
Sem db push! Só MCP, direto e cuidado.
O coelho audit mapeou, o caminho foi traçado. 🔍✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed O título descreve com clareza o objetivo principal do PR: auditoria de migrations do Supabase com resultado de interseção zero.
Description check ✅ Passed A descrição segue o template, incluindo tipo de mudança (📚 Documentação), issue relacionada, achados claros e implicações operacionais, porém o checklist está vazio.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@supabase/migrations/README.md`:
- Line 31: Atualize a linha que atualmente diz "Issue de follow-up para
discussão estratégica: (a ser criada na T3)" para incluir uma referência
rastreável; ou substitua pelo marcador explícito "TODO: criar issue de follow-up
(T3)" ou insira o número/URL da issue assim que for criada. Procure e edite o
texto exato "Issue de follow-up para discussão estratégica: (a ser criada na
T3)" no README.md para garantir rastreabilidade.
- Line 5: The README currently exposes the Supabase project ref
"doufsxqlfjyuvxuezpln"; remove or redact that literal and replace it with a
generic reference such as "o banco Supabase do projeto" or a placeholder/env-var
reference (e.g. "${SUPABASE_PROJECT_REF}") so no real project identifier is
stored in the public docs; update the sentence in supabase/migrations/README.md
that mentions the project ref accordingly and ensure any other occurrences of
"doufsxqlfjyuvxuezpln" in that file are similarly replaced.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fb7ee165-2e5f-4cab-a8c8-22e86f58bf4b

📥 Commits

Reviewing files that changed from the base of the PR and between 26724e6 and ef0e0f6.

📒 Files selected for processing (2)
  • docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md
  • supabase/migrations/README.md

## NÃO rode `supabase db push` neste projeto

## ⚠️ AVISO IMPORTANTE
O **banco Supabase** (`doufsxqlfjyuvxuezpln`) é a fonte da verdade do schema. Mudanças entram nele por várias rotas: Lovable IDE, Dashboard direto, MCP, scripts ad-hoc.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verificar se o repositório é público
gh repo view adm01-debug/Promo_Gifts --json visibility -q '.visibility'

Repository: adm01-debug/Promo_Gifts

Length of output: 74


Remover ou redacionar o identificador do projeto Supabase do README.

O project ref doufsxqlfjyuvxuezpln está exposto publicamente no repositório. Como este repositório é público, isso representa um risco de segurança ao expor o identificador do projeto Supabase. Considere usar uma referência genérica (ex: "o banco Supabase do projeto") ou uma variável de ambiente em vez de expor o project ref diretamente na documentação.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@supabase/migrations/README.md` at line 5, The README currently exposes the
Supabase project ref "doufsxqlfjyuvxuezpln"; remove or redact that literal and
replace it with a generic reference such as "o banco Supabase do projeto" or a
placeholder/env-var reference (e.g. "${SUPABASE_PROJECT_REF}") so no real
project identifier is stored in the public docs; update the sentence in
supabase/migrations/README.md that mentions the project ref accordingly and
ensure any other occurrences of "doufsxqlfjyuvxuezpln" in that file are
similarly replaced.

Esta situação foi detectada e documentada na **Tarefa 3 do redeploy** (2026-05-12).
Detalhes completos: [`../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md`](../../docs/redeploy/REDEPLOY-T3-MIGRATIONS-AUDIT.md)

Issue de follow-up para discussão estratégica: (a ser criada na T3)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Completar referência da issue ou marcar como TODO.

A linha menciona "Issue de follow-up para discussão estratégica: (a ser criada na T3)" mas não tem um número de issue ou link. Considere adicionar o número da issue quando ela for criada, ou marcar explicitamente como TODO: para facilitar rastreamento.

📝 Sugestão de correção
-Issue de follow-up para discussão estratégica: (a ser criada na T3)
+Issue de follow-up para discussão estratégica: TODO - criar na conclusão da T3
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Issue de follow-up para discussão estratégica: (a ser criada na T3)
Issue de follow-up para discussão estratégica: TODO - criar na conclusão da T3
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@supabase/migrations/README.md` at line 31, Atualize a linha que atualmente
diz "Issue de follow-up para discussão estratégica: (a ser criada na T3)" para
incluir uma referência rastreável; ou substitua pelo marcador explícito "TODO:
criar issue de follow-up (T3)" ou insira o número/URL da issue assim que for
criada. Procure e edite o texto exato "Issue de follow-up para discussão
estratégica: (a ser criada na T3)" no README.md para garantir rastreabilidade.

@adm01-debug adm01-debug merged commit b6f97b7 into main May 12, 2026
18 of 19 checks passed
@adm01-debug adm01-debug deleted the chore/redeploy-t3-migrations-audit branch May 12, 2026 20:12
adm01-debug added a commit that referenced this pull request May 12, 2026
* chore(meta): institutionalize PR ↔ Issue cross-reference pattern

Aprendizado da sessão de redeploy: durante auditoria pós-T7, descobri que
issues criadas por PRs (#151, #153, #155) não tinham comentário automático
linkando à PR de origem, o que prejudica rastreabilidade depois de meses.

Corrigi manualmente as 3 issues existentes nesta sessão. Esta PR
institucionaliza o padrão para que NÃO ACONTEÇA DE NOVO no futuro.

Mudanças:

1. .github/PULL_REQUEST_TEMPLATE.md
   - Consolidado: existiam DOIS templates (PULL_REQUEST_TEMPLATE.md e
     pull_request_template.md em minúscula). GitHub buscava em ordem
     case-insensitive e podia usar qualquer um — bug latente.
   - Removido o duplicado em minúscula via 'git rm'.
   - Reescrito com instruções explícitas sobre keywords (Closes/Fixes/Refs/Part of)
     e padrão do projeto sobre cross-reference.

2. .github/ISSUE_TEMPLATE/bug_report.yml + feature_request.yml
   - Adicionado campo 'PR de origem' (input opcional)
   - Texto explica o padrão do projeto

3. .github/ISSUE_TEMPLATE/tracking.yml (NOVO)
   - Template específico para issues de tracking / tech-debt / discussion
   - Campo 'PR de origem' marcado como required (forma de impor o padrão)
   - DoD obrigatória, prioridade obrigatória, contexto obrigatório

4. .github/workflows/cross-reference-issues.yml (NOVO, 179 linhas)
   - Roda em pull_request e issues events
   - Quando PR menciona 'Closes #N' ou 'Refs #N':
     adiciona comentário automático na issue linkando à PR
   - Quando PR é mergeada: adiciona comentário final com merge SHA
   - Quando issue nova declara 'PR de origem #N':
     adiciona comentário na PR referenciando a issue
   - Idempotente (usa markers HTML pra evitar duplicação)
   - Permissions mínimos: pull-requests:write + issues:write

5. CONTRIBUTING.md
   - Nova seção '🔗 Cross-reference Issue ↔ PR (obrigatório)'
   - Explica os 2 fluxos (PR descobre issue / PR resolve issue)
   - Justifica o porquê (rastreabilidade pra futuras sessões)
   - Aponta para o workflow que automatiza

Benefício: o problema que peguei manualmente nesta sessão (issues #151 e #153
sem cross-reference para suas PRs #152 e #154) não vai mais acontecer porque
o bot detecta e adiciona automaticamente.

Refs #151
Refs #153
Refs #155

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(workflow): address CodeRabbit findings on cross-reference-issues.yml

CodeRabbit identificou 3 issues importantes:

1. Branch 'Issue events' não checava marker antes de comentar
   → posts duplicados em re-runs (issue.edited dispara o mesmo workflow)
   Fix: listComments primeiro, search por marker, skip se já existe

2. Dead code: const patterns = [keywordPattern, fallbackRegex]
   patterns[1] declarado mas nunca usado no loop
   Fix: removido, apenas keywordPattern fica

3. Template literals com newlines no commentBody podiam dar parsing issues
   Fix: tudo construído via array.join('\n') agora — explícito e safe

Bônus além dos achados:

- Markers diferenciados :opened vs :merged
  Antes: 1 marker por PR → comentário de merged sobrescrevia o de opened
  Agora: dois markers permitem coexistir ambos os comentários (que é o
  comportamento desejado: histórico tem evento opened E evento merged)

- error.message agora consistente em todos os catch blocks

Diff: 200 linhas (era 179) — verbosidade extra justificada pela correção
das 3 falhas + robustez adicional.

Refs CodeRabbit review em #159

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Joaquim (via Claude Code redeploy T2) <joaquim@atomicabr.com.br>
Co-authored-by: Claude <noreply@anthropic.com>
adm01-debug added a commit that referenced this pull request May 13, 2026
#164)

* chore(redeploy-fase1): sincroniza 6 migrations orfas aplicadas via MCP

Auditoria do redeploy Fase 1 (T13-T17) encontrou 8 migrations aplicadas no
banco produção via MCP `apply_migration` que nao tinham `.sql` versionado
no repo. Esta PR reduz o desync chronic flagado por #154 sincronizando
6 das 8.

Sincronizadas (6):
- 20260511200038 create_painel_cotacoes_schema (cotacoes + RLS)
- 20260512163615 onda3_tracking_e_nf (NF + tracking + eventos)
- 20260512163629 onda3_storage_recibos (bucket public flagado)
- 20260512164738 onda3_simplifica_nf_e_retry (cron retry)
- 20260512201500 t15_fix_system_health_dashboard_exposure (SQL fiel)
- 20260512201600 t16_move_backup_tables_to_schema_backup (RECONSTRUIDO
  a partir de pg_tables WHERE schemaname='backup', porque schema_migrations
  so tinha summary nao executavel)

NAO sincronizadas (2 GAPs documentados em docs/redeploy/REDEPLOY-FASE1-MIGRATION-SYNC.md):
- 20260511200056 create_painel_users (senha default em plaintext - repo
  publico - precisa decisao do sponsor sobre rotacao + estrategia de seed)
- 20260512201700 t17_fix_function_search_path_mutable_22_funcs (entrada
  em schema_migrations e' apenas summary, nao SQL valido; nao da pra
  determinar quais 22 funcoes especificas foram tocadas sem historico
  do advisor `function_search_path_mutable` pre-T17)

Refs: #154

* docs(incidents): cria stub para incident `.env` exposure 2026-04 (T18/#76)

Cria docs/INCIDENTS/2026-04-env-exposure.md como template estruturado pra
o operador preencher durante a rotacao de credenciais (issue #76). Inclui:

- Timeline com placeholders __PENDING__ pra cada etapa
- Conteudo exposto (5 sistemas: Supabase, Bitrix24 webhook, Bitrix24 OAuth,
  n8n, Evolution API)
- Checklist de rotacao por sistema (5x) com comandos de validacao smoke
- Secao "Licoes aprendidas" pra fechamento
- Tabela de verificacao automatizada (o que ja foi confirmado pela
  automacao vs o que continua pendente)

NAO fecha a issue #76 — a rotacao em si exige acesso humano aos paineis
externos. Este doc e' o registro permanente que sera preenchido durante
a rotacao.

Refs: #76

* chore(migrations): Gap A + T17 — painel users (senha sanitizada) + search_path guardrail

Gap A (20260511200056):
- Reconstrói migration create_painel_users perdida no deploy sem arquivo .sql
- 4 usuários do painel de cotações criados com senha ALEATÓRIA (bcrypt de UUID)
  — requer reset via Dashboard antes de usar (senha original nunca commitada)
- Idempotente: IF EXISTS → CONTINUE (seguro re-executar em dev/staging)

T17 (20260512210000):
- Garante search_path=public em todas as funções postgres-owned em public
- Diagnóstico 2026-05-12: 768 funções já têm search_path → DO block é no-op
- Idempotente + guardrail para ambientes futuros (dev/staging sem search_path)
- Funções supabase_admin-owned (unaccent): ignoradas intencionalmente — platform-managed

https://claude.ai/code/session_01LQ42DNYfWX7H4hvoTMoJSy

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants