feat: global notification policy severity to channels (notif-22)
Singleton notification_policy table, NOTIFY_MIN_SEVERITY/CHANNELS env, central dispatch gate, Settings policy UI, migration 007. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -50,25 +50,25 @@ $SacSpoolDir = "D:\Soft\Logs\sac-spool"
|
||||
|
||||
При **`exclusive`** агент **не** шлёт Telegram/email — оператору нужны оповещения **из SAC** (`backend/app/services/telegram_notify.py`).
|
||||
|
||||
На сервере SAC в **`/opt/security-alert-center/config/sac-api.env`** (см. `deploy/env.native.example`):
|
||||
На сервере SAC — **`sac-api.env`** или UI **Настройки** → **Правило оповещений**: один порог severity и выбор каналов (Telegram / webhook / email).
|
||||
|
||||
```env
|
||||
NOTIFY_MIN_SEVERITY=warning
|
||||
NOTIFY_CHANNELS=telegram,webhook,email
|
||||
TELEGRAM_ENABLED=true
|
||||
TELEGRAM_BOT_TOKEN=<bot>
|
||||
TELEGRAM_CHAT_ID=<chat>
|
||||
# warning — failed login, sudo, problems; high — только high/critical
|
||||
TELEGRAM_MIN_SEVERITY=warning
|
||||
```
|
||||
|
||||
| Severity события | `warning` | `high` (по умолчанию в example) |
|
||||
|------------------|-----------|----------------------------------|
|
||||
| Severity события | `NOTIFY_MIN_SEVERITY=warning` | `high` |
|
||||
|------------------|-------------------------------|--------|
|
||||
| `info` (успешный RDP/SSH login) | нет | нет |
|
||||
| `warning` (`*.login.failed`, sudo) | **да** | нет |
|
||||
| `high` / `critical` (ban, problem) | **да** | **да** |
|
||||
|
||||
Problems (`notify_problem`) учитывают тот же порог `TELEGRAM_MIN_SEVERITY`.
|
||||
Events и problems используют **одно** глобальное правило (`notification_policy` в БД, миграция `007`).
|
||||
|
||||
UI **Настройки** (`/settings`) — просмотр и редактирование Telegram (JWT admin): значения в БД `notification_channels` с fallback на `sac-api.env`, пока запись не создана. После деплоя выполнить `alembic upgrade head` на сервере SAC.
|
||||
UI **Настройки** (`/settings`) — правило + параметры каналов (JWT admin). После деплоя: `alembic upgrade head`.
|
||||
|
||||
### 1.4. Версии и доставка обновлений
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ sudo /opt/sac-deploy.sh
|
||||
|
||||
## Следующие шаги (2026-05-29)
|
||||
|
||||
1. **Деплой SAC v0.5.0** — `sudo /opt/sac-deploy.sh` (миграции **`004`–`006`**: Telegram, webhook, SMTP)
|
||||
1. **Деплой SAC v0.5.0** — `sudo /opt/sac-deploy.sh` (миграции **`004`–`007`**: каналы + глобальное правило)
|
||||
2. **notif-02** — прогон [testing-e2e-checklist.md](testing-e2e-checklist.md) § «SAC Telegram» на prod
|
||||
3. **Настройки UI** — `/settings`: Telegram `warning+`, кнопка «Проверить Telegram»
|
||||
4. **RDP 1.2.20-SAC** — NETLOGON + `Deploy-LoginMonitor.ps1` на пилотных хостах
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|----|--------|----------|
|
||||
| `notif-20` | SMTP: host, port, user, from, to, TLS — по аналогии с RDP `login_monitor.settings` | ✅ PUT/test API + UI + ingest |
|
||||
| `notif-21` | Webhook: URL, optional secret header, JSON payload (event/problem) | ✅ PUT/test API + UI + ingest |
|
||||
| `notif-22` | TZ F-NOT-02 урезанно: правило «severity ≥ X → каналы» без сложного конструктора | Одна строка в настройках |
|
||||
| `notif-22` | TZ F-NOT-02 урезанно: правило «severity ≥ X → каналы» без сложного конструктора | ✅ `notification_policy` + UI «Правило оповещений» |
|
||||
|
||||
### P3 — Качество сообщений (можно сдвинуть)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user