easyai-ai-gateway/apps/api/migrations/0025_audit_logs.sql

33 lines
1.3 KiB
SQL

CREATE TABLE IF NOT EXISTS gateway_audit_logs (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
category text NOT NULL DEFAULT 'system',
action text NOT NULL,
actor_gateway_user_id uuid REFERENCES gateway_users(id) ON DELETE SET NULL,
actor_user_id text,
actor_username text,
actor_source text,
actor_roles jsonb NOT NULL DEFAULT '[]'::jsonb,
target_type text NOT NULL,
target_id text NOT NULL,
target_gateway_user_id uuid REFERENCES gateway_users(id) ON DELETE SET NULL,
target_gateway_tenant_id uuid REFERENCES gateway_tenants(id) ON DELETE SET NULL,
request_ip text,
user_agent text,
before_state jsonb NOT NULL DEFAULT '{}'::jsonb,
after_state jsonb NOT NULL DEFAULT '{}'::jsonb,
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
created_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_gateway_audit_logs_category_created
ON gateway_audit_logs(category, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_gateway_audit_logs_action_created
ON gateway_audit_logs(action, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_gateway_audit_logs_target
ON gateway_audit_logs(target_type, target_id, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_gateway_audit_logs_actor
ON gateway_audit_logs(actor_gateway_user_id, created_at DESC);