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>
This commit is contained in:
ayurishchevandClaude Sonnet 5 committed 2026-09-19 13:13:29 +03:00
commit 4c1841b61b
85 files changed
+3579

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
# План: 008 — примечание к устройству
Запрос: комментарий владельца к листу «Окно: добавление устройства» в макете — «добавь место, где можно будет написать примечание».
## Решение
- Макет: в окне устройства под полем «Название» — многострочное поле «Примечание» (необязательно). Прод повторяет макет.
- Приложение: `devices.note` (TEXT, до 500 символов, пробелы по краям обрезаются, пусто = нет), миграция БД, поле в форме окна и запасной страницы, `note` в API (`POST/PATCH/GET /api/v1/devices`), примечание показывается подсказкой (`title`) над именем устройства в таблице — внешний вид таблицы не меняется.
- Тест: примечание через окно (обрезка пробелов, пусто → null).
+14
View File
@@ -0,0 +1,14 @@
# Итоги: 008 — примечание к устройству
## Сделано
- Макет (лист «Окно: добавление устройства», версия 4) и приложение: поле «Примечание» под названием устройства (textarea, до 500 символов).
- БД: колонка `devices.note` (автомиграция), сервис (`_clean_note`: обрезка, лимит, пусто → `null`), API (`note` в создании, правке и ответах; ошибка 400 при превышении лимита), UI (окно и запасная страница).
- В таблице примечание видно во всплывающей подсказке над именем устройства.
## Проверено
- `pytest`: 9 из 9 (тест создания устройства из окна расширен проверкой примечания).
- В браузере окно с полем «Примечание» выглядит как в макете; примечание сохраняется, видно в окне изменения и подсказке; через API правится, очищается пустой строкой, длиннее 500 символов отклоняется (400).
- Временное устройство удалено; данные пользователя (группа PRIVATE, `MSK_Home`, `OZ_Dacha`) не затронуты.
## Не проверено / замечания
- Примечание не выводится в самой таблице (чтобы не менять утверждённый вид) — только подсказка; если нужно видеть его постоянно (например, отдельной строкой или колонкой), это отдельное решение по макету.