fix(alerts): читать согласованный снимок и реальные цели проб

This commit is contained in:
Denozordec committed 2026-10-03 18:27:22 +07:00
1 parent dc5594ca7c
commit c5c1c2812d
12 files changed
+114 -88

No files matched your search

+10 -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Б.4.3.3.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.4.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,15 @@
## Блок 11Б.4.4.1 — согласованный GET и происхождение данных (2026-10-03)
- Production GET Alerts использует одну read-only repeatable-read transaction: Telegram/groups/rules/targets/conditions/last-fired/history/live issues/metadata читаются через тот же context. Raw live SQL больше не выходит в pool dbAll. GET Telegram не создаёт singleton row, отсутствующая конфигурация имеет корректное пустое состояние. Storage thread не округляется молча.
- Строгий overview проверяется внутри read transaction и повторно в HTTP; malformed response не подтверждается, Cache-Control:no-store. DI проверяет один context/options/ошибки, HTTP/JWT fixture обновлены на единую overview dependency. Реальная PG isolation/parallel write не доказана локальными DI.
- Metadata probeTargets/rttLossTargets содержит только существующие uptimeProbes. Убраны выдуманные ping-цели сервер→8.8.8.8/1.1.1.1 и выдуманная роль при missing type; legacy gre-client server labels оставлены по текущей evalServerLike политике. Actual RouterOS/probe operation не запускалась.
- Synthetic live history имеет sent:false и сохраняет source. UI отделяет «Мониторинг», «API принял» и «Не подтверждено»; source:live даже legacy sent:true не утверждает отправку, DB sent:false не выдается за доказанную ошибку. Демо помечено отдельно. Журнал описывает уведомления и текущие проблемы.
- 2 overview/meta DI + профильный Alerts backend suite/HTTP/JWT, 1 history browser, backend build, root typecheck без incremental/lint пройдены. Первый root typecheck поймал отсутствующий source в ручном DTO; заменён на тип contracts, повтор прошёл. Не выполнена live PG проверка; optimistic revision и outbox ещё впереди.
- Следующий точный шаг 11Б.4.4.2: optimistic revision/If-Match правил и групп, чтобы старый клиент не перезаписывал новый snapshot; затем outbox unknown audit, общий dashboard permission reader, адаптивность/pickers, Releases/probe scheduling и приёмка 11Б/12.
## Блок 11Б.4.3.3.1 — общий guard Telegram preview (2026-10-03)
- Rule preview снова доступен: strict testAlertsTelegram, caller abort/source lifetime, synchronous lock со всеми Alerts mutations, alerts:write/live/health/known token. Отправляется snapshot черновика без записи rule и без токена из сохранённых параметров в body.