Files
rmm-openwrt/CHECKLIST.md
T

6.3 KiB
Raw Blame History

Актуальный инженерный checklist

Синхронизировано с кодом 2026-07-23. Источник продуктового порядка — ROADMAP.md.

Работает сейчас

  • Go server, SQLite/WAL, Docker/Compose и /healthz.
  • Go agent 0.6.1, heartbeat, команды, backoff и OpenWrt init integration.
  • APK/IPK и LuCI-пакет.
  • Multi-user, роли admin/user, владение и передача роутеров.
  • Профиль, e-mail, смена/сброс пароля и управление сессиями.
  • Одноразовый secure enrollment; reusable token secrets хранятся как hash.
  • Alerts: offline, WAN, memory, disk, packet loss, latency, WAN IP, commands.
  • Acknowledge/resolved lifecycle и audit events.
  • E-mail/Telegram notifications, пользовательские пороги, repeat и delivery history.
  • Durable notification queue: leased claims, restart recovery, exponential retry, dead-letter и retention.
  • Reverse tunnel, cloud LuCI и wildcard router domain.
  • DirectDNS удалён из продукта; адресация роутеров работает только через cloud/wildcard-домен и исходящий туннель.
  • UCI preview/apply/commit/revert/backup/restore operations.
  • Fleet filters, bulk commands, metrics history и SSE auto-refresh.
  • Адаптивный UI и согласованные error/loading/empty состояния.

Обязательное перед следующим production-релизом

  • Сгенерировать ключи usign/APK и зафиксировать проверяемые публичные ключи.
  • Сохранить приватные ключи в зашифрованной офлайн-копии и добавить два base64-значения в GitHub Actions Secrets.
  • Включить GitHub Pages из Actions и проверить первый подписанный package feed на реальном роутере.
  • Выпустить первый server-v*, проверить Cosign/provenance и закрепить RMM_RELEASE_VERSION в production .env.
  • Настроить SMTP и/или RMM_TELEGRAM_BOT_TOKEN в production environment.
  • Выполнить тестовую отправку из реального пользовательского профиля.
  • Проверить active → repeat → resolved на тестовом роутере.
  • Проверить миграцию существующей production SQLite базы на копии.
  • Сделать backup базы перед обновлением контейнера.
  • Проверить docker compose config --quiet и healthcheck после deploy.

Следующая разработка

  • Добавить подтверждение e-mail и безопасную привязку Telegram-чата перед включением канала.
  • Сделать встроенный центр уведомлений: unread/read, счётчик, переход к роутеру и обновление через SSE.
  • Настройки по типам событий, maintenance/snooze и временное подавление алертов на период работ.
  • Добавить операционные метрики уведомлений: queued/sent/failed, возраст очереди и последняя ошибка канала.
  • Активная проверка проводных клиентов и last_seen, чтобы flow offload не оставлял реально работающий ПК в состоянии STALE.
  • Подписанный webhook channel.
  • Quiet hours/timezone и per-device notification overrides.
  • Конфигурационные backup artifacts и retention.
  • CI для тестов, Docker, multi-version APK/IPK и release artifacts.
  • Keyless Cosign, provenance/SBOM контейнеров и подписанные checksum релизов.
  • Нативные подписанные Packages.sig/packages.adb и публикация package feed.
  • Signed update manifest и безопасное обновление агента из кабинета.
  • Per-device tunnel credentials.
  • Organizations и расширенный RBAC.
  • MFA, command signatures и replay protection.
  • Graceful shutdown, readiness, server metrics и load tests.

Постоянная проверка изменений

Это повторяемый шаблон для каждого следующего изменения. Результат последнего проверенного коммита фиксируется отдельно ниже.

  • gofmt и go test ./....
  • go vet ./....
  • node --check web/app.js и web/landing-motion.js.
  • docker compose config --quiet.
  • Docker build.
  • Desktop 1366/1920, 4:3 1024, tablet 768 и mobile 390/360.
  • Отсутствие секретов и случайных production-файлов в diff.

Последняя верификация — 6a03061

  • gofmt, go test ./... и go vet ./....
  • node --check web/app.js и web/landing-motion.js.
  • docker compose config --quiet и Docker build.
  • Notification profile: 768×1024, 390×844 и 360×800 без горизонтального overflow.
  • Недоступные SMTP/Telegram-каналы блокируются с понятной подсказкой.
  • Ошибки тестовой отправки локализованы и сохраняют request ID.
  • Проверены diff и отсутствие реальных секретов; присутствуют только безопасные example-placeholder значения.

Документация при изменении API и конфигурации

  • Синхронизировать server/README.md, docs/api.md и .env.example с endpoint и переменными окружения.
  • Обновить docs/recent-progress.md, checklist и roadmap без противоречащих статусов.