chore(test): проверить Selectel S3 и операции резервных копий
This commit is contained in:
1 parent
2277a76196
commit
03b0896369
14 files changed
+377
-19
No files matched your search
+19
-6
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-14: подготовлен S3 runner228,11 safety/dry-run checks passed, network requests0; реальная S3 приёмка ожидает endpoint/region/bucket/keys/path-style. UI226 —1366 unique accepted со scoped recovery2;364 исходных screenshots сохранены. Android227 human full-tunnel/reconnect accepted,16 own objects удалены, исходные поля13 коллекций сохранены, оба CHR доступны/пароли прежние. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-14: Selectel S3 принят228–229:2 real roundtrip objects и12 unique compiled backup API/owned SQL сценариев, включая upload denial/local fallback/sync/delete. Все собственные DB/roles/files/current objects очищены; enabled versioning обработан отдельно —8versions+8delete markers удалены из3 own prefixes, remaining0. Keys не в Git/reports, private env удалены. Native export — HTTP fixture, CHR contacts0; real native backup/restore/live UI остаются230. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,15 +36,28 @@
|
||||
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–227 завершены в записанных scopes, этап открыт. Runtime backend ux-regression222/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–229 завершены в записанных scopes, этап открыт. Runtime backend ux-regression222/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
|
||||
|
||||
## 12.5.228 — подготовка безопасной реальной S3-проверки (2026-10-14)
|
||||
## 12.5.229 — API резервных копий с real S3, owned SQL и очистка версий (2026-10-14)
|
||||
|
||||
Пользователь предложил тестовый S3; endpoint/region/bucket/access/secret и path-style ещё не получены. Подготовлен backend/scripts/acceptance/s3-roundtrip.mjs для запуска в compiled test backend image. Он вызывает существующий production S3 client, использует отдельный mmapp-acceptance/<UUID>/, проверяет пустоту prefix до записи, сохраняет planned/attempted keys до каждого PUT и удаляет только собственные attempted keys, включая неопределённый результат PUT. Тела — безвредные synthetic .rsc comments; native config/backup/credential exports не загружаются.
|
||||
12 unique сценариев compiled createBackupsRoutes/backup-service + Selectel S3 + отдельная PostgreSQL mm_accept_166_<timestamp>. Role NOSUPERUSER/NOCREATEDB/NOCREATEROLE/NOBYPASSRLS подтверждена до bootstrap; main DSN/данные не копировались. RouterOS export заменён только HTTP fixture на container loopback, возвращающим harmless .rsc comment: actual fixture exports3/run, CHR contacts0, native restore0. Приложение/production images не менялись.
|
||||
|
||||
Запуск требует HTTPS без userinfo/query/hash, явного owned-scope=yes, region/path-style и live RUN=confirmed. Нет TLS bypass или передачи credentials в вывод. Предусмотрены PUT→GET+SHA256, exact listing2 keys, Delete и readback текущих объектов; report содержит acknowledgement/cleanup failures отдельно. Version history/delete markers/retention, application backup jobs/SQL/UI/native restore в этот helper НЕ входят. Реальную S3-приёмку по его dry-run не объявлять.
|
||||
Приняты: storage PUT без secret disclosure; real HeadBucket test receipt; async create both; повтор requestId без второй выгрузки; download точных bytes; invalid credential test400 с сохранением settings; download fallback local при отказе S3; upload failure сохраняет local backup/uploadError; s3-only удаляет local copy и скачивается remote; sync/import/idempotent repeat; catalog/imported download; DELETE204/current-object cleanup/missing404. Сохраняемый в репо helper дополнен explicit owned/live/vHosted guards; свежий повтор тех же12 passed, не24 unique. UI/RBAC/native export+restore этим не объявляются повторёнными.
|
||||
|
||||
Обе own SQL DB/roles/containers удалены и отсутствие подтверждено trap. Catalog rows0/local files0/current own S3 objects0. GetBucketVersioning200 выявил Enabled. Для трёх наших UUID prefixes выполнена строгая проверка allowed keys и DeleteObject с точными VersionId:8versions+8delete markers удалены, version readback0 всех трёх. Чужие prefixes/versions не затрагивались, bucket settings не менялись. Credentials отсутствуют в published scripts/reports, private env удалены после cleanup.
|
||||
|
||||
[API12](ux-ui/acceptance/s3-application229.json), [initial12](ux-ui/acceptance/s3-application229-first.json), [versioning](ux-ui/acceptance/s3-versioning229.json), [cleanup16versions/markers](ux-ui/acceptance/s3-version-cleanup229.json). Reproducible helpers: backend/scripts/acceptance/s3-backups-api.mjs, run-s3-backups-api.sh, s3-owned-versions-cleanup.mjs. Wrapper на Debian ожидает private env /opt/mmapp-test/artifacts/s3-228-private.env и mount s3-229; version helper получает curated owned-prefixes-public.json из наших reports, не произвольный namespace.
|
||||
|
||||
Следующий230 — real S3 с native backup/ограниченным restore и live UI в согласованном scope; отдельно проверить смену bucket/endpoint при имеющемся каталоге и retention/version semantics. Остальные группы матрицы остаются открытыми. Runtime backend ux-regression222/frontend ux-routing218. Этап12.5 не завершён.
|
||||
|
||||
## 12.5.228 — реальные операции Selectel S3 (2026-10-14)
|
||||
|
||||
После11 safety/dry-run guards пользователь предоставил тестовый Selectel S3: HTTPS s3.ru-1.storage.selcloud.ru:443, region ru-1, bucket mikrotik-test-s3, virtual-hosted (forcePathStyle=false). Завершающий слеш в Secret key подтверждён как форматирование и не использован. Credentials сохранялись только в ignored/private env, не в коде/Git/публичных отчётах; временные env после всей проверки удалены локально и на Debian.
|
||||
|
||||
Runner вызвал существующий compiled production S3 client в отдельном read-only/cap-drop container. В собственном mmapp-acceptance/<UUID>/ выполнены empty-prefix preflight,2 PUT→GET+SHA256 equality и exact listing2. Два Delete подтверждены; текущих объектов0. Тела — harmless synthetic .rsc comments, device configuration exports0. TLS verification сохранена. [Реальный roundtrip](ux-ui/acceptance/s3-real228.json), [guards11](ux-ui/acceptance/s3-guard-preflight-2026-10-14.json).
|
||||
|
||||
В229 обнаружено enabled versioning: ordinary Delete создаёт delete marker. После API проверок удалены версии/markers только трёх собственных UUID prefixes; initial228 prefix2versions+2markers очищен отдельно. Bucket configuration writes0. Version history/retention поведения самого приложения этим не принимаются: очистка acceptance fixture не меняет production deletion semantics. Далее229 — compiled backup API/SQL с real S3 и synthetic native export.
|
||||
|
||||
11 локальных guard/dry-run cases passed: HTTP, URL credentials/query/invalid URL, отсутствующие scope/bucket/credentials/region, invalid path-style и отсутствующее live confirmation отклонены; fake secret/access markers отсутствуют в stdout/stderr. Dry-run0 network requests. Syntax/diff check passed. [Guard протокол](ux-ui/acceptance/s3-guard-preflight-2026-10-14.json). Подготовка runner закончена; реальное выполнение228 и расширенная application S3 приёмка ожидают параметров пользователя. Backend ux-regression222/frontend ux-routing218 сохранены. Этап12.5 открыт.
|
||||
|
||||
## 12.5.226 — свежая общая UI-регрессия и защита пользовательских снимков (2026-10-14)
|
||||
|
||||
|
||||
Reference in new issue
Block a user