gcx/backend/migrations/029_create_audit_logs.sql

24 lines
1.0 KiB
SQL

-- 029: Admin audit logs (compliance-service admin actions)
-- Complements 022_create_audit_logs.sql with the admin-focused schema.
-- If 022 already created the audit_logs table, run ALTER or skip. This DDL is for fresh installs.
CREATE TABLE IF NOT EXISTS audit_logs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
admin_id UUID NOT NULL REFERENCES users(id),
admin_name VARCHAR(200) NOT NULL,
action VARCHAR(100) NOT NULL,
resource VARCHAR(100) NOT NULL,
resource_id VARCHAR(100),
ip_address VARCHAR(45),
result VARCHAR(20) NOT NULL DEFAULT 'success',
details JSONB,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
version INT NOT NULL DEFAULT 1
);
CREATE INDEX IF NOT EXISTS idx_audit_logs_admin_id ON audit_logs(admin_id);
CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action);
CREATE INDEX IF NOT EXISTS idx_audit_logs_resource ON audit_logs(resource, resource_id);
CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at DESC);