trying to rework database migrations

This commit is contained in:
2026-02-05 11:42:04 -06:00
parent 3b14c65998
commit 343488b3eb
83 changed files with 5793 additions and 876 deletions

View File

@@ -0,0 +1,58 @@
-- Migration: Add rule_ref and trigger_ref to execution notification payload
-- This includes enforcement information in real-time notifications to avoid additional API calls
-- Drop the existing trigger first
DROP TRIGGER IF EXISTS notify_execution_change ON execution;
-- Replace the notification function to include enforcement details
CREATE OR REPLACE FUNCTION notify_execution_change()
RETURNS TRIGGER AS $$
DECLARE
payload JSONB;
enforcement_rule_ref TEXT;
enforcement_trigger_ref TEXT;
BEGIN
-- Lookup enforcement details if this execution is linked to an enforcement
IF NEW.enforcement IS NOT NULL THEN
SELECT rule_ref, trigger_ref
INTO enforcement_rule_ref, enforcement_trigger_ref
FROM enforcement
WHERE id = NEW.enforcement;
END IF;
-- Build JSON payload with execution details including rule/trigger info
payload := jsonb_build_object(
'entity_type', 'execution',
'entity_id', NEW.id,
'timestamp', NOW(),
'data', jsonb_build_object(
'id', NEW.id,
'status', NEW.status,
'action_id', NEW.action,
'action_ref', NEW.action_ref,
'enforcement', NEW.enforcement,
'rule_ref', enforcement_rule_ref,
'trigger_ref', enforcement_trigger_ref,
'parent', NEW.parent,
'result', NEW.result,
'created', NEW.created,
'updated', NEW.updated
)
);
-- Send notification to the attune_notifications channel
PERFORM pg_notify('attune_notifications', payload::text);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- Recreate the trigger
CREATE TRIGGER notify_execution_change
AFTER INSERT OR UPDATE ON execution
FOR EACH ROW
EXECUTE FUNCTION notify_execution_change();
-- Update comment
COMMENT ON FUNCTION notify_execution_change() IS
'Sends PostgreSQL NOTIFY for execution changes with enforcement details (rule_ref, trigger_ref) to enable real-time SSE streaming without additional API calls';