diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 329d6e9a..f4c45c6c 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап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). diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index f1b7c806..f486cf7c 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,6 +1,6 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап12.5 открыт. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 811b7eb0..f8da2976 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап12.5 открыт. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -36,7 +36,15 @@ | 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–231 завершены в записанных scopes, этап открыт. Runtime backend ux-backup231/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. | +| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–232 завершены в записанных scopes, этап открыт. Runtime backend ux-backup231/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. | + +## 12.5.232 — сохранение Selectel S3 и проверка доступа в live UI (2026-10-14) + +Real Portal login, ordinary /backups/API, без mocks. Через UI сохранены временные Selectel endpoint/region/bucket/own random prefix/credentials и forcePathStyle=false; PUT storage200, POST test200 с lastTestAt/без lastTestError. Secret отсутствует в DTO и очищен из поля после save. После reload на390px постоянный badge «Проверено ранее» сохранён; horizontal overflow0/page errors0. Файлы не выгружались, restore не выполнялся; empty prefix не требует S3 version cleanup. [UI](ux-ui/acceptance/s3-ui232.json). + +Первый preflight отклонил изменение settings, потому что на main включено автоматическое расписание; до snapshot не было записей. После private snapshot storage/schedule/catalog проверено remote catalog0, расписание приостановлено штатным PUT schedule200. Первая UI серия прошла save/test, но ошибочно ожидала временный toast после reload. Harness исправлен на shipped постоянный badge, новый полный прогон passed; приложение/стили не изменялись. [Первый harness](ux-ui/acceptance/s3-ui232-first.json). + +Cleanup в SQL transaction восстановил все исходные поля двух singleton records, включая secret/updatedAt/history; все10 catalog rows совпали точно. Backend перезапущен для загрузки исходного расписания и healthy на image ux-backup231. Private snapshot и local S3 credential JSON удалены. [Точная очистка](ux-ui/acceptance/storage232-cleanup.json). Секреты/скриншоты credential forms не опубликованы, пароли CHR не менялись. Frontend ux-routing218 сохранён. Следующий233 — проверить и защитить адресацию существующих backups при смене S3 bucket/endpoint. Version retention приложения и остальные группы остаются открытыми; этап12.5 открыт. ## 12.5.231 — чтение нативного экспорта порциями и контроль целостности (2026-10-14) diff --git a/docs/ux-ui-remaining-acceptance.md b/docs/ux-ui-remaining-acceptance.md index ef951b20..bbb34456 100644 --- a/docs/ux-ui-remaining-acceptance.md +++ b/docs/ux-ui-remaining-acceptance.md @@ -1,8 +1,8 @@ # Оставшаяся внешняя приёмка — 2026-10-14 -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап12.5 открыт. -Это актуальная матрица после 12.5.231. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. +Это актуальная матрица после 12.5.232. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-backup231`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись. @@ -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 | Large native exports проверены HTTP fixture; S3 save/test/restore через UI, смена bucket/endpoint и 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 проверены HTTP fixture; S3 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 | | Границы выпуска | План/доказательства/датированные блоки сохранены; коммиты локальные | Определить требуемые конфигурации и принять результат в этих границах; невыполненные варианты остаются явными ограничениями | diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index d62706b7..358e9eaa 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -4111,3 +4111,12 @@ Production image ux-backup231:500 исходников/1060 compiled outputs с S3 uploads/restore230 и live UI230 повторно не запускались; семантика restore не менялась. Metadata before/after не является атомарной блокировкой файла от внешнего writer. [Документация file/read](https://help.mikrotik.com/docs/spaces/ROS/pages/2555971/Files). Далее232 — live UI save/test S3 с возвратом исходных storage settings, затем адресация backup при смене bucket/endpoint и version retention. Этап12.5 открыт. + +## 12.5.232 — сохранение Selectel S3 и проверка доступа в live UI (2026-10-14) + +Real Portal login, ordinary /backups/API, без mocks. Через UI сохранены временные Selectel endpoint/region/bucket/own random prefix/credentials и forcePathStyle=false; PUT storage200, POST test200 с lastTestAt/без lastTestError. Secret отсутствует в DTO и очищен из поля после save. После reload на390px постоянный badge «Проверено ранее» сохранён; horizontal overflow0/page errors0. Файлы не выгружались, restore не выполнялся; empty prefix не требует S3 version cleanup. [UI](ux-ui/acceptance/s3-ui232.json). + +Первый preflight отклонил изменение settings, потому что на main включено автоматическое расписание; до snapshot не было записей. После private snapshot storage/schedule/catalog проверено remote catalog0, расписание приостановлено штатным PUT schedule200. Первая UI серия прошла save/test, но ошибочно ожидала временный toast после reload. Harness исправлен на shipped постоянный badge, новый полный прогон passed; приложение/стили не изменялись. [Первый harness](ux-ui/acceptance/s3-ui232-first.json). + +Cleanup в SQL transaction восстановил все исходные поля двух singleton records, включая secret/updatedAt/history; все10 catalog rows совпали точно. Backend перезапущен для загрузки исходного расписания и healthy на image ux-backup231. Private snapshot и local S3 credential JSON удалены. [Точная очистка](ux-ui/acceptance/storage232-cleanup.json). Секреты/скриншоты credential forms не опубликованы, пароли CHR не менялись. Frontend ux-routing218 сохранён. Следующий233 — проверить и защитить адресацию существующих backups при смене S3 bucket/endpoint. Version retention приложения и остальные группы остаются открытыми; этап12.5 открыт. + diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index d110aff8..12c50010 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ # Тестовый сервер UX/UI — 2026-10-10 -Актуальное продолжение 2026-10-14: блоки230–231 — реальные native backup обоих CHR в S3 и ограниченный restore собственного bridge приняты, fixture/versions очищены. Частичный synthetic fallback удалён; native exports читаются /file/read порциями<=32768 bytes с общим deadline120s и пределом8 МиБ. HTTP13 (включая70КБ/UTF-8 boundary/partial/change/size cap) и native small exports обоих CHR прошли. Backend ux-backup231/frontend ux-routing218 healthy. Далее232 — live UI сохранение/проверка S3; смена bucket/endpoint, retention и расширенная приёмка открыты. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:230–231 — исправлен нативный backup/export, S3 download и ограниченный restore собственного bridge приняты; /file/read поддерживает порции и8 МиБ,13 HTTP и оба CHR passed.232 — real UI save/test Selectel S3 HTTP200, vHosted/secret clearing/mobile receipt подтверждены. Исходные storage/schedule и все10 catalog rows восстановлены точно, backend ux-backup231 healthy/frontend ux-routing218. Далее233 — защита backup при смене bucket/endpoint; retention и расширенная приёмка открыты. Этап12.5 открыт. | Параметр | Проверенное состояние | | --- | --- | diff --git a/docs/ux-ui/acceptance/s3-ui232-first.json b/docs/ux-ui/acceptance/s3-ui232-first.json new file mode 100644 index 00000000..9f678f9b --- /dev/null +++ b/docs/ux-ui/acceptance/s3-ui232-first.json @@ -0,0 +1,10 @@ +{ + "date": "2026-10-14", + "block": "12.5.232", + "noMocks": true, + "passed": false, + "schedulePaused": true, + "failure": { + "name": "Error" + } +} diff --git a/docs/ux-ui/acceptance/s3-ui232.json b/docs/ux-ui/acceptance/s3-ui232.json new file mode 100644 index 00000000..70bcc46d --- /dev/null +++ b/docs/ux-ui/acceptance/s3-ui232.json @@ -0,0 +1,17 @@ +{ + "date": "2026-10-14", + "block": "12.5.232", + "noMocks": true, + "passed": true, + "schedulePaused": true, + "realPortalLogin": true, + "saveStatus": 200, + "testStatus": 200, + "virtualHosted": true, + "secretCleared": true, + "secretNotInDto": true, + "mobileReceiptPreserved": true, + "pageErrors": 0, + "uploads": 0, + "restores": 0 +} diff --git a/docs/ux-ui/acceptance/storage232-cleanup.json b/docs/ux-ui/acceptance/storage232-cleanup.json new file mode 100644 index 00000000..a0d39b1d --- /dev/null +++ b/docs/ux-ui/acceptance/storage232-cleanup.json @@ -0,0 +1,11 @@ +{ + "date": "2026-10-14", + "block": "12.5.232", + "storageAllFieldsRestored": true, + "scheduleAllFieldsRestored": true, + "catalogAllFieldsMatched": true, + "catalogRows": 10, + "secretFilesRemoved": true, + "backendRestartedHealthy": true, + "backendImage": "ux-backup231" +} \ No newline at end of file