v1.1.55: split large files + CRUD scenario editor

Backend (5→7 files):
- api_test.py: 622→479, terraform functions → operations/terraform.py (142)
- api_scenario.py: 241→split into run (153) + defs (108) with _validate_steps()
- db/scenario_defs.py: +client_id, stand, is_seed in list_definitions

Frontend (1→10 files):
- app.js: 554→16 (loader), split into:
  utils.js (45), instances.js (89), operations.js (249),
  history.js (35), scenario-list.js (90)
- New CRUD: scenario-form.js (128), create (25), edit (12), delete (13)

Max file size: JS 249, PY 479
This commit is contained in:
2026-07-30 22:02:22 +04:00
parent 189a2779d6
commit a96658b9b5
18 changed files with 1126 additions and 706 deletions
+3 -1
View File
@@ -21,7 +21,8 @@ def list_definitions(client_id, stand):
try:
cur = conn.cursor()
cur.execute("""
SELECT id, name, steps, version, is_active, created_at, updated_at
SELECT id, name, steps, version, is_active, created_at, updated_at,
client_id, stand
FROM scenario_definitions
WHERE is_active = TRUE
AND ((client_id = %s AND stand = %s) OR (client_id = '' AND stand = ''))
@@ -34,6 +35,7 @@ def list_definitions(client_id, stand):
d = dict(zip(cols, r))
d["created_at"] = d["created_at"].isoformat() if d["created_at"] else None
d["updated_at"] = d["updated_at"].isoformat() if d["updated_at"] else None
d["is_seed"] = (d.get("client_id") == "" and d.get("stand") == "")
result.append(d)
return result
except Exception as e: