diff --git a/HISTORY/2026-07-31-session.md b/HISTORY/2026-07-31-session.md index f6c467a..6d4c1e3 100644 --- a/HISTORY/2026-07-31-session.md +++ b/HISTORY/2026-07-31-session.md @@ -390,7 +390,7 @@ site/ ``` app-autotest/ ├── site/ -│ ├── api/auth.py # +short-circuit NUBES_MOCK +│ ├── api/auth.py # +short-circuit localhost (НЕ NUBES_MOCK) │ └── ... └── polygon/ ├── server.py # Flask-приложение эмулятора @@ -401,3 +401,47 @@ app-autotest/ ├── dummy.yaml # Болванка └── postgresql.yaml # PostgreSQL (stateOut: users, databases) ``` + +### Short-circuit: localhost вместо NUBES_MOCK + +Опус ПОДТВЕРДИЛ что проверка `localhost` лучше отдельного флага: + +- `detect_endpoint()` хардкодит dev/test и не читает `NUBES_API_ENDPOINT` — всегда лезет в реальные стенды +- При `NUBES_API_ENDPOINT=http://localhost:5001` detect может «угадать» реальный стенд и увести мимо мока +- Решение: в `get_client()` и `get_stand()` — если endpoint начинается с `http://localhost` или `http://127.0.0.1` → пропустить detect, сразу использовать endpoint +- `stand_name("http://localhost:5001")` → `"?"` — поэтому `get_stand()` при localhost возвращает `"mock"` +- Ноль новых env-переменных, существующий `NUBES_API_ENDPOINT` уже в конфиге + +### Реальные ID из HAR для dummy.yaml + +Опус распарсил `development/dummycreate.har` и `development/dummymodify.har`: + +**Операции Болванки (serviceId=1):** + +| operation | svcOperationId | +|-----------|----------------| +| create | 18 | +| delete | 71 | +| modify | 92 | +| suspend | 93 | +| resume | 94 | +| redeploy | 240 | + +**Параметры create (svcOperationCfsParamId):** + +| id | код | тип | +|----|-----|-----| +| 242 | resourceRealm | string (valueList=["dummy"]) | +| 198 | durationMs | integer | +| 199 | *(код не извлечён)* | boolean | +| 200 | *—* | boolean | +| 201 | *—* | integer/enum | +| 286 | *—* | string | +| 321 | *—* | map + dataDescriptor | +| 322 | *—* | string | +| 396 | *—* | string | +| 647 | *—* | map | +| 654 | *—* | array(map) | +| 863 | *—* | array | + +Для мока коды некритичны (мок сам отдаёт и шаблон и state.params — они должны совпадать между собой). Для реалистичности — код в `mock-architecture-prompt.md` достанет полные коды одной строкой Python.