27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- Audit log. Fabric's audit service flushes events here via a per-stage
|
|
-- CF Queue. Add this table if you want audit capture; remove it (and skip
|
|
-- this migration) if your project has no audit requirements.
|
|
CREATE TABLE IF NOT EXISTS audit (
|
|
audit_id TEXT NOT NULL PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
occurred_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
type TEXT NOT NULL,
|
|
source TEXT NOT NULL DEFAULT 'auto',
|
|
outcome TEXT,
|
|
function_id TEXT,
|
|
wire_type TEXT,
|
|
trace_id TEXT,
|
|
transaction_id TEXT,
|
|
query_id TEXT,
|
|
actor_user_id TEXT,
|
|
actor_org_id TEXT,
|
|
tables TEXT, -- JSON array of table names touched
|
|
changed_cols TEXT, -- JSON array of changed column names
|
|
event TEXT, -- custom event label
|
|
old TEXT, -- JSON: previous values
|
|
data TEXT -- JSON: new values / event payload
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_audit_occurred_at ON audit (occurred_at);
|
|
CREATE INDEX IF NOT EXISTS idx_audit_actor ON audit (actor_user_id) WHERE actor_user_id IS NOT NULL;
|
|
CREATE INDEX IF NOT EXISTS idx_audit_function ON audit (function_id) WHERE function_id IS NOT NULL;
|