fix(backups): получать нативный экспорт и проверить восстановление из S3

This commit is contained in:
Denozordec committed 2026-10-14 10:31:14 +07:00
1 parent 03b0896369
commit c3fb66dcbf
18 files changed
+1405 -120

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md).
+1 -1
View File
@@ -1,6 +1,6 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
+16 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -36,7 +36,21 @@
| 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–229 завершены в записанных scopes, этап открыт. Runtime backend ux-regression222/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–230 завершены в записанных scopes, этап открыт. Runtime backend ux-backup230/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
## 12.5.230 — нативные резервные копии CHR в S3 и ограниченное восстановление (2026-10-14)
Нативные POST /console/export и /export без file вернули пустые массивы на обоих CHR. Старый fallback составлял частичный скрипт из нескольких разделов и мог выдавать его за полную резервную копию. Fallback удалён: выполняется однократный /export file со случайным собственным именем, проверяются список/ID/размер/RouterOS header/ошибки разделов/целостность UTF-8, временный файл удаляется с readback. Неполный экспорт или неподтверждённая очистка завершаются ошибкой. Повтор mutations не добавлен.
8 HTTP-сценариев нового exporter, test:backups, test:ros-file, backend/contracts build и scoped ESLint прошли. Уточнены два существующих let: entry стал const; req остаётся let, чтобы не нарушить обработку уже отменённого запроса. Production image ux-backup230 проверен:500 source files/1060 compiled outputs совпали; main backend развёрнут и healthy, frontend ux-routing218 сохранён. [Сборка](ux-ui/acceptance/backup230-deployment.json).
После отдельного согласия пользователя реальные native конфигурации194.226.121.150 и104.165.244.7 выгружены через compiled backup API/owned SQL в Selectel S3 (1063/782 bytes), downloads/hash подтверждены. Полное восстановление конфигурации не выполнялось: из native export выделена только команда собственного bridge без ports/addresses; S3 download→upload→import→native readback подтвердили его восстановление. [Native/S3](ux-ui/acceptance/s3-native230.json).
Первый прогон выполнил backup/restore, но cleanup assertion полного file metadata завершился ошибкой. Для повторного прогона baseline сохранён приватно; у directory исключены только изменяемые creation-time/last-modified, остальные поля и все поля обычных файлов/bridge сравниваются точно. Новый полный прогон passed; причина первого несовпадения по сохранённому baseline не доказана. [Первый результат](ux-ui/acceptance/s3-native230-first.json). Собственные bridge/files/catalog/SQL DB/roles удалены, passwords changes0. Из двух собственных prefixes удалены6 S3 versions+6 delete markers, readback0, bucket settings writes0. [Очистка](ux-ui/acceptance/s3-native230-version-cleanup.json). Private credentials env удалён локально/на Debian.
Live браузер с real Portal SSO/API, без mocks: /backups и настройки на1440/390, успешные API чтения, page errors0, horizontal overflow0. Первый harness ошибочно ожидал /dashboard; Portal правильно вернул /backups, скорректированный harness прошёл. Настройки хранилища в main не изменялись; S3 save/test и restore через UI этим не приняты. [UI](ux-ui/acceptance/backups230-live-ui.json).
Ограничение: текущий /file/get отклоняет файлы>=61439 bytes; частичная подмена больше не допускается. Следующий231 — документированный /file/read с порциями, затем проверка смены S3 bucket/endpoint и retention semantics. Общая UI-регрессия повторно не запускалась; этап12.5 открыт.
## 12.5.229 — API резервных копий с real S3, owned SQL и очистка версий (2026-10-14)
+4 -4
View File
@@ -1,10 +1,10 @@
# Оставшаяся внешняя приёмка — 2026-10-14
Актуальное продолжение 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
Это актуальная матрица после 12.5.229. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Это актуальная матрица после 12.5.230. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-regression222`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-backup230`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
## Остаток приёмки по группам — 2026-10-14
@@ -15,7 +15,7 @@
| REST и достоверность данных | Ошибки OSPF/BFD/BGP/GRE/WAN215–221 явные; latest API smoke222 прошёл | Причина единичных native401/500 неизвестна. Короткое независимое наблюдение возможно сейчас; оно не даст SLA |
| Клиентские ОС и внешняя сеть | CHR↔CHR/Linux, private IPv4/ULA и synthetic IPv6/IPFIX; Android full-tunnel/reconnect227 подтверждены пользователем | Windows/macOS/iOS VPN, расширенная Android приёмка, независимые WAN/multi-WAN и public IPv6; public IPv6 на текущем стенде отсутствует |
| Масштаб и длительная устойчивость | Контролируемые lock/dedupe/loss/recovery и короткие native проверки | Несколько backend/worker/writers, длительный rekey/REST/traffic, physical disconnect и maximum throughput |
| Внешние хранилища и jobs | Локальные API/errors/RBAC/owned SQL; реальные Portal1.3.1/Telegram195–201 и Selectel S3/client/API/ownSQL228–229 | Native S3 backup/restore/live UI/retention; provider/container/Gitea/MaxMind jobs с соответствующими endpoints/аккаунтами; private/paid credentials не выдумывать |
| Внешние хранилища и jobs | Локальные API/errors/RBAC/owned SQL; реальные Portal1.3.1/Telegram195–201 и Selectel S3/client/API/ownSQL228–229 | Large native exports, S3 save/test/restore через UI, смена bucket/endpoint и retention; provider/container/Gitea/MaxMind jobs с соответствующими endpoints/аккаунтами; private/paid credentials не выдумывать |
| Расширенные сетевые конфигурации | GRE/WG/VXLAN/IPsec/OSPF/BFD/BGP сценарии и точные границы записаны | from-pool/EUI-64/multiple-address import/export, outer IPv6, произвольная PKI/OID/policy/path-length и длительные переходы; BFD-only gate гарантией не стал |
| Общий UX, доступность и производительность | Полная UI192 исторически; latest backend25/UI52, scoped contrast/live218 и keyboard206 | Свежая UI226 принята в записанных границах; профильный performance и ручная accessibility/screen-reader приёмка; scoped axe не полный WCAG |
| Границы выпуска | План/доказательства/датированные блоки сохранены; коммиты локальные | Определить требуемые конфигурации и принять результат в этих границах; невыполненные варианты остаются явными ограничениями |
+16 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -4085,3 +4085,18 @@ Runner вызвал существующий compiled production S3 client в о
Следующий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.230 — нативные резервные копии CHR в S3 и ограниченное восстановление (2026-10-14)
Нативные POST /console/export и /export без file вернули пустые массивы на обоих CHR. Старый fallback составлял частичный скрипт из нескольких разделов и мог выдавать его за полную резервную копию. Fallback удалён: выполняется однократный /export file со случайным собственным именем, проверяются список/ID/размер/RouterOS header/ошибки разделов/целостность UTF-8, временный файл удаляется с readback. Неполный экспорт или неподтверждённая очистка завершаются ошибкой. Повтор mutations не добавлен.
8 HTTP-сценариев нового exporter, test:backups, test:ros-file, backend/contracts build и scoped ESLint прошли. Уточнены два существующих let: entry стал const; req остаётся let, чтобы не нарушить обработку уже отменённого запроса. Production image ux-backup230 проверен:500 source files/1060 compiled outputs совпали; main backend развёрнут и healthy, frontend ux-routing218 сохранён. [Сборка](ux-ui/acceptance/backup230-deployment.json).
После отдельного согласия пользователя реальные native конфигурации194.226.121.150 и104.165.244.7 выгружены через compiled backup API/owned SQL в Selectel S3 (1063/782 bytes), downloads/hash подтверждены. Полное восстановление конфигурации не выполнялось: из native export выделена только команда собственного bridge без ports/addresses; S3 download→upload→import→native readback подтвердили его восстановление. [Native/S3](ux-ui/acceptance/s3-native230.json).
Первый прогон выполнил backup/restore, но cleanup assertion полного file metadata завершился ошибкой. Для повторного прогона baseline сохранён приватно; у directory исключены только изменяемые creation-time/last-modified, остальные поля и все поля обычных файлов/bridge сравниваются точно. Новый полный прогон passed; причина первого несовпадения по сохранённому baseline не доказана. [Первый результат](ux-ui/acceptance/s3-native230-first.json). Собственные bridge/files/catalog/SQL DB/roles удалены, passwords changes0. Из двух собственных prefixes удалены6 S3 versions+6 delete markers, readback0, bucket settings writes0. [Очистка](ux-ui/acceptance/s3-native230-version-cleanup.json). Private credentials env удалён локально/на Debian.
Live браузер с real Portal SSO/API, без mocks: /backups и настройки на1440/390, успешные API чтения, page errors0, horizontal overflow0. Первый harness ошибочно ожидал /dashboard; Portal правильно вернул /backups, скорректированный harness прошёл. Настройки хранилища в main не изменялись; S3 save/test и restore через UI этим не приняты. [UI](ux-ui/acceptance/backups230-live-ui.json).
Ограничение: текущий /file/get отклоняет файлы>=61439 bytes; частичная подмена больше не допускается. Следующий231 — документированный /file/read с порциями, затем проверка смены S3 bucket/endpoint и retention semantics. Общая UI-регрессия повторно не запускалась; этап12.5 открыт.
+1 -1
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 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 открыт.
Актуальное продолжение 2026-10-14: блок230 — исправлена подмена нативного экспорта частичным синтетическим скриптом. Реальные конфигурации обоих CHR выгружены в Selectel S3 и скачаны; ограниченный restore собственного bridge подтверждён RouterOS. Исходные файлы/bridge сохранены, собственные DB/roles/объекты удалены;6 versions+6 delete markers очищены. Live UI1440/390 с real Portal/API принят без изменения storage settings. Backend ux-backup230/frontend ux-routing218. Далее231 — чтение файлов>=61439 байт; S3 retention/смена bucket и расширенная приёмка открыты. Этап12.5 открыт.
| Параметр | Проверенное состояние |
| --- | --- |
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,21 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"backendSourceMatched": 500,
"compiledMatched": 1060,
"frontendChanged": false,
"services": {
"backend": {
"image": "mmapp-test/backend:ux-backup230",
"imageId": "sha256:796aef2b62f03218e4e07f15cedb7bc14613494b4ec6e61af85480703a4d5e37",
"running": true,
"health": "healthy"
},
"frontend": {
"image": "mmapp-test/frontend:ux-routing218",
"imageId": "sha256:ec658b9da88c19d60987be5bfc0c15fb339a0310d7a42dc761b40a70a3428c5a",
"running": true,
"health": null
}
}
}
@@ -0,0 +1,10 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"kinds": [
{
"kind": "backend",
"matched": 500
}
]
}
@@ -0,0 +1,23 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"realPortalLogin": true,
"noMocks": true,
"views": [
{
"width": 1440,
"settingsVisible": true,
"successfulApiRead": true,
"horizontalOverflow": false
},
{
"width": 390,
"settingsVisible": true,
"successfulApiRead": true,
"horizontalOverflow": false
}
],
"pageErrors": 0,
"storageMutations": 0,
"nativeRestoreViaUI": false
}
@@ -0,0 +1,24 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"devices": [
{
"host": "194.226.121.150",
"passed": true,
"bytes": 917,
"sha256": "994c5f06cfc65feb55ecc7e98548d47438fa1abede1e18b189d0a17ca6fd3990",
"native": true,
"filesBaselineMatched": true
},
{
"host": "104.165.244.7",
"passed": true,
"bytes": 782,
"sha256": "43b7fbfd82651da91bd92d8e2c8140d727db7069338080aebb0803bc3782d375",
"native": true,
"filesBaselineMatched": true
}
],
"configurationWrites": 0,
"passed": true
}
@@ -0,0 +1,56 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"prefix": "mmapp-acceptance/a395b3db-8f34-4335-ae67-9a635f5e7c6a",
"passed": false,
"backups": [
{
"serverId": 1,
"host": "194.226.121.150",
"bytes": 1063,
"sha256": "efa4f3e6c86cf9bb3d4941a472018bbb82c945bef7df9e93321191034eab059b",
"native": true,
"s3Only": true
},
{
"serverId": 2,
"host": "104.165.244.7",
"bytes": 782,
"sha256": "47f1f0da003c31cdce61f84ff1f30c49a119f319042d7eca54de77d6ed800b5c",
"native": true,
"s3Only": true
}
],
"checks": [
{
"name": "two-native-backups-S3-and-download",
"passed": true
},
{
"name": "limited-restore-payload-only-native-marker-command",
"passed": true
},
{
"name": "S3-download-upload-import-native-readback",
"passed": true
}
],
"cleanup": [
{
"host": "194.226.121.150",
"failureName": "AssertionError"
},
{
"host": "104.165.244.7",
"originalFilesAndBridgesMatched": true
}
],
"passwordChanges": 0,
"currentS3ObjectsRemaining": 0,
"bounds": [
"Full .rsc import onto a configured router was not attempted; restore only own unused bridge",
"Current objects removed; own S3 versions require separate cleanup",
"Files>=61439 bytes explicitly rejected pending chunked-reader work"
],
"ownedDatabaseAndRoleRemoved": true
}
@@ -0,0 +1,21 @@
{
"at": "2026-10-14T03:27:26.571Z",
"bucketConfigurationWrites": 0,
"prefixes": [
{
"prefix": "mmapp-acceptance/a395b3db-8f34-4335-ae67-9a635f5e7c6a",
"versionsBefore": 3,
"deleteMarkersBefore": 3,
"removed": 6,
"versionsAndMarkersRemaining": 0
},
{
"prefix": "mmapp-acceptance/f9051fac-f481-44cf-9410-e7ff153da0ed",
"versionsBefore": 3,
"deleteMarkersBefore": 3,
"removed": 6,
"versionsAndMarkersRemaining": 0
}
],
"passed": true
}
+56
View File
@@ -0,0 +1,56 @@
{
"date": "2026-10-14",
"block": "12.5.230",
"prefix": "mmapp-acceptance/f9051fac-f481-44cf-9410-e7ff153da0ed",
"passed": true,
"backups": [
{
"serverId": 1,
"host": "194.226.121.150",
"bytes": 1063,
"sha256": "900d873740150831deb71cdf45dfda1a22ccdc123f6e5167589a07f49e81f62e",
"native": true,
"s3Only": true
},
{
"serverId": 2,
"host": "104.165.244.7",
"bytes": 782,
"sha256": "94050abb7b5da6a2a579b3f4c322f17cf56a7f48bdcaf1bb71ea59b7fb87c6a9",
"native": true,
"s3Only": true
}
],
"checks": [
{
"name": "two-native-backups-S3-and-download",
"passed": true
},
{
"name": "limited-restore-payload-only-native-marker-command",
"passed": true
},
{
"name": "S3-download-upload-import-native-readback",
"passed": true
}
],
"cleanup": [
{
"host": "194.226.121.150",
"originalFilesAndBridgesMatched": true
},
{
"host": "104.165.244.7",
"originalFilesAndBridgesMatched": true
}
],
"passwordChanges": 0,
"currentS3ObjectsRemaining": 0,
"bounds": [
"Full .rsc import onto a configured router was not attempted; restore only own unused bridge",
"Current objects removed; own S3 versions require separate cleanup",
"Files>=61439 bytes explicitly rejected pending chunked-reader work"
],
"ownedDatabaseAndRoleRemoved": true
}