35 lines
1.1 KiB
SQL
35 lines
1.1 KiB
SQL
-- ==========================================
|
|
-- Chat Switchboard — 020 Multi-Replica HA
|
|
-- ==========================================
|
|
-- Shared state tables for multi-replica operation.
|
|
-- v0.32.0: ws_tickets, rate_limit_counters.
|
|
-- SQLite parity — functional for single-process test coverage.
|
|
-- ==========================================
|
|
|
|
-- =========================================
|
|
-- WEBSOCKET TICKETS
|
|
-- =========================================
|
|
|
|
CREATE TABLE IF NOT EXISTS ws_tickets (
|
|
id TEXT PRIMARY KEY,
|
|
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
expires_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_ws_tickets_expires
|
|
ON ws_tickets (expires_at);
|
|
|
|
-- =========================================
|
|
-- RATE LIMIT COUNTERS
|
|
-- =========================================
|
|
|
|
CREATE TABLE IF NOT EXISTS rate_limit_counters (
|
|
key TEXT NOT NULL,
|
|
window_start TEXT NOT NULL,
|
|
tokens REAL NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (key, window_start)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_rate_limit_counters_window
|
|
ON rate_limit_counters (window_start);
|