fix(settings): защищать восстановление базы от повторов и смены контекста

This commit is contained in:
Denozordec committed 2026-10-03 16:52:02 +07:00
1 parent 92b65a30ce
commit 57293479d1
13 files changed
+148 -188

No files matched your search

+3 -1
View File
@@ -4,7 +4,7 @@
## Актуальная точка продолжения — 2026-10-03
Этап 11Б в работе; последний проверенный блок 11Б.3.6.2.2.2. Следующий блок 11Б.3.6.2.3: отдельная форма DB с source/active guards, синхронным lock и review неизвестного результата. Затем Alerts/Releases/probe scheduling, приёмка 11Б и этап 12.
Этап 11Б в работе; последний проверенный блок 11Б.3.6.2.3.1. Следующий блок 11Б.3.6.2.3.2: browser source/ABA/unmount и соседняя Settings регрессия; затем локальная приёмка System DB. Затем Alerts/Releases/probe scheduling, приёмка 11Б и этап 12.
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
@@ -300,3 +300,5 @@ REST запрос → ожидание → подтверждённый output /
Завершён 11Б.3.6.2.2.1: DI restore executor/--single-transaction/cleanup warning, file choose без фиктивного success, confirmation до receipt. 4 DI/3 API/2 browser tests, backend/frontend builds/typecheck/lint прошли; реальный PG restore не запускался. System DB не принят полностью. Следующий точный шаг 11Б.3.6.2.2.2 — backend core/restart/event partial outcomes + DI HTTP/JWT/concurrency; затем 11Б.3.6.2.3 source/lock/unknown UI.
2026-10-03: завершён 11Б.3.6.2.2.2, подтверждённый backup/restore отделён от restart/audit warnings; nonqueued concurrency, HTTP/JWT/API/UI проверки прошли локально. Далее DB форма 11Б.3.6.2.3.
2026-10-03: завершён 11Б.3.6.2.3.1, отдельная DB форма/lock/checkpoint/адаптивность; 10 E2E, API/proxy tests и build прошли. Далее source/ABA/unmount и приёмка DB.
+10 -1
View File
@@ -28,7 +28,7 @@
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.6.2.2.2; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | В работе: 11Б.1–11Б.3.6.2.3.1; scheduler и GeoIP приняты локально; NetFlow принят локально; Evolution принят локально; далее общие Settings |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,15 @@
## Блок 11Б.3.6.2.3.1 — отдельная форма базы и неизвестный результат (2026-10-03)
- Inline DB handlers вынесены в SystemDatabaseSection: source-keyed lifetime, AbortController/active guard, проверка settings admin и backend health, общий synchronous lock backup/restore, удержание confirmation и запрет cancel во время POST. Результат/ошибки/warnings показаны внутри формы; убраны дублирующие toast сообщения.
- Dispatch checkpoint ставится только после проверки PGDMP/размера до отправки POST. Неизвестный результат блокирует повтор даже после cancel, смены секции и reload: memory + sessionStorage guard по источнику. Пользователь должен проверить данные/журнал и явно разрешить новый запрос; health не считается подтверждением восстановления. HTTP 401/403/409/413 — отказ без checkpoint; malformed receipt/ошибка транспорта сохраняют его. Нет автоматического повтора.
- Старый ответ размонтированной формы не очищает checkpoint нового lifetime. Отмена reader не доказывает прекращение server restore. При недоступном sessionStorage guard сохраняется в памяти до reload; состояние выбранного файла после reload не восстанавливается, checkpoint остаётся при доступном storage.
- 10 browser сценариев (включая 3 responsive и 2 прежних receipt), 5 API unit групп, lint/typecheck и production frontend/contracts build прошли. 3 снимка confirmation, 320 просмотрен. Первый прогон двух прежних E2E выявил duplicate toast/inline/closing dialog message; устранено, повтор прошёл.
- Найдено, что same-origin Next proxy отбрасывал новый outcome header. Передача header исправлена; отдельный proxy test, lint/typecheck прошли после изменения. Остальные внутренние headers не передаются.
- Следующий точный шаг 11Б.3.6.2.3.2: browser source/ABA/unmount и соседняя Settings регрессия; затем локальная приёмка System DB. Реальный PG dump/restore/worker pause/Portal ещё требуют внешней проверки.
## Блок 11Б.3.6.2.2.2 — подтверждённая операция и вторичные сбои (2026-10-03)
- Core backup/restore отделён от restart listener/scheduler: оба restart выполняются независимо, их errors — warnings после подтверждённой команды; первичная ошибка не подменяется вторичной. Ошибка stop предотвращает команду и запускает попытки восстановления потребителей. Cleanup warning сохранён.
+6
View File
@@ -226,3 +226,9 @@ ReUI PRO/base-nova; существующие Frame, Data Grid v9, KpiStatGrid, S
Завершён 11Б.3.6.2.2.1: DI restore executor/--single-transaction/cleanup warning, file choose без фиктивного success, confirmation до receipt. 4 DI/3 API/2 browser tests, backend/frontend builds/typecheck/lint прошли; реальный PG restore не запускался. System DB не принят полностью. Следующий точный шаг 11Б.3.6.2.2.2 — backend core/restart/event partial outcomes + DI HTTP/JWT/concurrency; затем 11Б.3.6.2.3 source/lock/unknown UI.
Завершён 11Б.3.6.2.2.2: core/restart/event outcomes, nonqueued lock/409, DI HTTP/JWT/concurrency/API и browser checks прошли; реальная БД не запускалась. Далее 11Б.3.6.2.3 — отдельная DB форма с source/active/admin/sync lock/unknown review.
Завершён 11Б.3.6.2.3.1: DB form/rights/source lifetime/sync lock/persisted unknown review; 10 E2E/5 API/proxy unit/typecheck/lint/build прошли. 3 confirmation screenshots, 320 просмотрен. Далее 11Б.3.6.2.3.2 source/ABA/unmount и Settings регрессия.
| Блок | Референс | Схема |
| --- | --- | --- |
| 11Б.3.6.2.3.1 База приложения | [Settings 16](https://reui.io/preview/base/settings-16?ref=mcp) | Источник и доступ → скачать / выбрать файл → подтверждение → результат + warnings; неизвестный результат → проверка данных → разрешение нового запроса |
Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB