chore(test): проверить ограниченное восстановление из хранилища через интерфейс

This commit is contained in:
Denozordec committed 2026-10-14 14:41:26 +07:00
1 parent 0216415953
commit 4b028be241
10 files changed
+311 -9

No files matched your search

+17 -1
View File
@@ -1,9 +1,25 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-14:238 — REST наблюдался763.844s:624 paired samples +24 diagnostics, все200. На обоих CHR изменились API session records; retained REST rows844→846/320→322. Это не доказывает причину прежних401/500 или точный механизм cached-login renewal. Runtime backend/frontend ux-backups237; missing-file UX237 принят. Следующий239 — S3 restore через live UI в пределах собственного bridge и retention. Этап12.5 открыт.
Актуальное продолжение 2026-10-14:239 — Selectel S3 restore через реальный Portal/UI принят для собственного95-byte скрипта bridge-only:download SHA256 совпал,restore200/receipt и native bridge без ports/IP подтверждены,delete204. Bridge/file/catalog/S3versions очищены; исходные10 строк, storage/schedule сверены целиком и восстановлены; приватные ключи/SQL-снимок удалены. Runtime backend/frontend ux-backups237. Следующий240 — retention в изолированном собственном S3 scope. Этап12.5 открыт.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## 12.5.239 — восстановление из Selectel S3 через реальный интерфейс (2026-10-14)
Пользователь явно разрешил передачу тестовых S3 access/secret keys на Debian после отказа automatic approval review. Ключи находились только в приватных ignored/0600 файлах и временных настройках приложения. Перед изменением сохранены raw SQL storage/schedule и10 исходных backup rows приватно. Расписание временно остановлено, virtual-hosted S3 сохранён и проверен через live UI с реальным Portal1.3.1/JWT. Использован новый UUID prefix и ровно один собственный95-byte .rsc: добавление bridge mm-ui239-* с comment=mm-ui239 без портов/адресов. Это специально ограниченный скрипт, не native full export и не полное восстановление CHR.
Собственный объект записан и прочитан SDK, затем только его строка добавлена в каталог. Через обычный UI скачан файл с совпавшими байтами/SHA256; restore вернул HTTP200 с нужными backupId/serverId. Direct RouterOS на194.226.121.150 подтвердил ровно один bridge, comment, отсутствие bridge ports/IP addresses и неизменность исходных bridges. Через UI удалена только собственная строка/объект:HTTP204, строка исчезла; pageerrors0. Восстановление на втором CHR и полный config restore этим блоком не проверялись.
Cleanup удалил свой bridge и загруженный .rsc, все версии/delete markers только точного ключа UUID prefix, сверил исходные10 SQL-строк и оба settings rows целиком. Первая попытка остановилась уже после удаления объектов: проверочный SQL-column guard не допускал цифру3 в s3_*; исправлен allowlist имён, повторная очистка прошла. Final-attempt removed0 означает, что версии удалены первой попыткой; конечный listing0 подтверждён. Общее число удалённых версий первой попытки не записано и не выдумывается. Bucket settings, чужие объекты и пароли не менялись. Приватный SQL-снимок и временные ключевые файлы workstation/Debian удалены; production-код и образы ux-backups237 не менялись.
Acceptance helpers s3-ui-limited-restore.mjs/.cjs проходят node --check. [UI-протокол](ux-ui/acceptance/s3-ui239-browser.json) и [native/cleanup](ux-ui/acceptance/s3-ui239-native.json) фиксируют точные границы. Общая регрессия не повторялась: новых runtime изменений нет.
| Референс | Схема принятого сценария |
| --- | --- |
| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp), [Sheet8](https://reui.io/preview/base/sheet-8?ref=mcp) | Собственный объект S3 → строка истории → download → подтверждение restore → native bridge → delete → cleanup и исходные настройки |
Следующий240 — retention в изолированном scope без удаления существующего каталога. Полная конфигурация, массовые экспорты на реальном CHR, миграция buckets, multi-instance, другие ОС/WAN/jobs остаются отдельной приёмкой.
## 12.5.238 — REST за пределами десятиминутного окна (2026-10-14)
Read-only workstation-наблюдение длилось763.844s (07:01:21.663Z–07:14:05.507Z):26 циклов с целевым периодом30s, шесть endpoints × два CHR × compiled MikrotikClient/fetch Connection:close. 624 samples и24 diagnostics, все HTTP200; повторные запросы при отказе не выполнялись, потому что отказов не было. Учётные данные передавались из приватного process env, временный env-файл удалён; Basic/JWT/пароли в публичный отчёт не включены. RouterOS configurationWrites0/passwordChanges0.