Add configurable beta test plans and staged rollout
This commit is contained in:
@@ -129,6 +129,54 @@ CREATE TABLE IF NOT EXISTS beta_servers (
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_beta_servers_stage ON beta_servers(stage);
|
||||
|
||||
-- Immutable test configuration, durable attempts and append-only evidence.
|
||||
-- Keeping test outcome separate preserves artifact holds until explicit closure.
|
||||
CREATE TABLE IF NOT EXISTS beta_test_plans (
|
||||
beta_id INTEGER PRIMARY KEY REFERENCES betas(id) ON DELETE CASCADE,
|
||||
plan TEXT NOT NULL,
|
||||
outcome TEXT NOT NULL DEFAULT 'active',
|
||||
reason TEXT
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS beta_test_runs (
|
||||
id TEXT PRIMARY KEY,
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
server TEXT NOT NULL REFERENCES servers(name),
|
||||
phase INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL,
|
||||
observing_at TEXT,
|
||||
retired_at TEXT,
|
||||
metrics TEXT NOT NULL DEFAULT '{}',
|
||||
cursors TEXT NOT NULL DEFAULT '{}'
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS beta_test_coverage (
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
server TEXT NOT NULL,
|
||||
game TEXT,
|
||||
map TEXT,
|
||||
PRIMARY KEY (beta_id, server)
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_beta_test_current_run ON beta_test_runs(beta_id, server) WHERE retired_at IS NULL;
|
||||
CREATE TABLE IF NOT EXISTS beta_test_evidence (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
run_id TEXT NOT NULL REFERENCES beta_test_runs(id) ON DELETE CASCADE,
|
||||
event_id TEXT NOT NULL,
|
||||
received_at TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
payload TEXT NOT NULL,
|
||||
UNIQUE(run_id, event_id)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_beta_evidence_run ON beta_test_evidence(run_id, id);
|
||||
CREATE TABLE IF NOT EXISTS beta_file_changes (
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
server TEXT NOT NULL,
|
||||
rel_path TEXT NOT NULL,
|
||||
PRIMARY KEY (beta_id, server, rel_path)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS beta_test_presets (
|
||||
name TEXT PRIMARY KEY,
|
||||
plan TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Many-to-many: which scripts (and pinned versions) are bundled into a beta.
|
||||
-- Replaces the deprecated betas.script_id / betas.script_version_id columns.
|
||||
CREATE TABLE IF NOT EXISTS beta_scripts (
|
||||
|
||||
Reference in New Issue
Block a user