24 lines
1.0 KiB
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);
|