naeel
|
58b823a260
|
v1.2.19: fixes from Codex audit — XSS in params, JS injection in onclick, scenario polling timeout, has_target validation, tracker atomic update
|
2026-07-31 17:58:57 +04:00 |
|
naeel
|
0783319fd1
|
Рефакторинг API-слоя, операций и БД
|
2026-07-31 17:13:54 +04:00 |
|
naeel
|
82a3be2067
|
v1.2.16: save full instance metadata (instance_meta JSONB)
init_db.py: ALTER TABLE runs ADD instance_meta JSONB
save_run.py: +instance_meta parameter → JSONB insert
api_test.py: _finish_op fetches GET /instances/{uid} after poll, saves all fields
scenario.py: run_scenario same — per-step instance metadata
Excludes: instanceUid, displayName, svc, serviceId, explainedStatus (already in other columns)
|
2026-07-31 14:19:29 +04:00 |
|
naeel
|
353e07bfa8
|
v1.2.1: fix tracker_add in executor + labelCls + descr context + script order
Opus review fixes:
- executor.py: tracker_add inside executor after instance_uid, before params/run (A3, orphan protection)
- executor.py: descr parameter (version/context instead of hardcoded)
- api_test.py: pass client_id/stand/descr, remove duplicate tracker_add
- scenario.py: pass client_id/stand/descr with scenario context
- params-render.js: fix labelCls ReferenceError in renderMapFixedRow (pre-existing bug)
- index.html: params-render.js already before operations.js (verified)
|
2026-07-31 09:45:05 +04:00 |
|
naeel
|
91e97f6f75
|
v1.2.0: unified executor + flexible instance refs + params-render.js
Phase 1 — New modules:
- api/utils.py: find_uid(), uid_from_location() (replaces 2 duplicates)
- operations/poll.py: poll_until_done() (shared sync/async polling)
- operations/executor.py: execute_operation() (single CREATE/non-CREATE flow)
Phase 2 — Format + validation:
- routes/api_scenario_defs.py: _validate_steps with output/instance_ref/instance_uid
- operations/scenario.py: resolve instance_uid > instance_ref > service_id,
use executor + poll_until_done, persist instance_bindings
Phase 3 — Migration:
- routes/api_test.py: create/non-create through executor, _finish_op through poll_until_done
- db/init_db.py: startup cleanup of stuck scenario_runs (>1h)
Phase 4 — UI shared module:
- static/js/params-render.js: renderParamRow, renderMapFixedRow, collectParams
- static/js/operations.js: use params-render.js (remove duplicates)
- templates/index.html: include params-render.js
- app.py: bump 1.1.57 → 1.2.0
|
2026-07-31 08:55:06 +04:00 |
|
naeel
|
a96658b9b5
|
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
|
2026-07-30 22:02:22 +04:00 |
|
naeel
|
7354d9c125
|
v1.1.52: fix scenario create (drop svcOperationId) + http_client _status debug
|
2026-07-30 15:51:22 +04:00 |
|
naeel
|
983b387708
|
v1.1.50: scenario_definitions DB+CRUD, seed, runner from DB, 409 lock, UI definitions, drop config.yaml scenarios
|
2026-07-30 15:06:05 +04:00 |
|
naeel
|
7f69c916ec
|
v1.1.48: fix 4 scenario bugs — save_run: scenario_run_id+step_number, run_id before thread (202), TIMEOUT op_data init, RUNNING before API call, GET /run/<id>
|
2026-07-30 14:08:29 +04:00 |
|
naeel
|
566a6da8d9
|
v1.1.47: fix scenario UUID extraction — _find_uid + _uid_from_location fallback
|
2026-07-30 13:57:34 +04:00 |
|
naeel
|
7eeb1131b3
|
v1.1.46: phase2 — scenario runner MVP (YAML config, DB schema, API endpoints, UI section)
|
2026-07-30 13:48:34 +04:00 |
|
naeel
|
4dcd61f25d
|
v1.1.39: populate empty valueList from state.out + normalize value_list
|
2026-07-30 08:47:13 +04:00 |
|
naeel
|
8f802c3a17
|
v1.1.13: service highlight, dynamic btn text, defaultValue in dataDescriptor
|
2026-07-29 09:05:23 +04:00 |
|
naeel
|
659681dbf6
|
v1.1.11: normalize valueList CSV→array for nested dataDescriptor params
|
2026-07-28 13:56:58 +04:00 |
|
naeel
|
9090a4a9c3
|
v1.1.3: refSvcId — select dropdown from API for cross-service params
|
2026-07-28 11:42:58 +04:00 |
|
naeel
|
0b810fdee1
|
v1.1.0: per-stand services list from Terraform — services_dev.txt + services_test.txt
|
2026-07-28 11:15:19 +04:00 |
|
naeel
|
1cc3f6eb7e
|
v1.0.89: detailed code comments — all Python files + index.html architecture overview
|
2026-07-27 22:02:51 +04:00 |
|
naeel
|
40008db1bd
|
v1.0.86: per-user per-stand tracker — /tmp/instances-{client_id}-{stand}.json, no _INITIAL
|
2026-07-27 17:37:12 +04:00 |
|
naeel
|
a7b8cd30b7
|
v1.0.81: get_params.py — current values from GET /instances/{uid} state.params
|
2026-07-27 16:48:42 +04:00 |
|
naeel
|
120c34ffcf
|
v1.0.65: cloud pagination fix for creating status
|
2026-07-27 11:42:41 +04:00 |
|
naeel
|
338c080254
|
v1.0.54: fix 4 audit bugs — _client auto-detect, _find_uid by key, tracker_add before params, flock LOCK_NB
|
2026-07-27 10:18:49 +04:00 |
|
naeel
|
f546f41f21
|
v1.0.53: file-based tracker with fcntl.flock (multi-worker gunicorn fix)
|
2026-07-27 10:08:40 +04:00 |
|
naeel
|
7f6284bb46
|
v1.0.49: in-memory tracker (no file IO); traceback on tracker error; refreshInstances adds new items; no selectService on OK
|
2026-07-27 09:26:39 +04:00 |
|
naeel
|
7fdcc005b5
|
v1.0.47: fix displayName capture before form clear; fix tracker_add race; add autotest-1 to tracker
|
2026-07-27 08:44:19 +04:00 |
|
naeel
|
8307308a0a
|
Tracker: /tmp/instances.json survives redeploy, 3 dummy seeds, v1.0.37
|
2026-07-25 08:49:26 +04:00 |
|
naeel
|
560bd62fce
|
Track created instances, show only ours in UI, v1.0.36
|
2026-07-24 16:51:08 +04:00 |
|
naeel
|
2acb6aa8c9
|
Fix: 2-step create + run, paginated get_instances, v1.0.22
|
2026-07-24 09:34:18 +04:00 |
|
naeel
|
6b098509e9
|
Add services dropdown with operations panel
|
2026-07-23 11:42:30 +04:00 |
|
naeel
|
51f4508c1d
|
Add modules: api, operations, routes with org display
|
2026-07-23 11:28:11 +04:00 |
|
naeel
|
6cb8c05f05
|
Strip to minimal: single route, static HTML, no logic
|
2026-07-23 11:10:33 +04:00 |
|
naeel
|
420d09e6b5
|
Restructure: site/ with modular code, matching Nubes Flask convention
|
2026-07-23 10:48:14 +04:00 |
|