diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index ba80fac8..d59848ec 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -214,3 +214,5 @@ REST запрос → ожидание → подтверждённый output / ## Актуальное продолжение 2026-10-01 Этап 10 принят локально (10.71): 235 основных + 52 source E2E, 42 unit, frontend/backend build. Реальный RouterOS/Portal/PostgreSQL остаётся внешней приёмкой. Далее 11А — пользователи, контейнеры, сертификаты, резервирование; затем 11Б и 12. История прежних контрольных точек выше не заменяет актуальный журнал. + +Карта этапа 11А: [API, референсы и схемы](ux-ui-stage-11a.md). Точный следующий блок и ограничения — журнал. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index ed485c47..7a9b2f35 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -27,7 +27,7 @@ | 8 | Трафик и статистика | Завершён 2026-09-28 в границах локальной приёмки; ограничения в блоке 8.13 | | 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 | | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | -| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Не начат | +| 11А | Пользователи, контейнеры, сертификаты и резервные копии | В работе: 11А.1; карта API и сценариев сохранена | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат | @@ -36,6 +36,13 @@ +## Блок 11А.1 — подготовка администрирования (2026-10-01) + +- Сохранён docs/ux-ui-stage-11a.md: референсы, схема, порядок пользователей/контейнеров/сертификатов/backup, API и точки завершения. Чтение и многошаговые операции пользователей разделены на проверяемые блоки. +- Зафиксированы live INIT_USERS, связанный Promise.all, проглоченная refresh ошибка, отсутствие lock удаления и сброс формы эффектом. У контейнеров отказ очищает снимок; backup объединяет четыре зависимости и требует аудита polling job/интеграций. +- Различаются профильные права и JWT приложения; атомарность нескольких HTTP запросов не обещается. Расписание/оповещения/настройки — 11Б, реальные устройства/Portal/БД/S3 — внешняя приёмка. +- Проверка: исходные страницы/API/contracts прочитаны, карта сверена с сохранённым планом. Далее 11А.2: загрузка пользователей, независимые состояния каталога серверов, источник/права и API E2E. + ## Блок 10.71 — локальная приёмка этапа 10 (2026-10-01) - Этап 10 завершён в границах локальной приёмки: BGP/OSPF/рекурсивные маршруты/оптимизатор/карта/терминал/диагностика. Схемы и снимки сохранены в плане; ReUI Frame/Data Grid v9 и base-nova сохранены, новые vendor компоненты не добавлены. diff --git a/docs/ux-ui-stage-11a.md b/docs/ux-ui-stage-11a.md new file mode 100644 index 00000000..30218323 --- /dev/null +++ b/docs/ux-ui-stage-11a.md @@ -0,0 +1,42 @@ +# Этап 11А: пользователи и администрирование устройств + +Статус: подготовка 2026-10-01. ReUI PRO/base-nova, существующие Frame, KpiStatGrid, Data Grid v9 и Sheet. Изменения последовательно, локальные коммиты без push. + +## Референсы и схемы + +| Область | Референс | Схема | +| --- | --- | --- | +| Обзор раздела | [Settings 16](https://reui.io/preview/base/settings-16?ref=mcp) / [Stats 12](https://reui.io/preview/base/stats-12?ref=mcp) | Источник → подтверждённая сводка → проблемы → действие | +| Таблицы | [Data Grid Filtering 2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Фильтры → объект → детали → результат API | +| Формы | [Sheet 8](https://reui.io/preview/base/sheet-8?ref=mcp) | Контекст → форма → проверка → подтверждённый результат / сохранённый черновик | + + [Источник и права] + ↓ + [Каталоги + свежесть] → [Ошибка: последние данные, явный повтор] + ↓ + [Объект / детали] → [Форма с черновиком] + ↓ + [Подтверждение API / частичное выполнение] + ↓ + [Повторное чтение / восстановление контекста] + +## Карта реализации + +| Порядок | Раздел / API | Исходная проблема | Точка завершения | +| --- | --- | --- | --- | +| 1 | Пользователи: /users, /servers | Live начинает с INIT_USERS; Promise.all связывает независимые отказы; нет свежести и защиты смены источника | Пустой/unknown/ошибка различаются, последний снимок и read-only права | +| 2 | Профиль и привязки: /users/:id, /bindings | Многошаговое сохранение, нет lock удаления, refresh ошибка проглатывается; Sheet эффект может сбросить форму | Частичное выполнение явно показано, повтор без дублей, успешный API отдельно от refresh | +| 3 | Interface catalog | Ошибка превращается в []; каталог может сохранять прежнее устройство; peer ошибки требуют проверки | Контекст и доступность, точный выбор, сохранение формы | +| 4 | Пользователи UI | «Пригласить» фактически создаёт профиль; icon actions без имён, raw colors, доступность формы | ПК/390/320, клавиатура, понятные подписи/токены | +| 5 | Контейнеры | Отказ очищает прошлые объекты, Promise.all и операции требуют защиты/валидации | Состояния снимка, реальные подтверждения действий, контекст/права | +| 6 | Сертификаты | Сводка, доступность экспорта/операций и конкретный сервер требуют аудита | Неизвестные статусы, действительный экспорт и ошибки API | +| 7 | Резервирование | Общий Promise.all четырёх источников, polling задач/интеграций и сохранение требуют аудита | Частичные сбои и состояние job без ложного завершения, форма сохранена | +| 8 | Приёмка 11А | Сквозные действия и общие компоненты | Профильная регрессия, production build, снимки, внешние ограничения | + +## Границы + +- Права пользователя в профиле и Portal JWT авторизация приложения — разные существующие контракты; не менять правила выдачи доступа в UX исправлениях. +- Сохранение профиля и привязок сейчас несколько HTTP запросов. Не обещать атомарность и не повторять подтверждённое создание после частичного отказа. +- Серверный каталог — зависимость формы прав/привязок; отсутствие доступа или отказ не должен обнулять сохранённые разрешения. +- Backend/моки не подтверждают реальный Portal, PostgreSQL, RouterOS, выдачу сертификатов, восстановление backup или доступность S3. Реальную приёмку перечислять отдельно. +- Оповещения, сбор данных, интеграции, релизы, настройки и расписание диагностики — 11Б.