chore: seminarhof customer project
This commit is contained in:
32
db/sqlite/0011-audit-canonical.sql
Normal file
32
db/sqlite/0011-audit-canonical.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Tear out the hand-rolled `audit_log` domain-history table and realign the
|
||||
-- framework `audit` sink to the canonical pikku AuditEvent shape (audit_id PK,
|
||||
-- actor_user_id, data JSON). Domain row-change history now flows through the
|
||||
-- pikku audit service — KyselyAuditService locally, a platform queue sink in
|
||||
-- prod — persisted here and read back by get-booking-audit-log via metadata →
|
||||
-- data. The old `audit` table had a drifted shape and was never written to.
|
||||
DROP TABLE IF EXISTS audit_log;
|
||||
DROP TABLE IF EXISTS audit;
|
||||
|
||||
CREATE TABLE 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;
|
||||
Reference in New Issue
Block a user