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

This commit is contained in:
Denozordec committed 2026-10-03 12:33:31 +07:00
1 parent 8b017bab3f
commit e2aae3897d
7 files changed
+70 -32

No files matched your search

+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.2; status/history/KPI, strict settings API основа и защита каталога Evolution проверены; далее readers/dirty формы |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.4.4.3; status/history/KPI, strict settings API основа и защита каталога Evolution проверены; далее readers/dirty формы |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,13 @@
## Блок 11Б.3.4.4.3 — конкурентные настройки и ключи NetFlow (2026-10-03)
- Settings UPDATE изменяет только поля patch, не переносит соседние настройки из старого cache. Первичная вставка singleton использует onConflictDoNothing, параллельная инициализация не падает из-за дубликата.
- Генерация ключей использует условный UPDATE только при неполной паре и fresh read после записи. Конкурирующий запрос получает public key победителя с created=false; существующая полная пара не вращается. Ошибка записи/неподтверждённая пара не повторяются автоматически.
- DI race test принудительно синхронизирует два исходных чтения: оба кандидата созданы, установлен один, оба ответа показывают одну пару. HTTP/JWT профиль, backend build и ESLint прошли. Атомарное условие SQL проверено типами/ревью, реальная межпроцессная гонка PG не проверена локальными mock tests.
- Далее 11Б.3.4.4.4: атомарный purge и независимые ошибки обслуживания/событий; затем форма NetFlow.
## Блок 11Б.3.4.4.2 — backend NetFlow и приватный экспорт (2026-10-03)
- GET host-files больше не вызывает ensureHostKeys: без приватного ключа возвращает 409 с предложением явно создать ключи. Экспорт содержит приватный ключ, поэтому требует traffic:write; обычные settings GET остаются traffic:read. AUTH_REQUIRED=false и остальные правила не менялись.