Desenvolvimento de Funções e Views Idempotentes
O diretório db/routines/ é a fonte única da verdade (SSOT) da lógica procedural de banco:
1. Idempotência Canônica
-
Funções: Utilizam
CREATE OR REPLACE FUNCTIONcom corpo em PL/pgSQL ou SQL puro. -
Segurança de Search Path: Funções declaradas como
SECURITY DEFINERdevem obrigatoriamente especificarSET search_path = extensions, public, pg_catalog(ou schemas explícitos) para prevenir ataques de sequestro de path (Search-Path Hijacking). -
Triggers: Declarados com remoção defensiva prévia: [source,sql] ---- DROP TRIGGER IF EXISTS trg_audit_instance_updated_at ON connect.instances; CREATE TRIGGER trg_audit_instance_updated_at BEFORE UPDATE ON connect.instances FOR EACH ROW EXECUTE FUNCTION connect.set_updated_at(); ----