From 4859bf1af4631c9b18b2b56e7de0a9e19d0b384a Mon Sep 17 00:00:00 2001 From: mnoah1 Date: Mon, 31 Aug 2026 22:11:43 +0000 Subject: [PATCH 1/2] feat(stovepipe): add request log table --- .../storage/mysql/schema/request_log.sql | 16 ++++++++++++++++ .../extension/storage/mysql/storage_test.go | 1 + 2 files changed, 17 insertions(+) create mode 100644 stovepipe/extension/storage/mysql/schema/request_log.sql diff --git a/stovepipe/extension/storage/mysql/schema/request_log.sql b/stovepipe/extension/storage/mysql/schema/request_log.sql new file mode 100644 index 000000000..5e26cb2ab --- /dev/null +++ b/stovepipe/extension/storage/mysql/schema/request_log.sql @@ -0,0 +1,16 @@ +-- request_log retains one append-only row per logical request occurrence. Exactly one of +-- state and event is populated; core lifecycle fields remain columns, while occurrence-specific +-- context and optional diagnostics share metadata. +CREATE TABLE IF NOT EXISTS request_log ( + queue VARCHAR(255) NOT NULL, + request_id VARCHAR(255) NOT NULL, + log_id VARCHAR(255) NOT NULL, + timestamp_ms BIGINT NOT NULL, + state VARCHAR(64) NOT NULL, + event VARCHAR(64) NOT NULL, + request_version INT NOT NULL, + outcome_reason VARCHAR(64) NOT NULL, + metadata JSON NOT NULL, + PRIMARY KEY (queue, request_id, log_id), + KEY idx_request_log_order (queue, request_id, timestamp_ms, log_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/test/integration/stovepipe/extension/storage/mysql/storage_test.go b/test/integration/stovepipe/extension/storage/mysql/storage_test.go index a2f312cd5..8915f850c 100644 --- a/test/integration/stovepipe/extension/storage/mysql/storage_test.go +++ b/test/integration/stovepipe/extension/storage/mysql/storage_test.go @@ -100,6 +100,7 @@ func resetStorage(t *testing.T, db *sql.DB) { t.Helper() for _, statement := range []string{ + "TRUNCATE TABLE request_history", "TRUNCATE TABLE request_uri", "TRUNCATE TABLE request", "TRUNCATE TABLE build", From 2d019cb44776b880cef1c4a957f3139f1ea81520 Mon Sep 17 00:00:00 2001 From: mnoah1 Date: Mon, 31 Aug 2026 16:19:56 +0000 Subject: [PATCH 2/2] test(stovepipe): reset the request log table --- .../stovepipe/extension/storage/mysql/storage_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/stovepipe/extension/storage/mysql/storage_test.go b/test/integration/stovepipe/extension/storage/mysql/storage_test.go index 8915f850c..184483b9b 100644 --- a/test/integration/stovepipe/extension/storage/mysql/storage_test.go +++ b/test/integration/stovepipe/extension/storage/mysql/storage_test.go @@ -100,7 +100,7 @@ func resetStorage(t *testing.T, db *sql.DB) { t.Helper() for _, statement := range []string{ - "TRUNCATE TABLE request_history", + "TRUNCATE TABLE request_log", "TRUNCATE TABLE request_uri", "TRUNCATE TABLE request", "TRUNCATE TABLE build",