chore(ui): завершить локальную приёмку резервных копий и этапа 11А

This commit is contained in:
Denozordec committed 2026-10-01 20:59:42 +07:00
1 parent 5ce080baf3
commit 49b8a1a19c
25 files changed
+22 -3

No files matched your search

+1 -1
View File
@@ -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; внешние ограничения — журнал.
| Экран | ПК | Телефон |
| --- | --- | --- |
+10 -1
View File
@@ -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 при любом выходе. Ошибка настроек/каталога не блокирует последующие запуски; параллельный вызов не повторяет настройку и создание.
+11 -1
View File
@@ -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.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB