Files
rmm-openwrt/ROADMAP.md
T
2026-07-31 01:47:10 +03:00

11 KiB
Raw Blame History

OpenWrt RMM — roadmap

Актуализировано: 2026-07-31.

Этот файл — единственный источник порядка продуктовой разработки. Инженерные и production-проверки находятся в CHECKLIST.md, UI-критерии — в UI_CHECKLIST.md.

Статусы в этом документе означают:

  • [x] — функция реализована в ветке main и покрыта базовыми проверками;
  • [ ] — функция ещё не реализована полностью;
  • наличие функции в main не означает, что она уже вошла в опубликованный server/agent release или развёрнута на production.

Текущее состояние

Агент и OpenWrt-пакеты

  • Go-агент 0.6.8: enrollment, heartbeat, inventory, метрики и очередь команд.
  • Allowlist операций, backoff, восстановление связи и очистка lock-файла.
  • WAN, интерфейсы, DHCP/Wi-Fi-клиенты, память, диск и connectivity checks.
  • Безопасная активная проверка до 32 IPv4 DHCP-клиентов и передача результатов серверу.
  • Reverse SSH/LuCI tunnel через облачный сервер.
  • IPK/APK для основной OpenWrt-матрицы и ручной legacy workflow.
  • LuCI-приложение с английским интерфейсом по умолчанию.
  • Отдельный пакет luci-i18n-rmm-agent-ru.

Сервер и аккаунты

  • Go API, SQLite/WAL, совместимые startup-migrations и retention метрик.
  • Multi-user аккаунты, admin/user роли, профиль, e-mail, пароль и отзыв сессий.
  • Владение роутерами, передача устройства и изоляция пользовательского API.
  • Одноразовый enrollment grant; legacy shared token выключен по умолчанию.
  • Хеширование паролей и reusable access tokens.
  • Rate limiting авторизации, CSRF/origin checks и audit log.
  • Wildcard device domains и одноразовый LuCI access grant.
  • Alerts с состояниями active, acknowledged и resolved.

Уведомления и LAN-клиенты

  • E-mail, Telegram и подписанный webhook.
  • Подтверждение e-mail и безопасная привязка Telegram.
  • Пользовательские пороги, repeat, quiet hours/timezone и maintenance pause.
  • Per-device notification overrides.
  • Durable queue с lease, retry, dead-letter и retention истории.
  • Центр уведомлений: unread/read, счётчик, переход к роутеру и SSE-обновление.
  • Группировка связанных событий по incident.
  • Хранение last_seen LAN-клиентов и статусы online/recent/unconfirmed.

Web UI и deployment

  • Лендинг, favicon, партнёры и motion/reduced-motion.
  • Fleet, поиск, фильтры, сортировка и автообновление.
  • Карточка роутера, графики, alerts, диагностика, UCI, пакеты и аудит.
  • Cloud LuCI со сценариями starting/offline/timeout/error.
  • Адаптивный desktop/tablet/4:3/mobile layout.
  • Hardened Docker image, Compose, NPMplus и wildcard overlay.
  • Версионированные server/tunnel images, SBOM/provenance и Cosign.
  • Подписанный IPK/APK feed через GitHub Pages.

Порядок дальнейшей разработки

0. Стабилизация и выпуск текущего main

  • Дождаться полного успешного release workflow agent-v0.6.8, включая все текущие OpenWrt jobs и публикацию GitHub Pages.
  • Проверить установку и обновление rmm-agent-go-production, luci-app-rmm-agent и luci-i18n-rmm-agent-ru из подписанного feed на реальном OpenWrt 24.10/25.12.
  • Подготовить и выпустить подписанный server-v0.9.0 с notification center, verification, per-device settings и LAN client presence.
  • Выпустить server-v0.9.1 с операционными метриками уведомлений, фильтрами, вкладками личного кабинета и очисткой шума LAN-клиентов.
  • Проверить миграцию копии production SQLite, сделать backup и только затем обновить production.
  • Выполнить production-проверки SMTP, Telegram, webhook, active → repeat → resolved, retry → dead-letter, SSE и online → recent → unconfirmed.
  • Добавить операционные метрики уведомлений: queued/sent/failed, queue age, последняя ошибка и последняя успешная доставка по каналу.

1. Изоляция туннелей и защита управляющих команд

  • Персональные SSH credentials или короткоживущие сертификаты для каждого устройства.
  • Ротация/отзыв tunnel credentials при transfer, delete и компрометации.
  • Авторизованное выделение портов без возможности pre-bind/hijack другой сессии.
  • Проверка полной цепочки agent → SSH → LuCI HTTP → wildcard TLS.
  • Лимиты одновременных сессий, rate limit и административная политика remote access.
  • Device token rotation и явный отзыв device credentials.
  • Подписанные команды, срок действия, nonce и replay protection.
  • Шифрование webhook secrets и чувствительных полей notification queue в SQLite.

2. Автоматические проверки и наблюдаемость

  • Интеграционные тесты notification center, contact verification, per-device overrides, incident grouping и quiet hours/timezone.
  • Тесты активной проверки LAN-клиентов, лимита адресов, ICMP-blocked и IPv6-сценариев.
  • E2E reverse tunnel и cloud LuCI с проверкой ошибок и истечения сессии.
  • Playwright smoke для login, fleet, router, profile, notifications и LuCI errors.
  • Автоматическая responsive/accessibility матрица 1920/1366/1024/768/390/360.
  • Package install/upgrade/remove smoke для IPK/APK и проверка LuCI i18n.
  • Prometheus metrics, readiness, queue/tunnel metrics и структурированные логи.
  • govulncheck, SAST, container/dependency/secret scanning.
  • Pin GitHub Actions и базовых container images на проверяемые immutable revisions.

3. Backup и безопасное восстановление

  • Получение sysupgrade -b архива через агент.
  • Шифрованное хранение, retention и контроль доступа к backup.
  • Скачивание, безопасный diff и проверка совместимости с target/device/version.
  • Restore preview, повторное подтверждение и план отката.
  • Backup/restore SQLite через согласованный snapshot, а не копирование активного файла.
  • Disaster recovery runbook и регулярный restore drill.

4. Обновления агента и LuCI

  • Подписанный stable update manifest с версиями, target/feed compatibility и Sigstore bundle.
  • Проверка detached manifest signature сервером перед публикацией stable version в UI.
  • Проверка manifest signature агентом перед выполнением обновления.
  • Проверка свободного места, feed signature и package health до обновления.
  • Обновление одного роутера из кабинета с progress/reconnect/result.
  • Canary и поэтапный rollout с автоматической остановкой при ошибках.
  • История версий и rollback, если агент не вернулся после обновления.
  • Stable/candidate release channels без перемещения опубликованных тегов.

5. Организации и расширенная безопасность

  • Organizations/workspaces и приглашения.
  • Роли owner/admin/operator/viewer.
  • Доступ к группам и отдельным устройствам без передачи владельца.
  • MFA/WebAuthn и recovery codes.
  • Audit retention/export и журнал административных изменений.
  • Удаление аккаунта, экспорт данных и отзыв связанных credentials.
  • Опциональный mTLS для agent transport.

6. Расширение cloud DNS и fleet management

  • Безопасное переименование, резервирование и освобождение router DNS names.
  • Проверка wildcard DNS/TLS/tunnel health в интерфейсе.
  • Защита от повторного захвата недавно освобождённого имени и пользовательские квоты.
  • Опциональные пользовательские домены.
  • Конфигурационные шаблоны, группы, config drift и плановые команды.
  • Диагностический архив агента и безопасная выгрузка логов.
  • Интернационализация web UI и правила добавления языков LuCI.

7. Масштабирование и долговременный hardening

  • Версионированные migrations и отдельный migration log.
  • Graceful shutdown HTTP server, workers и активных lease.
  • Distributed rate limiting и worker coordination для нескольких server instances.
  • Load/soak tests, SLO и алерты состояния самой RMM-платформы.
  • Политика хранения audit, metrics, notifications и client history.