# 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`