From 175761b4c103488e5f46fbdb3897a032be754b2c Mon Sep 17 00:00:00 2001 From: adm01-debug Date: Tue, 19 May 2026 12:39:48 -0300 Subject: [PATCH] fix(migrations): remove PII do migration ad-hoc + idempotente MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A migration original (commitada em 19/mai 11:22 pelo Lovable) continha um DELETE com email hardcoded do PO + filtro de 30min — era query ad-hoc para destravar rate limit de login, mas virou migration permanente. Problemas: 1. PII (email do PO) exposto no historico publico do repositorio 2. Codigo de uso unico virou parte do schema (toda vez que rodar supabase db reset, vai executar de novo, sem proposito) Fix: substituir conteudo por cleanup generico (login_attempts falhados com mais de 30 dias) — util de verdade, idempotente, sem PII. Observacao: caso a migration original ja tenha sido aplicada no banco em uso (pqp Lovable), o Supabase NAO re-aplica migrations com mesmo timestamp/nome. Esta sanitização afeta apenas execucoes futuras (supabase db reset, novos ambientes, F3 transferencia). --- ...4_8e77769d-4e20-479b-8146-03607b31342a.sql | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/supabase/migrations/20260519112214_8e77769d-4e20-479b-8146-03607b31342a.sql b/supabase/migrations/20260519112214_8e77769d-4e20-479b-8146-03607b31342a.sql index f6e8475fb..b25f51fa8 100644 --- a/supabase/migrations/20260519112214_8e77769d-4e20-479b-8146-03607b31342a.sql +++ b/supabase/migrations/20260519112214_8e77769d-4e20-479b-8146-03607b31342a.sql @@ -1 +1,28 @@ -DELETE FROM public.login_attempts WHERE email='adm01@promobrindes.com.br' AND success=false AND created_at > now() - interval '30 minutes'; \ No newline at end of file +-- ============================================================================ +-- SANITIZADA EM 19/MAI/2026 — REMOVE PII E AMPLIA SEMÂNTICA +-- ============================================================================ +-- +-- ⚠️ HISTÓRICO DESTE ARQUIVO: +-- Originalmente continha um DELETE ad-hoc com email específico de um usuario +-- (PII) hardcoded — gerado pelo Lovable para destravar tentativas de login +-- bloqueadas por rate limit. Esse tipo de comando NUNCA deveria ter sido +-- commitado como migration permanente. Foi sanitizado nesta mesma data. +-- +-- O QUE ESTA MIGRATION FAZ AGORA: +-- Limpa tentativas de login FALHADAS antigas (>30 dias) de TODA a tabela +-- login_attempts. Sem hardcoded de usuário. Sem PII no histórico do git. +-- +-- IDEMPOTENTE: na 2ª execução, retorna 0 rows (todos já apagados). +-- ============================================================================ + +DELETE FROM public.login_attempts +WHERE success = false + AND created_at < now() - interval '30 days'; + +DO $$ +DECLARE + _deleted integer; +BEGIN + GET DIAGNOSTICS _deleted = ROW_COUNT; + RAISE NOTICE '[cleanup_login_attempts] Removed % stale failed login attempts (>30 days old)', _deleted; +END $$;