Files
ayurishchevandClaude Sonnet 5 a846d30872 IPAM Manager: API, UI-админка, журнал аудита
Backend (FastAPI, SQLAlchemy 2, Alembic, PostgreSQL 16):
- организации, VRF, префиксы (дерево, использование, автоназначение),
  адреса, операторы связи, устройства и типы устройств; JWT, роли admin/viewer;
- VRF принадлежит организации (составной FK), смена VRF у префикса
  переносит поддерево, имя VRF уникально в организации;
- журнал аудита: поиск и фильтры, ротация (срок/количество), очистка
  по паролю с блокировкой, IP клиента и метаданные запроса
  (X-Forwarded-For только от TRUSTED_PROXIES).

UI (web/, без сборки): экраны и диалоги по макетам «IPAM Manager»,
кликабельные строки реестров, локальные шрифты IBM Plex,
собственные выпадающие списки.

Окружение: docker-compose (postgres + app), миграции Alembic 0001-0004,
scripts/gen_env.py, scripts/seed_demo.py, 11 автотестов (pytest).
Документация: README.md и docs/changes/001-005 (планы и итоги).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 12:27:47 +03:00

3.9 KiB
Raw Permalink Blame History

Суммаризация: backend + UI IPAM Manager (изменение 001)

Сделано

  • Backend (FastAPI): 9 групп эндпоинтов по плану — auth/JWT, обзор, организации, VRF, операторы, типы устройств, устройства, префиксы (дерево, использование, автоназначение), адреса, журнал изменений.
  • БД: PostgreSQL 16 в Docker Compose, схема — миграция Alembic 0001 (сгенерирована из моделей), нативные CIDR/INET.
  • UI (web/): все экраны и диалоги страницы «IPAM Manager» — Обзор, Префиксы (дерево, вкладки VRF, фильтры), Адреса подсети, Организации, Операторы, Устройства, диалоги префикса/адреса/VRF/организации/оператора/устройства/типов; плюс логин и простой «Журнал».
  • Окружение: docker-compose.yml, Dockerfile, scripts/gen_env.py (случайные учётные данные), scripts/seed_demo.py, venv/ в корне.
  • Документация: README.md, PLAN.md, этот файл.

Проверка

  • 4 автотеста (auth; валидация префикса/адреса; дерево, использование, автоназначение; запрет удаления используемых объектов) — против контейнеров, 4 passed.
  • Сквозной сценарий UI в headless-браузере (вход/ошибка входа, организация, VRF, префикс, адреса, устройства, типы, операторы, журнал, выход) — пройден, ошибок JS в консоли нет (кроме ожидаемых 401/422 в негативных шагах).
  • Сверка с макетами: все 13 экранов/диалогов отрендерены рядом с макетом (1440 px) и просмотрены. Структура, сетка, размеры, цвета, шрифты, иконки, бейджи, состояния (наведение, зачёркнутое устройство, «Свободен») совпадают. Оставшиеся отличия — только данные (в макетах вымышленные значения и предзаполненные формы) и состояния, которых нет в статичных макетах (фокус поля, раскрытие меню).

Осознанные отступления и допущения

  1. В макете «Префиксы» у 10.10.1.0/24 в колонке «Статус» стоит бейдж «95%» — похоже на дефект макета (это загрузка); реализовано «Активен», загрузка — в колонке «Использование».
  2. Ёмкость родительского префикса = сумма вложенных листьев (иначе 10.0.0.0/8 всегда «0%»); Обзор считает только IPv4.
  3. По умолчанию в дереве раскрыта первая ветка (как в макете), остальные свёрнуты.
  4. Экран «Журнал» для IPAM в макетах отсутствует — сделана простая таблица audit_log; ротация/очистка (страница ROS Manager) не входит.
  5. Порт приложения 8088 (8000 на машине занят).

Не вошло / дальше

Управление пользователями (создание viewer-ов), пагинация «Показать ещё» для организаций/устройств, импорт/экспорт, экран журнала с фильтрами.