Files
security-alert-center/docs/work-plan.md
T
PTah 04301ab359 feat: host heartbeat status and dashboard metrics (2.2)
Track agent.heartbeat and report.daily.ssh per host; show online/stale
on Hosts UI; dashboard counters and SAC_HEARTBEAT_STALE_MINUTES config.
2026-05-27 13:36:17 +10:00

106 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# План работ — Security Alert Center
**Актуальный порядок:** сначала подготовка агентов (параллельно с минимальным SAC ingest), затем полный SAC MVP, затем prod rollout `UseSAC=exclusive`.
---
## Фаза 0. Документация ✅
| # | Задача | Статус |
|---|--------|--------|
| 0.1–0.3 | ТЗ, архитектура, схема, deployment | ✅ |
| 0.5 | Репозиторий git.kalinamall.ru | ✅ |
| 0.6 | Multi-root workspace | ✅ |
---
## Фаза 1A. Агенты — контракт SAC (параллельно с 1B)
**Репозитории:** `ssh-monitor`, `RDP-login-monitor`
**Прод:** везде `UseSAC=off` по умолчанию.
| # | Задача | Статус |
|---|--------|--------|
| 1A.1 | Параметры `UseSAC`, `SAC_URL`, `SAC_API_KEY`, spool | ✅ ssh-monitor |
| 1A.2 | `build_sac_event()` + `send_sac_event()` по schema v1 | ✅ `sac-client.sh` |
| 1A.3 | `notify_or_sac()`: off / dual / exclusive / fallback | ✅ + маппинг событий |
| 1A.4 | `--check-sac` / `Test-SacConnection` | ✅ ssh-monitor `--check-sac` |
| 1A.5 | README агентов, first deploy | ✅ `first_deploy.sh`, `--deploy` |
**Выход:** на тестовом хосте `dual` шлёт JSON в SAC + Telegram.
---
## Фаза 1B. SAC — минимальный ingest ✅ (prod)
| # | Задача | Статус |
|---|--------|--------|
| 1B.1 | Scaffold backend FastAPI | ✅ |
| 1B.2 | PostgreSQL + Alembic (hosts, events, api_keys) | ✅ |
| 1B.3 | `POST /api/v1/events`, `GET /health` | ✅ prod `sac.kalinamall.ru` |
| 1B.4 | systemd + nginx + TLS | ✅ |
| 1B.5 | Валидация JSON Schema v1 | ✅ |
**Выход:** ingest с curl и UI на prod — достигнут.
---
## Фаза 1C. SAC — MVP UI и оповещения
| # | Задача | Статус |
|---|--------|--------|
| 1C.1 | Frontend Vue: Events, Hosts | ✅ prod |
| 1C.2 | Auth JWT, admin bootstrap | ✅ prod |
| 1C.3 | Problems (базовые правила) | ✅ API + UI (деплой ⏳) |
| 1C.4 | Telegram из SAC | ✅ backend (деплой + TELEGRAM_* в env) |
| 1C.5 | Dashboard (3 виджета), SSE | ✅ v0.2.0 |
**Выход:** тег `v0.2.0-mvp`.
---
## Фаза 2. Пилот и exclusive
| # | Задача |
|---|--------|
| 2.1 | E2E: 1 Linux + 1 Windows, `UseSAC=exclusive` | ✅ Linux [pilot-2.1-exclusive.md](pilot-2.1-exclusive.md) |
| 2.2 | Daily report / heartbeat через SAC | ✅ [pilot-2.2-heartbeat-reports.md](pilot-2.2-heartbeat-reports.md) |
| 2.3 | fallback на агентах | ✅ счётчик `SAC_FALLBACK_FAILURES` в sac-client |
**Выход:** `v0.2.0`.
---
## Фаза 3. Эксплуатация
См. [roadmap.md](roadmap.md).
---
## Gantt (упрощённо)
```mermaid
gantt
title SAC — актуальный план
dateFormat YYYY-MM-DD
section Документы
Фаза 0 :done, 2026-05-26, 1d
section SAC
1B ingest+deploy :done, 2026-05-26, 1d
1C UI базовый :done, 2026-05-26, 1d
1C notify+dash :active, 2026-05-27, 14d
section Агенты
1A UseSAC dual :2026-05-26, 10d
section Prod
Пилот exclusive :2026-06-16, 7d
```
---
## См. также
- [install-ubuntu-24.04.md](install-ubuntu-24.04.md) — подготовка сервера
- [operations-prod-status.md](operations-prod-status.md) — статус prod и деплой
- [roadmap.md](roadmap.md)
- [TZ.md](TZ.md)