diff --git a/internal/database/migrations/023_add_audit_log.sql b/internal/database/migrations/023_add_audit_log.sql new file mode 100644 index 0000000..2cf21c6 --- /dev/null +++ b/internal/database/migrations/023_add_audit_log.sql @@ -0,0 +1,18 @@ +-- +goose Up +CREATE TABLE IF NOT EXISTS audit_log ( + id TEXT PRIMARY KEY, + occurred_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + user_id TEXT REFERENCES user(id) ON DELETE SET NULL, + action TEXT NOT NULL, + resource_type TEXT, + resource_id TEXT, + ip TEXT, + user_agent TEXT, + metadata_json TEXT +); + +CREATE INDEX IF NOT EXISTS idx_audit_log_user_id_occurred_at ON audit_log(user_id, occurred_at DESC); +CREATE INDEX IF NOT EXISTS idx_audit_log_action_occurred_at ON audit_log(action, occurred_at DESC); + +-- +goose Down +DROP TABLE IF EXISTS audit_log;