fix(alerts): подтверждать конфигурацию внутри транзакции сохранения
This commit is contained in:
1 parent
6093442bcf
commit
9bc3a5db77
10 files changed
+150
-113
No files matched your search
@@ -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.2.2.1.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.4.2.2.1.2; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
|
||||
|
||||
|
||||
@@ -36,6 +36,14 @@
|
||||
|
||||
|
||||
|
||||
## Блок 11Б.4.2.2.1.2 — transactional receipt правил (2026-10-03)
|
||||
|
||||
- Replace теперь возвращает strict rules/groups receipt из самой transaction. Omitted groups читает внутри той же transaction после nonblocking pg_try_advisory_xact_lock; lock false даёт 409 без очереди/удаления, unknown lock не подтверждает действие. Targets/conditions/groups/rules/last-fired readback использует tx context вместо отдельных pool запросов после commit.
|
||||
- DI executor сверяет каждое переданное поле и набор ID с readback до возврата callback: write/read/мismatched receipt failure заставляет transaction отклонить callback, нет повторного replace. Router отправляет готовый receipt, не делает post-commit reread. Legacy replaceAlertRules передаёт omitted groups без предварительного GET.
|
||||
- 4 transaction-control DI, 3 normalization, 7 Telegram service + HTTP/JWT (включая rules 409), backend build/typecheck/lint прошли. Это контроль работы callback, не реальное доказательство PG rollback/lock overlap; PostgreSQL не запускался.
|
||||
- Полная replace по-прежнему допускает last-writer overwrite старым снимком после окончания другого save: optimistic revision/ETag пока нет. GET overview всё ещё multi-query, outbox unknown retry policy и UI прежние; Alerts целиком не принят.
|
||||
- Следующий блок 11Б.4.3.1: UI source-keyed lifetime и strict независимые readers, known/error/time без demo fallback; затем drafts/selective Telegram, rules confirmation/locks/rights/unknown review и адаптивность. Отдельно согласованность GET и outbox unknown audit.
|
||||
|
||||
## Блок 11Б.4.2.2.1.1 — общая нормализация правил и групп (2026-10-03)
|
||||
|
||||
- normalizeAlertsConfig общий для client и backend до transaction/delete. Сохраняет порядок OR targets/conditions, legacy одиночные поля, прежние summary labels, cooldown/recovery/combine policy; 0 delay означает off/null. Known empty groups отличается от omitted groups. Дубликаты ID, неизвестная группа и whitespace-only объекты/условия отклоняются до записи; HTTP возвращает 400.
|
||||
|
||||
Reference in new issue
Block a user