План работ — Security Alert Center
План разработки после утверждения ТЗ. Код не пишется до завершения фазы 0.
Фаза 0. Документация и согласование (текущая)
| # |
Задача |
Статус |
| 0.1 |
ТЗ TZ.md |
✅ |
| 0.2 |
Архитектура, схема событий, интеграция агентов |
✅ |
| 0.3 |
План работ, roadmap, deployment |
✅ |
| 0.4 |
Согласование ТЗ с заказчиком |
⏳ |
| 0.5 |
Репозиторий на git.kalinamall.ru (создать remote, push) |
⏳ |
| 0.6 |
Multi-root workspace для трёх репо |
⏳ |
Выход: утверждённое ТЗ v1.0, тег docs-v1.0 в git.
Фаза 1. MVP — ядро SAC (оценка: 3–4 недели)
1.1. Инфраструктура проекта
| # |
Задача |
Зависимости |
| 1.1.1 |
Scaffold backend/ FastAPI, структура пакетов |
0.4 |
| 1.1.2 |
Scaffold frontend/ Vue 3 + Vite |
0.4 |
| 1.1.3 |
deploy/docker-compose.yml (api, postgres, nginx) |
1.1.1 |
| 1.1.4 |
Alembic, первая миграция (hosts, events, users) |
1.1.1 |
| 1.1.5 |
.env.example, документация локального dev |
1.1.3 |
1.2. Ingest API
| # |
Задача |
| 1.2.1 |
Модель Event + валидация по JSON Schema |
| 1.2.2 |
POST /api/v1/events, auth API key |
| 1.2.3 |
Идемпотентность по event_id |
| 1.2.4 |
Авторегистрация host при ingest |
| 1.2.5 |
GET /health |
| 1.2.6 |
Unit-тесты ingest |
1.3. UI — базовый
| # |
Задача |
| 1.3.1 |
Auth: login, JWT |
| 1.3.2 |
Страница Events (таблица, фильтры, пагинация) |
| 1.3.3 |
Страница Hosts |
| 1.3.4 |
Карточка события |
| 1.3.5 |
SSE live-лента (последние N) |
1.4. Problems (минимум)
| # |
Задача |
| 1.4.1 |
Модель Problem + 2 встроенных правила (brute SSH, missing heartbeat) |
| 1.4.2 |
UI Problems: список, ack, resolve |
1.5. Уведомления из SAC
| # |
Задача |
| 1.5.1 |
Канал Telegram (настройки в env/БД) |
| 1.5.2 |
Worker: отправка по правилу severity ≥ warning |
| 1.5.3 |
Шаблон сообщения (summary + ссылка на UI) |
1.6. Dashboard MVP
| # |
Задача |
| 1.6.1 |
API агрегатов: events/hour, failed by type |
| 1.6.2 |
UI: 3 виджета (график входов, failed, топ IP) |
1.7. Приёмка MVP
| # |
Задача |
| 1.7.1 |
Чеклист TZ.md §9 |
| 1.7.2 |
Развёртывание на тестовом Ubuntu 24.04 |
| 1.7.3 |
Демо с curl / mock-agent |
Выход фазы 1: тег v0.1.0-mvp, работающий SAC без изменений в прод-агентах.
Фаза 2. Интеграция агентов (оценка: 2–3 недели)
| # |
Задача |
Репозиторий |
| 2.1 |
UseSAC, send_sac_event, spool |
ssh-monitor |
| 2.2 |
UseSAC, Send-SacEvent, spool |
RDP-login-monitor |
| 2.3 |
--check-sac, README |
оба |
| 2.4 |
E2E: exclusive на 1 Linux + 1 Windows |
все три |
| 2.5 |
Daily report через SAC |
SAC + агенты |
| 2.6 |
Режим fallback |
агенты |
Выход: теги ssh-monitor-x.y, rdp-monitor-x.y, sac-v0.2.0.
Фаза 3. Улучшения эксплуатации (оценка: 2–4 недели)
См. roadmap.md: batch ingest, email, правила UI, retention job, экспорт CSV, GeoIP, LDAP.
Параллельные потоки
Роли (рекомендация)
| Роль |
Фокус |
| Backend |
API, БД, worker, правила |
| Frontend |
UI, графики, SSE |
| DevOps |
Ubuntu 24.04, nginx, backup |
| Агенты |
ssh-monitor + RDP изменения |
На малой команде — одна person full-stack + выделенное время на агенты.
Definition of Done (общий)
- Код в
main, проходит lint/test в CI (когда появится).
- Документация обновлена.
- Нет секретов в git.
- Критерии приёмки фазы выполнены.
См. также