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>
16 lines
1.6 KiB
Markdown
16 lines
1.6 KiB
Markdown
# План: 002 — HTTP-подключение к устройствам и исправления по итогам первого теста
|
||
|
||
## Контекст
|
||
Тест на реальном RouterOS (RB4011, ROS 7.24.4): статус не считывался, бэкап не создавался (`ConnectError`).
|
||
Причины: у устройства включён только `www` (порт 80, HTTP), а `www-ssl` (443) выключен; в приложении был указан порт 8729 (`api-ssl` — бинарный протокол, не REST).
|
||
|
||
## Решение (выбрано пользователем)
|
||
Поддержка HTTP на уровне устройства: флаг `use_tls` (по умолчанию `true`; `false` = HTTP, только для доверенной сети).
|
||
|
||
## Шаги
|
||
1. Поле `use_tls` в модели `Device` + миграция существующей БД (`ALTER TABLE`).
|
||
2. `RosClient`: схема `http/https` по флагу; в ошибку подключения добавлен URL и причина.
|
||
3. API (`DeviceIn/Patch/Out`) и UI-форма: флаг «HTTPS» + предупреждение о пароле открытым текстом.
|
||
4. Исправление: RouterOS может отдавать имена файлов не в UTF-8 — декодирование с заменой вместо падения.
|
||
5. Перевод тестового устройства на порт 80/HTTP, проверка статуса и бэкапа, диагностика прав пользователя.
|