summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwikiapiserver2026-06-25 21:37:16 +0200
committerwikiapiserver2026-06-25 21:37:16 +0200
commita67cf297df78521d1c2dee0dc2746a8046675b56 (patch)
treee5c418e9e4cc0478137d5d2d3505187e8dff2c95
parent795fb7facf403f4e3d452d2e08ba11f98e8ee997 (diff)
downloadwikiapiserver-a67cf297df78521d1c2dee0dc2746a8046675b56.tar.gz
chore: add SQL migration files for production schema
- sql/000_widen_tokens.sql: widen token columns to TEXT, add refresh_token_created and access_token_created timestamps - sql/001_add_api_logs.sql: create api_logs table for request logging
-rw-r--r--sql/000_widen_tokens.sql10
-rw-r--r--sql/001_add_api_logs.sql14
2 files changed, 24 insertions, 0 deletions
diff --git a/sql/000_widen_tokens.sql b/sql/000_widen_tokens.sql
new file mode 100644
index 0000000..ed358b2
--- /dev/null
+++ b/sql/000_widen_tokens.sql
@@ -0,0 +1,10 @@
+-- Widen token columns and add separate timestamps.
+-- Run this before 001_add_api_logs.sql.
+
+-- Widen token columns (JWTs can exceed 255 chars).
+ALTER TABLE account MODIFY refresh_token TEXT DEFAULT NULL;
+ALTER TABLE account MODIFY access_token TEXT DEFAULT NULL;
+
+-- Add separate created timestamps if they do not exist.
+ALTER TABLE account ADD COLUMN IF NOT EXISTS refresh_token_created TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
+ALTER TABLE account ADD COLUMN IF NOT EXISTS access_token_created TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
diff --git a/sql/001_add_api_logs.sql b/sql/001_add_api_logs.sql
new file mode 100644
index 0000000..44c5622
--- /dev/null
+++ b/sql/001_add_api_logs.sql
@@ -0,0 +1,14 @@
+-- Add api_logs table for tracking article API request failures.
+-- Apply to the wikiapiserver database.
+
+CREATE TABLE IF NOT EXISTS api_logs (
+ id INT NOT NULL AUTO_INCREMENT,
+ created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
+ username VARCHAR(255) NOT NULL,
+ article_name VARCHAR(512) NOT NULL,
+ status_code INT NOT NULL,
+ response_time_ms INT NOT NULL,
+ error TEXT DEFAULT NULL,
+ request_url TEXT NOT NULL,
+ PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;