feat: add operations mutation api for alpine ui

This commit is contained in:
a.tolmachev
2026-03-30 00:42:41 +03:00
parent 4721bc1948
commit 23ca2cda59
14 changed files with 907 additions and 56 deletions
+13 -10
View File
@@ -52,13 +52,15 @@ UI-файлы:
- `GET /api/admin/workspaces/{workspace_id}/operations`
- `GET /api/admin/workspaces/{workspace_id}/agents`
- `GET /api/admin/workspaces/{workspace_id}/usage`
Что еще не хватает:
- `PATCH /api/admin/workspaces/{workspace_id}/operations/{operation_id}`
- `DELETE /api/admin/workspaces/{workspace_id}/operations/{operation_id}`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive`
- server-side shape для list response с готовыми agent bindings и компактными summary fields
Что еще не хватает:
- frontend data adapter, который заменит mock merge на реальные `items/page/page_size/total`;
- wiring server-side filters `protocol/category/agent/status/search`;
- переключение карточек верхних метрик с seeded summary на реальный usage payload.
Что убрать из UI после интеграции:
@@ -69,8 +71,8 @@ UI-файлы:
Простой итог:
- эту страницу можно интегрировать первой;
- базовые list/fetch данные backend уже умеет;
- надо только добить update/delete/archive и перестать хранить изменения в браузере.
- backend уже отдает server-side category, usage summary и agent refs;
- дальше нужно убрать `localStorage`-состояние и посадить UI на реальные list/detail/mutation вызовы.
### 4.2. Wizard
@@ -96,8 +98,10 @@ UI-файлы:
- `POST /api/admin/workspaces/{workspace_id}/operations`
- `GET /api/admin/workspaces/{workspace_id}/operations/{operation_id}`
- `PATCH /api/admin/workspaces/{workspace_id}/operations/{operation_id}`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions`
- `GET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/versions/{version}`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/test-runs`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/input-json`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/samples/output-json`
@@ -110,9 +114,8 @@ UI-файлы:
Что еще не хватает:
- `PATCH /api/admin/workspaces/{workspace_id}/operations/{operation_id}` для edit mode
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/archive`
- единая DTO-форма для create/edit, чтобы UI не собирал разные payload вручную по шагам
- frontend adapter поверх `OperationDetail` и `OperationVersionDocument`, чтобы wizard перестал хранить edit-state в браузере;
- финальное выравнивание step payload c canonical DTO, чтобы create/edit/export/import использовали одну модель на фронте.
Что убрать из UI после интеграции:
@@ -124,7 +127,7 @@ UI-файлы:
- wizard почти готов для реального backend;
- это основной экран второй очереди после catalog;
- ключевой разрыв сейчас только в полноценном edit/update контракте.
- backend уже закрывает create/edit/archive/test/import/export, дальше нужен только аккуратный frontend adapter.
### 4.3. Agents