fix(alerts): сохранять параметры выборочно и проверять результат отправки

This commit is contained in:
Denozordec committed 2026-10-03 17:06:44 +07:00
1 parent 0bcac655ea
commit 98319c9d50
11 files changed
+90 -58

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Б.4.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.2.1.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,13 @@
## Блок 11Б.4.2.1.1 — selective Telegram save и подтверждение отправки (2026-10-03)
- updateTelegramSettings больше не перезаписывает token/chat из предварительно прочитанного snapshot: строит только переданные columns, SQL UPDATE RETURNING подтверждает запись и сохраняет остальные поля. Singleton insert conflict-safe. DI helper проверяет patch/returning, public response не возвращает secret. Route отклоняет unknown/empty patch до update; thread ID ограничен положительным PostgreSQL int4 вместо silent floor/overflow.
- Send helper требует HTTP success и literal ok:true, HTML/{}/false/строка true не подтверждают приём Telegram. Один POST, 30s signal, без повтора внутри helper. При отсутствии ответа результат неизвестен; raw network error не раскрывается, upstream description редактирует literal/URL-encoded token. Подтверждение приёма API не является доказательством доставки получателю; существующая outbox retry policy не изменялась и ещё требует отдельного аудита unknown результатов.
- 4 DI save + 3 send-response tests, backend build/профильный lint прошли; 5 frontend API unit из предыдущего блока сохраняют совместимость. Alert-engine groups/evaluate tests прошли, confirm-stability пропущен из-за отсутствия PostgreSQL — не считать проверенным. Реальные DB concurrency/Telegram не запускались.
- Следующий блок 11Б.4.2.1.2: DI реальных Alerts HTTP handlers + signed JWT read/write gates и save/test receipts, согласованный источник Telegram для test. Затем rules transaction/readback concurrency и UI known/drafts/source/rights/adaptive. UI пока использует прежний generic API.
## Блок 11Б.4.1 — строгие Alerts contracts/API (2026-10-03)
- Аудит существующего UI: GET/PUT/POST принимают unchecked JSON; load заменяет Telegram draft и маскирует вторичные каталоги пустыми, save error вызывает load; целевая metadata иногда подменяется demo значениями. UI/backend пока не мигрированы этим блоком и не приняты.