18 lines
515 B
SQL
18 lines
515 B
SQL
CREATE TABLE IF NOT EXISTS audit_events (
|
|
event_id TEXT PRIMARY KEY,
|
|
user_id TEXT,
|
|
actor_device_id TEXT,
|
|
event_type TEXT NOT NULL,
|
|
subject_type TEXT NOT NULL,
|
|
subject_id TEXT,
|
|
outcome TEXT NOT NULL CHECK (outcome IN ('success', 'failure', 'denied')),
|
|
metadata_hash TEXT,
|
|
created_at INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_audit_events_user_time
|
|
ON audit_events (user_id, created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_audit_events_type_time
|
|
ON audit_events (event_type, created_at);
|