From c1c5892364d1bb19d5ea741cd6a3d65f396a6fa7 Mon Sep 17 00:00:00 2001 From: Adrian Flores Cortes Date: Tue, 3 Feb 2026 17:18:07 -0600 Subject: [PATCH] fix(ddl): Add storage triggers and fix whatsapp RLS pattern - Add 06-triggers.sql with trg_files_updated_at and trg_usage_updated_at for storage.files and storage.usage tables - Fix RLS policies in whatsapp schema to use current_setting with true parameter to avoid errors when app.current_tenant_id is not set Co-Authored-By: Claude Opus 4.5 --- ddl/schemas/storage/06-triggers.sql | 21 +++++++++++++++++++ .../whatsapp/tables/01-whatsapp-configs.sql | 2 +- .../whatsapp/tables/02-whatsapp-messages.sql | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 ddl/schemas/storage/06-triggers.sql diff --git a/ddl/schemas/storage/06-triggers.sql b/ddl/schemas/storage/06-triggers.sql new file mode 100644 index 0000000..d4c6293 --- /dev/null +++ b/ddl/schemas/storage/06-triggers.sql @@ -0,0 +1,21 @@ +-- ============================================================================= +-- TRIGGERS PARA SCHEMA STORAGE +-- ============================================================================= +-- Actualiza automaticamente la columna updated_at en las tablas del schema storage +-- Usa la funcion publica set_updated_at() definida en 03-functions.sql + +-- Trigger para storage.files +CREATE TRIGGER trg_files_updated_at + BEFORE UPDATE ON storage.files + FOR EACH ROW + EXECUTE FUNCTION public.set_updated_at(); + +-- Trigger para storage.usage +CREATE TRIGGER trg_usage_updated_at + BEFORE UPDATE ON storage.usage + FOR EACH ROW + EXECUTE FUNCTION public.set_updated_at(); + +-- Comments +COMMENT ON TRIGGER trg_files_updated_at ON storage.files IS 'Auto-update updated_at timestamp on file record changes'; +COMMENT ON TRIGGER trg_usage_updated_at ON storage.usage IS 'Auto-update updated_at timestamp on usage record changes'; diff --git a/ddl/schemas/whatsapp/tables/01-whatsapp-configs.sql b/ddl/schemas/whatsapp/tables/01-whatsapp-configs.sql index 12b7047..65dae25 100644 --- a/ddl/schemas/whatsapp/tables/01-whatsapp-configs.sql +++ b/ddl/schemas/whatsapp/tables/01-whatsapp-configs.sql @@ -47,7 +47,7 @@ CREATE INDEX idx_whatsapp_configs_active ON whatsapp.configs(is_active) WHERE is ALTER TABLE whatsapp.configs ENABLE ROW LEVEL SECURITY; CREATE POLICY whatsapp_configs_tenant_isolation ON whatsapp.configs - USING (tenant_id = current_setting('app.current_tenant_id')::uuid); + USING (tenant_id = current_setting('app.current_tenant_id', true)::uuid); -- Trigger for updated_at CREATE TRIGGER update_whatsapp_configs_updated_at diff --git a/ddl/schemas/whatsapp/tables/02-whatsapp-messages.sql b/ddl/schemas/whatsapp/tables/02-whatsapp-messages.sql index 4fddef9..9fe2e95 100644 --- a/ddl/schemas/whatsapp/tables/02-whatsapp-messages.sql +++ b/ddl/schemas/whatsapp/tables/02-whatsapp-messages.sql @@ -59,7 +59,7 @@ CREATE INDEX idx_whatsapp_messages_direction ON whatsapp.messages(direction); ALTER TABLE whatsapp.messages ENABLE ROW LEVEL SECURITY; CREATE POLICY whatsapp_messages_tenant_isolation ON whatsapp.messages - USING (tenant_id = current_setting('app.current_tenant_id')::uuid); + USING (tenant_id = current_setting('app.current_tenant_id', true)::uuid); -- Trigger for updated_at CREATE TRIGGER update_whatsapp_messages_updated_at