fix(netflow): защитить приватный экспорт и разделить результаты сохранения

This commit is contained in:
Denozordec committed 2026-10-03 12:31:51 +07:00
1 parent 4af4fdc544
commit 8b017bab3f
9 files changed
+120 -31

No files matched your search

+2
View File
@@ -252,3 +252,5 @@ REST запрос → ожидание → подтверждённый output /
Продолжение 2026-10-03: завершён 11Б.3.4.4.1 (строгие NetFlow API, 5 unit и 3 collector/probes E2E, typecheck/ESLint). Следующий блок — 11Б.3.4.4.2: backend экспорт/права и подтверждение сохранения отдельно от запуска listener. Purge и форма ещё требуют доработки.
Завершён 11Б.3.4.4.2: private export требует traffic write, GET не создаёт ключи, PUT отделяет сохранение от ошибки запуска listener. HTTP/JWT, backend build, lint и permissions прошли. Далее 11Б.3.4.4.3: конкурентное создание ключей/выборочные patch; purge и UI ещё не приняты.
+8 -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.4.4.1; status/history/KPI, strict settings API основа и защита каталога Evolution проверены; далее readers/dirty формы |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.4.4.2; status/history/KPI, strict settings API основа и защита каталога Evolution проверены; далее readers/dirty формы |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,13 @@
## Блок 11Б.3.4.4.2 — backend NetFlow и приватный экспорт (2026-10-03)
- GET host-files больше не вызывает ensureHostKeys: без приватного ключа возвращает 409 с предложением явно создать ключи. Экспорт содержит приватный ключ, поэтому требует traffic:write; обычные settings GET остаются traffic:read. AUTH_REQUIRED=false и остальные правила не менялись.
- Четыре маршрута settings/keys/export выделены в DI plugin. PUT отклоняет пустой patch, неизвестные поля и порты вне 1–65535 до изменения; подтверждение сохранения возвращает отдельный listenerError при последующем сбое запуска. Фактическая UDP готовность остаётся listenerBound, асинхронный запуск её не обещает. Неудача read после write возвращает 500/неизвестный результат без повторного write.
- HTTP inject и подписанные JWT проверили доступ до handler, GET без генерации, отказ записи, ошибку запуска, неизвестный read и created true/false. Backend build, ESLint и permissions unit прошли. DI tests не доказывают реальный PG/worker/Portal.
- Далее 11Б.3.4.4.3: конкурентное создание ключей/выборочная запись, затем атомарность и частичные результаты purge. UI ещё не показывает новый listenerError и не принят; это следующий блок формы.
## Блок 11Б.3.4.4.1 — строгие ответы NetFlow (2026-10-03)
- Settings GET/PUT, генерация ключей, экспорт и purge проверяют фактический DTO и буквальное подтверждение. PUT отправляет только валидный непустой patch и проверяет каждый переданный параметр в ответе; ошибки не запускают повторный запрос.
+2
View File
@@ -180,3 +180,5 @@ ReUI PRO/base-nova; существующие Frame, Data Grid v9, KpiStatGrid, S
Продолжение 2026-10-03: завершён 11Б.3.4.4.1 (строгие NetFlow API, 5 unit и 3 collector/probes E2E, typecheck/ESLint). Следующий блок — 11Б.3.4.4.2: backend экспорт/права и подтверждение сохранения отдельно от запуска listener. Purge и форма ещё требуют доработки.
Завершён 11Б.3.4.4.2: private export требует traffic write, GET не создаёт ключи, PUT отделяет сохранение от ошибки запуска listener. HTTP/JWT, backend build, lint и permissions прошли. Далее 11Б.3.4.4.3: конкурентное создание ключей/выборочные patch; purge и UI ещё не приняты.