diff --git a/HISTORY/2026-07-24-har-analysis.md b/HISTORY/2026-07-24-har-analysis.md new file mode 100644 index 0000000..afc46dd --- /dev/null +++ b/HISTORY/2026-07-24-har-analysis.md @@ -0,0 +1,62 @@ +# 2026-07-24 — HAR-анализ: точный поток API + +## Источник + +- `development/dummycreate.har` — запись HTTP-запросов Nubes UI при создании dummy +- `development/dummymodify.har` — запись при модификации dummy + +## CREATE (эталонный поток) + +``` +1. POST /instances + {"serviceId":1, "displayName":"dummy-11255555", "descr":""} + → 201, Location: ./{instanceUid} + +2. POST /instanceOperations + {"instanceUid":"{uid}", "operation":"create"} + → 201, Location: ./{opUid} + +3. POST /instanceOperationCfsParams (12 раз, все параметры) + {"instanceOperationUid":"{opUid}", "svcOperationCfsParamId":242, "paramValue":"dummy"} + {"instanceOperationUid":"{opUid}", "svcOperationCfsParamId":198, "paramValue":"0"} + ... (все 12, включая пустые строки) + → 201 каждый + +4. НЕТ /validate, НЕТ /run — операция запускается автоматически после params +``` + +## MODIFY (эталонный поток) + +``` +1. POST /instanceOperations + {"instanceUid":"{uid}", "operation":"modify"} + → 201, Location: ./{opUid} + +2. POST /instanceOperationCfsParams (по одному на параметр) + → 201 каждый + +3. GET /instanceOperations/{opUid}/validate-cfs + → 204 + +4. POST /instanceOperations/{opUid}/run? + → 201 + +5. Поллинг: GET /instances/{uid} + → ждём operationIsInProgress=false +``` + +## Ключевые отличия от моих догадок + +| Моя версия | Реальность (HAR) | +|-----------|-----------------| +| `descr:"autotest"` | `descr:""` | +| `/instanceOperations/{uid}/params` | `/instanceOperationCfsParams` | +| Фильтр пустых параметров | Все 12, включая пустые | +| `/validate` + `/run` (create) | НЕТ — авто-запуск | +| `/validate` POST | GET `/validate-cfs` | +| `/run` POST | POST `/run?` | + +## Версии исправлений + +- v1.0.28: `/instanceOperationCfsParams` (правильный endpoint) +- v1.0.30: `descr:""`, все параметры, без validate/run (как в HAR)