DOCS: architecture-next update + opus frontend/instance/review prompts
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 2026-07-31 — Сессия (v1.1.57 → ...)
|
||||
# 2026-07-31 — Сессия (v1.1.57 → v1.2.1)
|
||||
|
||||
## Контекст
|
||||
Обсуждение архитектуры: унификация ручного и сценарного режимов, гибкие ссылки на инстансы, новый UI редактора сценариев.
|
||||
@@ -69,3 +69,68 @@
|
||||
- E17. lock_check оставить
|
||||
- E18. _op_results не в scope
|
||||
- E19. Порядок: executor → формат → api_test/scenario → UI
|
||||
|
||||
### Финальный план (Опус, утверждён)
|
||||
|
||||
Сохранён в `DOCS/opus-plan-2026-07-31.md`. Ветка: `opus-architecture-2026-07-31`.
|
||||
|
||||
**4 фазы, 13 шагов:**
|
||||
|
||||
**Фаза 1 — Общие модули:**
|
||||
- `api/utils.py` (NEW) — find_uid(), uid_from_location()
|
||||
- `operations/poll.py` (NEW) — poll_until_done()
|
||||
- `operations/executor.py` (NEW) — execute_operation() до /run, без поллинга
|
||||
|
||||
**Фаза 2 — Формат шагов:**
|
||||
- `routes/api_scenario_defs.py` — _validate_steps с output/instance_ref/instance_uid
|
||||
- `operations/scenario.py` — резолвинг instance_uid > instance_ref > service_id
|
||||
|
||||
**Фаза 3 — Миграция вызывающих:**
|
||||
- `routes/api_test.py` — CMDB delete early return, остальное через executor
|
||||
- `operations/scenario.py` — через executor + poll_until_done
|
||||
- `db/init_db.py` — startup cleanup зависших scenario_runs
|
||||
|
||||
**Фаза 4 — UI редактора:**
|
||||
- `static/js/params-render.js` (NEW) — общий рендер параметров
|
||||
- `static/js/operations.js` — использовать params-render.js
|
||||
- `static/js/scenario-form.js` — модальный редактор
|
||||
- `templates/index.html` — разметка модала
|
||||
|
||||
### CMDB delete
|
||||
Жёсткое удаление через `DELETE cmdb-api.deck.nubes.ru/instances/{uid}` (без авторизации).
|
||||
Нужно для недосозданных инстансов (not created). Остаётся в api_test.py, не в executor.
|
||||
Добавлено после переписки с Георгием Родионовым 29.07.2026.
|
||||
|
||||
## Реализация (v1.2.0 — v1.2.1)
|
||||
|
||||
### v1.2.0 — Unified executor + flexible refs
|
||||
**Новые файлы:** api/utils.py, operations/poll.py, operations/executor.py, static/js/params-render.js
|
||||
**Изменено:** api_test.py (через executor + poll), scenario.py (output/ref/bindings), api_scenario_defs.py (_validate_steps), init_db.py (cleanup), operations.js (→ params-render), index.html (load order)
|
||||
- Дублирование CREATE-флоу устранено: ручной и сценарный → один executor
|
||||
- instance_uid > instance_ref > service_id (гибкие ссылки)
|
||||
- Общий поллинг poll_until_done()
|
||||
- +254 / −277 строк (меньше кода)
|
||||
|
||||
### v1.2.1 — Opus review fixes
|
||||
**Критическое:** tracker_add внутрь executor (защита от сирот, A3)
|
||||
**Исправлено:** labelCls в renderMapFixedRow, descr с контекстом, порядок скриптов
|
||||
**5 файлов:** executor.py, api_test.py, scenario.py, params-render.js, app.py
|
||||
|
||||
### Проверка в поде (v1.2.1)
|
||||
- Все 4 новых файла на месте
|
||||
- 11 JS → 200, порядок правильный
|
||||
- Schema OK, seed OK, API отвечает
|
||||
|
||||
## Что дальше
|
||||
|
||||
**Фаза 4 — модальный редактор сценариев (✅ v1.2.2-v1.2.4):**
|
||||
- ✅ Модал с дропдаунами сервисов/операций
|
||||
- ✅ output/instance_ref с облачными инстансами
|
||||
- ✅ Кнопки CRUD крупнее, справка «📖 Как заполнять»
|
||||
|
||||
**Фаза 5 — редактор параметров (план от Опус, НЕ РЕАЛИЗОВАНО):**
|
||||
- Заменить ручной key=value на автоподгрузку через params-render.js
|
||||
- Параметры в свёрнутом `<details>` внутри карточки шага
|
||||
- Хранение: символические имена в БД, обратный маппинг numeric→name при сохранении
|
||||
- Снапшот параметров перед ре-рендером (защита от потери правок)
|
||||
- 3 развилки решены: без ссылок на output в параметрах, всегда шаблон, полный сброс при смене операции
|
||||
|
||||
Reference in New Issue
Block a user