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>
1.7 KiB
1.7 KiB
Итоги: 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.