From 2069e57f14a6e6b02eb23a4c1ced590bb43bdf68 Mon Sep 17 00:00:00 2001 From: PTah Date: Wed, 17 Jun 2026 11:07:12 +1000 Subject: [PATCH] docs: backlog for agent version compliance and remote updates Add agent-update-backlog.md and roadmap v0.7 outline for SAC-driven agent version tracking and remote update initiation. Co-authored-by: Cursor --- docs/INDEX.md | 1 + docs/agent-update-backlog.md | 58 ++++++++++++++++++++++++++++++++++++ docs/roadmap.md | 14 +++++++++ docs/todo-2026-05-29.md | 1 + 4 files changed, 74 insertions(+) create mode 100644 docs/agent-update-backlog.md diff --git a/docs/INDEX.md b/docs/INDEX.md index 3a8576c..d5ebee2 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -18,6 +18,7 @@ | [seaca-mobile.md](seaca-mobile.md) | **Seaca**: коды, устройства, сессия, API | | [seaca-fcm.md](seaca-fcm.md) | **Seaca push**: Firebase и `SAC_FCM_*` | | [workspace-three-repos.md](workspace-three-repos.md) | Multi-root workspace (три репо) | +| [agent-update-backlog.md](agent-update-backlog.md) | **ToDo:** версии агентов, удалённое обновление | ## Порядок чтения diff --git a/docs/agent-update-backlog.md b/docs/agent-update-backlog.md new file mode 100644 index 0000000..cb202c6 --- /dev/null +++ b/docs/agent-update-backlog.md @@ -0,0 +1,58 @@ +# ToDo — управление версиями агентов и удалённое обновление + +**Статус:** идея, требует проработки архитектуры. +**Связано:** [roadmap.md](roadmap.md) (v0.7), [agent-integration.md](agent-integration.md), UI «Хосты». + +--- + +## Цель + +SAC должен: + +1. **Отслеживать соответствие версий** агентов (`ssh-monitor`, `RDP-login-monitor`) ожидаемым/минимальным для текущей версии SAC. +2. **Инициировать обновление удалённо** с компьютеров/серверов из UI SAC (или по политике), без ручного захода на каждый хост. + +Сейчас версии видны по `host.product_version` и heartbeat; обновление — вручную (`update_ssh_monitor.sh`, `Deploy-LoginMonitor.ps1` / NETLOGON, GPO). + +--- + +## Вопросы для проработки + +| # | Тема | Варианты / заметки | +|---|------|-------------------| +| 1 | **Источник истины версии** | Матрица в SAC (min/recommended per `product`); теги в репо; отдельный manifest API | +| 2 | **Сигнал «устарел»** | Problem `agent.version.stale`; severity на карточке хоста; дашборд «не на версии» | +| 3 | **Канал команд** | Pull-only (агент сам тянет по расписанию) vs push-команда от SAC (нужен обратный канал) | +| 4 | **Linux** | Вызов `update_ssh_monitor.sh` по systemd timer + флаг «pending update» из SAC ingest response? Отдельный `agent.command` event? SSH/Ansible с SAC — вне scope агента | +| 5 | **Windows** | GPO/NETLOGON уже есть; remote = триггер `Deploy-LoginMonitor.ps1` через scheduled task / WinRM / SCCM — что допустимо по безопасности | +| 6 | **Авторизация** | Только admin SAC; audit log; подтверждение массового обновления; rate limit | +| 7 | **Отчёт о результате** | `agent.update.started` / `agent.update.success` / `agent.update.failed` в ingest; привязка к `host_id` | +| 8 | **Сеть** | Агент за NAT только исходящий HTTPS — предпочтителен **pull**, не inbound на хост | +| 9 | **Совместимость** | Связка с `schema_version`, откат, окно maintenance | + +--- + +## Черновые критерии приёмки (когда дойдём до реализации) + +- [ ] В UI «Хосты»: колонка/бейдж «версия OK / устарела / неизвестна». +- [ ] Настройка минимальной/рекомендуемой версии по продукту в SAC (или env). +- [ ] Problem или оповещение при расхождении (с cooldown). +- [ ] Действие admin: «Запросить обновление» на одном хосте / группе (MVP). +- [ ] Агент подтверждает попытку обновления событием в SAC. +- [ ] Документация: Linux + Windows runbook, ограничения безопасности. + +--- + +## Не в первой итерации (вероятно) + +- Полная замена Ansible/GPO/SCCM. +- Обновление SAC с агентов. +- macOS-агент. + +--- + +## См. также + +- [analytics-backlog.md](analytics-backlog.md) — отложенная аналитика +- [todo-2026-05-29.md](todo-2026-05-29.md) — оповещения и настройки +- Репозитории агентов: `update_ssh_monitor.sh`, `Deploy-LoginMonitor.ps1`, `update-rdp-monitor.ps1` diff --git a/docs/roadmap.md b/docs/roadmap.md index 9b68067..bc6d387 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -81,6 +81,20 @@ --- +## v0.7 — Версии агентов и удалённое обновление (ToDo) + +**Цель:** SAC контролирует актуальность `ssh-monitor` и `RDP-login-monitor` на хостах и может **инициировать обновление** без обхода всех машин вручную. + +- Сверка `product_version` с политикой SAC (min / recommended) +- UI: статус версии на карточке хоста, список отстающих +- Problems / оповещения при устаревании агента +- Команда обновления (предпочтительно **pull** с хоста: агент видит «нужно обновиться» и запускает свой updater) +- События `agent.update.*` в ingest для аудита + +**Проработка:** [agent-update-backlog.md](agent-update-backlog.md). + +--- + ## Не планируется (пока) - Замена Zabbix для инфраструктурного мониторинга diff --git a/docs/todo-2026-05-29.md b/docs/todo-2026-05-29.md index 97192d0..4139d91 100644 --- a/docs/todo-2026-05-29.md +++ b/docs/todo-2026-05-29.md @@ -84,5 +84,6 @@ UseSAC=exclusive→ только SAC ingest; TG/email = настройки SAC ( - [TZ.md](TZ.md) §4.6 F-NOT-01 … F-NOT-05 - [agent-integration.md](agent-integration.md) — режимы UseSAC +- [agent-update-backlog.md](agent-update-backlog.md) — **ToDo:** версии агентов и удалённое обновление из SAC - `backend/app/config.py` — `telegram_*` - `backend/app/services/telegram_notify.py`