chore(ui): завершить локальную приёмку резервных копий и этапа 11А
No files matched your search
@@ -226,7 +226,7 @@ REST запрос → ожидание → подтверждённый output /
|
||||
| Пользователи | [Профиль](ux-ui/screens/users-profile-desktop.png), [ошибка](ux-ui/screens/users-error-desktop.png) | [390](ux-ui/screens/users-profile-mobile.png), [320](ux-ui/screens/users-profile-narrow.png) |
|
||||
| Контейнеры | [Обзор](ux-ui/screens/containers-overview-desktop.png), [снимок](ux-ui/screens/containers-export-desktop.png) | [390](ux-ui/screens/containers-export-mobile.png), [320](ux-ui/screens/containers-export-narrow.png) |
|
||||
|
||||
Актуальная точка продолжения: 11А.33 — профильная локальная приёмка backups. Backup scheduler cleanup проверен в 11А.32; общий dispatcher/journal status требует исправления в 11Б, реальные интеграции остаются внешней приёмкой. S3/partial job/initial errors приняты в 11А.31.2.2. Диалоги ошибок приняты в 11А.31.2.1. Frame/первые 9 экранов приняты в 11А.31.1. URL/Filters контекст принят в 11А.30. Клиентский checkpoint restore принят в 11А.29.5. Backend outcome неизвестного импорта принят в 11А.29.4. Идентичность receipt принята в 11А.29.3. Backend cleanup удаления принят в 11А.29.2. Frontend delete/restore/download принят в 11А.29.1, затем URL/Frame/визуальная приёмка и scheduler cleanup. Frontend checkpoint/создание/serial polling приняты локально в 11А.28.2. API/основа наблюдения реализованы в 11А.28.1. Настройки расписания/S3 реализованы в 11А.27.1–11А.27.2. Каталоги/source/права реализованы в 11А.25, backend результат ручных операций исправлен в 11А.26. Сертификаты приняты локально в 11А.24, backups API стал строгим. State API, reader, snapshot merge и nullable представление подключены в 11А.14–11А.17.3; таблица требований — [этап 11А](ux-ui-stage-11a.md). Резервные копии и весь 11А ещё не приняты.
|
||||
Актуальная точка продолжения: 11Б.1 — достоверность общего scheduler runner и карта оставшихся разделов. Этап 11А принят локально в 11А.33: backups 71 основных + 28 source E2E, 27 frontend unit, backend профиль и production build. Backup scheduler cleanup проверен в 11А.32; общий dispatcher/journal status требует исправления в 11Б, реальные интеграции остаются внешней приёмкой. S3/partial job/initial errors приняты в 11А.31.2.2. Диалоги ошибок приняты в 11А.31.2.1. Frame/первые 9 экранов приняты в 11А.31.1. URL/Filters контекст принят в 11А.30. Клиентский checkpoint restore принят в 11А.29.5. Backend outcome неизвестного импорта принят в 11А.29.4. Идентичность receipt принята в 11А.29.3. Backend cleanup удаления принят в 11А.29.2. Frontend delete/restore/download принят в 11А.29.1, затем URL/Frame/визуальная приёмка и scheduler cleanup. Frontend checkpoint/создание/serial polling приняты локально в 11А.28.2. API/основа наблюдения реализованы в 11А.28.1. Настройки расписания/S3 реализованы в 11А.27.1–11А.27.2. Каталоги/source/права реализованы в 11А.25, backend результат ручных операций исправлен в 11А.26. Сертификаты приняты локально в 11А.24, backups API стал строгим. State API, reader, snapshot merge и nullable представление подключены в 11А.14–11А.17.3; таблица требований — [этап 11А](ux-ui-stage-11a.md). Резервные копии и весь 11А приняты локально в 11А.33; внешние ограничения — журнал.
|
||||
|
||||
| Экран | ПК | Телефон |
|
||||
| --- | --- | --- |
|
||||
|
||||
@@ -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А.1–11А.32; пользователи/контейнеры/сертификаты приняты локально; резервные копии: scheduler проверен, далее приёмка 11А.33 |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
|
||||
|
||||
@@ -36,6 +36,15 @@
|
||||
|
||||
|
||||
|
||||
## Блок 11А.33 — локальная приёмка резервных копий и этапа 11А (2026-10-01)
|
||||
|
||||
- Общая регрессия backups: 69 основных + 2 исходных table/Filters + 28 source/context E2E, 27 frontend unit, весь backend test:backups прошли. Полный frontend TypeScript и production frontend/contracts build прошли; backend build и профильный ESLint прошли в 11А.32.
|
||||
- Проверены данные/unknown/partial, независимые зависимости, права, черновики расписания/S3, immutable job/checkpoint, serial polling, удаление/restore/download, URL/Filters, клавиатура и ПК/390/320. 24 PNG сохранены, узкий partial job повторно просмотрен; обновлённые снимки от последней регрессии включены в коммит.
|
||||
- Резервные копии приняты в границах локального UI/API/DI профиля. Пользователи приняты в 11А.8, контейнеры в 11А.13, сертификаты в 11А.24. Этап 11А завершён локально; общая регрессия всех разделов приложения относится к этапу 12.
|
||||
- Внешняя приёмка: PostgreSQL/Portal/JWT/RouterOS/ACME/S3, физическое восстановление и versioned S3 deletion не доказаны фикстурами. Jobs/checkpoints и scheduler lock не обеспечивают долговечность/межпроцессную идемпотентность. Исторические S3 bucket/endpoint не хранятся. PEM/private key import/export не реализованы. Эти ограничения не скрыты локальными результатами.
|
||||
- Общий scheduler dispatcher пока может записать snapshot с ошибками как ok; это явный долг этапа 11Б, а не подтверждённая успешность планового запуска на общем экране.
|
||||
- **Следующий блок 11Б.1:** карта оставшихся разделов и достоверность общего scheduler runner: collector результат отдельно от журнала/событий, без второй записи и ложного ok.
|
||||
|
||||
## Блок 11А.32 — достоверность плановых резервных копий (2026-10-01)
|
||||
|
||||
- Lock берётся до чтения настроек и освобождается через finally при любом выходе. Ошибка настроек/каталога не блокирует последующие запуски; параллельный вызов не повторяет настройку и создание.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Этап 11А: пользователи и администрирование устройств
|
||||
|
||||
Статус: подготовка 2026-10-01. ReUI PRO/base-nova, существующие Frame, KpiStatGrid, Data Grid v9 и Sheet. Изменения последовательно, локальные коммиты без push.
|
||||
Статус: завершён локально 2026-10-01 (11А.33); внешние ограничения приведены в приёмке. ReUI PRO/base-nova, существующие Frame, KpiStatGrid, Data Grid v9 и Sheet. Изменения последовательно, локальные коммиты без push.
|
||||
|
||||
## Референсы и схемы
|
||||
|
||||
@@ -471,3 +471,13 @@
|
||||
- 8 новых scheduler/prune unit, весь backend test:backups, backend/contracts build и ESLint изменённых файлов прошли. Реальные PostgreSQL/RouterOS/S3 не проверены.
|
||||
- Обнаружено отдельное ограничение общего scheduler dispatcher: возвращённый snapshot с ошибками пока записывается как status=ok, отказ общего журнала может переобозначить запуск. Исправление общего журнала/статуса входит в 11Б; локальная приёмка backups не доказывает достоверность этого общего экрана.
|
||||
- **Следующий блок 11А.33:** общая профильная регрессия резервных копий и локальная приёмка 11А с явными внешними ограничениями.
|
||||
|
||||
|
||||
## Блок 11А.33 — локальная приёмка резервных копий и этапа 11А (2026-10-01)
|
||||
|
||||
- Общая регрессия backups: 69 основных + 2 исходных table/Filters + 28 source/context E2E, 27 frontend unit, весь backend test:backups прошли. Полный frontend TypeScript и production frontend/contracts build прошли; backend build и профильный ESLint прошли в 11А.32.
|
||||
- Проверены данные/unknown/partial, независимые зависимости, права, черновики расписания/S3, immutable job/checkpoint, serial polling, удаление/restore/download, URL/Filters, клавиатура и ПК/390/320. 24 PNG сохранены, узкий partial job повторно просмотрен; обновлённые снимки от последней регрессии включены в коммит.
|
||||
- Резервные копии приняты в границах локального UI/API/DI профиля. Пользователи приняты в 11А.8, контейнеры в 11А.13, сертификаты в 11А.24. Этап 11А завершён локально; общая регрессия всех разделов приложения относится к этапу 12.
|
||||
- Внешняя приёмка: PostgreSQL/Portal/JWT/RouterOS/ACME/S3, физическое восстановление и versioned S3 deletion не доказаны фикстурами. Jobs/checkpoints и scheduler lock не обеспечивают долговечность/межпроцессную идемпотентность. Исторические S3 bucket/endpoint не хранятся. PEM/private key import/export не реализованы. Эти ограничения не скрыты локальными результатами.
|
||||
- Общий scheduler dispatcher пока может записать snapshot с ошибками как ok; это явный долг этапа 11Б, а не подтверждённая успешность планового запуска на общем экране.
|
||||
- **Следующий блок 11Б.1:** карта оставшихся разделов и достоверность общего scheduler runner: collector результат отдельно от журнала/событий, без второй записи и ложного ok.
|
||||
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 220 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |