Files
ros_control/docs/changes/002-http-support-and-fixes/summary.md
T
ayurishchevandClaude Sonnet 5 4c1841b61b ros_control: централизованное управление парком MikroTik RouterOS
Control Server (FastAPI) с WEB UI (Jinja2 + HTMX) и JSON API для группового
администрирования устройств RouterOS 7 через REST.

- Устройства: список, статус (модель, канал, версии ROS/FW, uptime, доступные
  обновления), примечания, пароли шифруются (Fernet); фоновый опрос каждые 30 с
  и быстрое обнаружение недоступности (таймаут соединения 4 с).
- Группы устройств и фильтры (устройства, резервные копии).
- Резервные копии: .backup и .rsc (show-sensitive) создаются через REST,
  скачиваются сервером и загружаются в S3 (Yandex Object Storage).
- Обновление ROS/FW и выбор канала, групповые операции задачами.
- Интерфейс по утверждённому макету: светлая/тёмная темы, окна, шрифты IBM Plex
  локально. Docker Compose, SQLite в томе, минимальный набор тестов.
- Планы и итоги каждого изменения — в docs/changes/.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-19 13:13:29 +03:00

1.7 KiB
Raw Blame History

Итоги: 002 — HTTP-подключение и исправления

Сделано

  • Флаг use_tls у устройства (API, UI, БД + автомиграция колонки). HTTP — только для доверенной сети.
  • Сообщения об ошибках подключения содержат URL и тип ошибки (раньше — пустое ConnectError:).
  • Исправлено падение на не-UTF-8 ответах RouterOS (GET /file).
  • Устройство msk-home переведено на порт 80/HTTP: статус считывается (модель, канал, ROS, FW, uptime).

Найдено при тесте

  • Порт 8729 — api-ssl, не REST. REST: www-ssl (443) или www (80).
  • Пользователь apicontrol в группе write с !ftp,!policy: backup/save, export → not enough permissions (9); /tool/fetch → cannot open file: permission denied. Нужна политика ftp (при необходимости policy).
  • ros_latest/ros_update_status пусты, пока не выполнена проверка обновлений (check-for-updates).

Не проверено

Бэкап целиком (ждёт выдачи прав пользователю), загрузка в S3 через /tool/fetch, обновления ROS/FW.

Дополнение

Права apicontrol были причиной ошибок not enough permissions: после выдачи full и пересоздания подключения backup/save заработал (см. 003). Загрузка через /tool/fetch оказалась неприменима — заменена в 003.