fix(backups): восстанавливать вкладку и фильтры из ссылки

This commit is contained in:
Denozordec committed 2026-10-01 16:37:34 +07:00
1 parent 6f152c8dfe
commit 11e357cc94
8 files changed
+187 -12

No files matched your search

+9 -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А.29.5; пользователи/контейнеры/сертификаты приняты локально; резервные копии: checkpoint restore, далее 11А.30 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | В работе: 11А.1–11А.30; пользователи/контейнеры/сертификаты приняты локально; резервные копии: URL/Filters, далее 11А.31 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
@@ -36,6 +36,14 @@
## Блок 11А.30 — URL контекст истории и ReUI Filters (2026-10-01)
- Поиск q, kind и вкладка tab читаются из URL. Полный FilterQuery сохраняется как versioned filters после завершения значений; draft остаётся локальным до завершения. Back/Forward сбрасывает локальный draft и восстанавливает контекст. Search использует replace, вкладка/тип/Filters — push; чужие параметры и hash сохраняются.
- Validator ограничивает размер 8192 bytes/50 узлов/4 уровня, уникальные IDs, известные поля/operator/value, text/select наборы. Некорректная/повторяющаяся ссылка показывает постоянную ошибку со сбросом контекста; история не подменяется unfiltered списком. Сброс удаляет только собственные ключи.
- 2 URL validator unit, 5 URL E2E + 2 исходных table/Filters E2E, 12 operations E2E, TypeScript/профильный ESLint и production frontend прошли. Первый URL E2E уточнён по фактическому имени вкладки «История бэкапов»; повтор прошёл.
- Создание/restore checkpoints остаются привязаны к источнику, URL не запускает операции. Реальные RouterOS/PostgreSQL/S3 не проверены.
- **Следующий блок 11А.31:** ReUI Frame, desktop/390/320, визуальные состояния истории/настроек/форм/ошибок, nullable статус устройств; затем scheduler cleanup и приёмка backups.
## Блок 11А.29.5 — отметка неизвестного restore до POST (2026-10-01)
- До POST записывается immutable backupId/serverId/filename/имя/время в sessionStorage по backend URL. Отказ записи не отправляет импорт. Синхронный guard и общий operation lock защищают повтор; hydration/corrupt checkpoint не допускают начало.