fix(evolution): подтверждать сохранение ключа и ответ проверки API

This commit is contained in:
Denozordec committed 2026-10-03 13:16:09 +07:00
1 parent 2b62e0e956
commit 554dba55ec
8 files changed
+103 -111

No files matched your search

+9 -1
View File
@@ -28,7 +28,7 @@
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.5.1; scheduler и GeoIP приняты локально; NetFlow принят локально; далее Evolution и общие settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.5.2; scheduler и GeoIP приняты локально; NetFlow принят локально; далее Evolution и общие settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,14 @@
## Блок 11Б.3.5.2 — backend Evolution save/test (2026-10-03)
- Settings GET/PUT/test вынесены в DI plugin. PUT пишет только переданные нормализованные поля, RETURNING подтверждает их фактические значения, включая apiKey внутри backend; ответ отдаёт только literal ok/public flags/savedFields, без key echo. Singleton insert устойчив к конфликту.
- PUT receipt сохраняет прежние публичные поля верхнего уровня для старого provider, добавляет ok/savedFields. Общий контракт отклоняет пути /v1 вместо прежнего молчаливого удаления пути. Каталог и правила маршрутизации не менялись.
- Проверка соединения подтверждает ожидаемый items array от /v1/modules, а не любой HTTP 200 JSON. Test draft нормализуется общим контрактом; пустой ключ берётся из сохранённой конфигурации, отсутствие URL/key даёт 400. HTTP malformed upstream даёт 502, POST не повторяется.
- DI HTTP и JWT реальных settings/test handlers проверили selective patch, key clear/replace без echo, ignored key 502, DB failure, invalid input/no write, malformed upstream/no success, отсутствие доступа до handler. Backend build и lint прошли; профиль включён в backend test. Реальные PG/Evolution/Portal не проверены.
- Далее 11Б.3.5.3 — provider strict readers/receipts, independent settings/catalog known/error/time, source guards и сохранение последнего каталога. Затем форма Settings/dirty/locks/контекст. Отдельно проверить backend catalog mapper: его upstream optional defaults могут скрывать malformed коллекции.
## Блок 11Б.3.5.1 — строгий Evolution API (2026-10-03)
- Добавлен общий contracts/evobgp: canonical HTTP(S) root URL без пути/query/credentials, явные enabled/secretConfigured, patch/test нормализация ключа без Bearer дублирования, one-line key и strict savedFields receipt. Empty endpoint/key clear и отсутствие поля имеют разную семантику.