v1.1.46: phase2 — scenario runner MVP (YAML config, DB schema, API endpoints, UI section)

This commit is contained in:
2026-07-30 13:48:34 +04:00
parent 0ab6b3a89e
commit 7eeb1131b3
7 changed files with 458 additions and 1 deletions
+25
View File
@@ -56,6 +56,30 @@ MIGRATION_SQL = """
ALTER TABLE runs ADD COLUMN IF NOT EXISTS op_uid VARCHAR(64);
ALTER TABLE runs ADD COLUMN IF NOT EXISTS user_email VARCHAR(128);
ALTER TABLE runs ADD COLUMN IF NOT EXISTS app_version VARCHAR(16);
ALTER TABLE runs ADD COLUMN IF NOT EXISTS scenario_run_id INTEGER;
ALTER TABLE runs ADD COLUMN IF NOT EXISTS step_number INTEGER;
"""
# Таблица сценариев — один запуск = одна строка
SCENARIO_RUNS_SQL = """
CREATE TABLE IF NOT EXISTS scenario_runs (
id SERIAL PRIMARY KEY,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
client_id VARCHAR(64) NOT NULL,
stand VARCHAR(16) NOT NULL,
user_email VARCHAR(128),
scenario_name VARCHAR(200) NOT NULL,
status VARCHAR(16) NOT NULL DEFAULT 'RUNNING',
current_step INTEGER NOT NULL DEFAULT 0,
total_steps INTEGER NOT NULL,
instance_bindings JSONB DEFAULT '{}',
duration_sec DOUBLE PRECISION,
error_log TEXT,
app_version VARCHAR(16)
);
CREATE INDEX IF NOT EXISTS idx_scenario_runs_client_stand
ON scenario_runs (client_id, stand, created_at DESC);
"""
@@ -74,6 +98,7 @@ def init_db():
cur = conn.cursor()
cur.execute(SCHEMA_SQL)
cur.execute(MIGRATION_SQL)
cur.execute(SCENARIO_RUNS_SQL)
conn.commit()
cur.close()
print("[DB] Schema initialized", flush=True)