diff --git a/deploy/docker-compose.test.yml b/deploy/docker-compose.test.yml index 93805d25..90aaf7e2 100644 --- a/deploy/docker-compose.test.yml +++ b/deploy/docker-compose.test.yml @@ -58,7 +58,7 @@ services: retries: 10 backend: - image: mmapp-test/backend:${MMAPP_IMAGE_TAG:?set MMAPP_IMAGE_TAG} + image: mmapp-test/backend:${BACKEND_IMAGE_TAG:-${MMAPP_IMAGE_TAG:?set MMAPP_IMAGE_TAG}} container_name: mmapp-test-backend restart: unless-stopped logging: diff --git a/deploy/env.test.example b/deploy/env.test.example index c7ae6ec0..be42f6d1 100644 --- a/deploy/env.test.example +++ b/deploy/env.test.example @@ -3,6 +3,8 @@ POSTGRES_PASSWORD= AUTH_JWT_SECRET= MMAPP_IMAGE_TAG=ux-673e5ba +# Optional backend-only image tag; blank uses MMAPP_IMAGE_TAG. +BACKEND_IMAGE_TAG= AUTH_REQUIRED=false AUTH_ISSUER=https://auth.test.local AUTH_PORTAL_URL=http://localhost:5175 diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 284a13e3..41284fd6 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-07: стенд161.104.46.222/source673e5ba развёрнут; PG-1 проверен в границах bootstrap/restart/schema/control-row, PG-2 проверен архивом и отдельной БД, PG-5 — реальными конкурентными backup/restore HTTP200/409. PG-7 — HTTP RBAC 401/403 при AUTH_REQUIRED=true, без доказательства отсутствия процессов и реального Portal SSO. Native TCP transmit/receive/both по3s и первоначальный отказ подключения проверены на паре CHR; прочие ROS/PG/Q/интеграционные сценарии остаются открытыми. [PG evidence](ux-ui/acceptance/pg-backup-auth-2026-10-07.json), [паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md), [план](ux-ui-plan.md). +Статус на2026-10-07: основнойbackend4c12c55/frontend673e5ba развёрнуты,healthy иrealbrowser smoke passed. PG-1/2/5 иPG-3/4 принятывописанныхконтрольныхграницах; integratedPG-6 принятдляодногоisolatedbackend в12.5.17 (HTTP/UDP/scheduler/backgroundSQL/restore/restart),безкоординациидругихпроцессов. PG-7 ранееHTTP-RBAC,Portal/browserrestore ещёнеприняты. NativeTCPspeed ипервыйотказподключенияпройдены;остальнойROS/Q/интеграции открыты. [Паспорт](ux-ui-test-server.md),[журнал](ux-ui-progress.md). ## Паспорт стенда @@ -101,3 +101,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove ## Политика выключенных серверов — 2026-10-07 12.5.16 по явномувыборупользователя убрал намеренноеHome Router исключение изuptime/RESTping; scheduledspeed игнорируетdisabledendpoint, manualspeedотказдосети. [RealPG/CHRматрица](ux-ui/acceptance/monitoring-enabled-2026-10-07.json) passed. Основнойruntime673e5ba не обновлён;integratedPG-6/deployment12.5.17 впереди. + +## IntegratedPG-6 иdeployment — 2026-10-07 + +[12.5.17](ux-ui/acceptance/integrated-pg6-2026-10-07.json) подтвердилsingle-instanceadmission/drainHTTP/UDP/scheduler/backgroundwrite,restore200 ивозобновлениеUDP. [Deployment](ux-ui/acceptance/deployed-4c12c55-2026-10-07.json) основнойbackend4c12c55healthy/контрольБДpassed,frontend673e5ba прежний. Multi-instance/Portal/browserrestore/остальныеинтеграции требуютпродолжения12.5.18. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index af153a58..b0f33748 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,6 +1,6 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-07:12.5.16 завершён появномувыборупользователя — disabled исключаетвсетипыизuptime/RESTping/scheduledspeed; ручнойspeedотказдосети. RealPG/CHRматрица3типовпрошла,0новыхdisabledсэмплов;HTTP/RBAC,16persistence tests иbuild passed. Runtime673e5ba не обновлён. Следующий12.5.17 — integratedPG-6 иdeployment; вся12.5 ещёоткрыта. +Актуальное продолжение 2026-10-07:12.5.17 завершён — integratedPG-6 принятдляодногоisolatedbackend (HTTP/UDP/SQL/scheduler/background drain→restore→restart). Backend4c12c55 собран/развёрнутнаосновномтестовомстенде,healthy/контрольБД/3API200/browser3screens320px passed. Frontend673e5ba сохранён. Следующий12.5.18 — browser/RBAC restore иоставшиесясценариипротокола;12.5 остаётсяоткрытой. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 3a7a597b..5bf7bb49 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-07:12.5.16 завершён появномувыборупользователя — disabled исключаетвсетипыизuptime/RESTping/scheduledspeed; ручнойspeedотказдосети. RealPG/CHRматрица3типовпрошла,0новыхdisabledсэмплов;HTTP/RBAC,16persistence tests иbuild passed. Runtime673e5ba не обновлён. Следующий12.5.17 — integratedPG-6 иdeployment; вся12.5 ещёоткрыта. +Актуальное продолжение 2026-10-07:12.5.17 завершён — integratedPG-6 принятдляодногоisolatedbackend (HTTP/UDP/SQL/scheduler/background drain→restore→restart). Backend4c12c55 собран/развёрнутнаосновномтестовомстенде,healthy/контрольБД/3API200/browser3screens320px passed. Frontend673e5ba сохранён. Следующий12.5.18 — browser/RBAC restore иоставшиесясценариипротокола;12.5 остаётсяоткрытой. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -34,6 +34,18 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. | +## 12.5.17 — общая проверка PG-6 и обновление backend тестового стенда (2026-10-07) + +[Integrated PG-6 evidence](ux-ui/acceptance/integrated-pg6-2026-10-07.json): source4c12c55, настоящееbuildApp/API/worker/PG18.6, temporarycontainer иmmapp_acceptance_20261007. SQLsettings temporarilyвключилиUDP4749 внутриконтейнера иlocalhostexporter map; CHR traffic-flow конфигурациянеизменялась. ArchiveполученреальнымGETbackup. ВодноминтервалезадержаныHTTPhandler, workerSQLчерезACCESS EXCLUSIVE lock settingstable иbackground SQLtask черезproductionregistry. + +Restore ждалHTTPhandler,новыеAPIGET409. ПослеHTTPcleanup UDPsocket освободилсяпри ещёзаблокированнойSQLзаписи. ПослеосвобожденияSQLworkerзавершился и1500bytes datagramсохранились; scheduler admissionpaused/activejobs0. Доreleasebackground psqlprocesses0/restoreне завершён, backgroundwrite ещёне выполнена. Послеrelease записьretention17 завершилась,restore200/oktrueбезwarnings вернулархивнуюretention14 иисходныйflow baseline. Послеrestart workerboundtrue/schedulerresumed, новыйUDPdatagram дал+1500bytes. Fixturebackground выполняетреальнуюSQLчерезregistry, анеRouterOSbackup/certificate; ихконкретныемеханизмыпроверенылокальнораньше. ЭтоPG-6 дляодногоэкземпляра, безмежхостовойкоординации. Temporarysettings/port/mgmtIP восстановлены, worker/jobs/pool/temporarycontainer штатноостановлены. + +[Deployment evidence](ux-ui/acceptance/deployed-4c12c55-2026-10-07.json): backend imageux-4c12c55,fullrevision4c12c55c9d4ca1fda2b901193a4969ba0e33e797,version1.0.0-test.4c12c55. Сборкана161.104.46.222 поCI-style context (база673e5ba, committedbackend/src/package4c12c55,безenv/лицензий/node_modules) прошла; PostgreSQLclient18.6 сохранён. ImageIDsha256:57878e320b7272edcc6efe1f6f5c140295510c85cb79b8ca12a900f7654cd917. Передupdateприватныйbackup546550bytes/SHA2701cc2fba4aa0ac34fe79ad5576012b775a8d4db7f1ec27cbc0c61342ed37cb сохранёнтольконасервере0600,контрольныеserverID/IP/enabled,retention14 и9миграций послеupdate совпали. + +ComposeдобавленoptionalBACKEND_IMAGE_TAG, которыйпереопределяеттолькоbackend; default сохраняетMMAPP_IMAGE_TAG. На стендеMMAPP_IMAGE_TAG=ux-673e5ba/BACKEND_IMAGE_TAG=ux-4c12c55: frontendнепересобирался,егоimage/revision673e5ba прежние. ComposeSHA3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f совпаллокально/насервере,config--quiet passed. AUTH_REQUIREDfalse/SSH-only ports сохранены. Backendhealthy,health/APIauthconfig/servers/speed-test-runs200. Первыйsmoke ошибочноиспользовал/uptime/speed/history404; correctedcanonical/uptime/speed-test/runs200,продуктовогодефектаздесьнет. + +[Real browser smoke](ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json): dashboard/servers/filters200,320px fits,0JSerrors/0API>=400,HTTP-моковнет. RestoreосновнойБД не выполнялся;разрушающиесценарииоставалисьввыделеннойБД. Полныйпротоколещёоткрыт:Portal/browserrestore flow,остальныеnative/network/integrations иmulti-instanceконтрольнеприняты. Следующий12.5.18 — browser/RBACrestore иоставшиесясценарии. Локальныйкоммитбезpush. + ## 12.5.16 — выключенные серверы всех типов исключены из мониторинга (2026-10-07) Аудит уточнилпричину12.5.15: uptime/RESTping намеренноиспользовалиenabled OR type=home-router, скомментариемобисключениидляLAN. Это существующееправило, непросто случайныйSQLдефект. Пользовательявновыбрал «Не опрашивать выключенные серверы любых типов». ПоэтомуисключениеHome Router удаленоосознанно, политикавключённоститеперьобщаядлявсехтипов. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index bf6373c2..516e01ee 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-07:12.5.16 завершён появномувыборупользователя — disabled исключаетвсетипыизuptime/RESTping/scheduledspeed; ручнойspeedотказдосети. RealPG/CHRматрица3типовпрошла,0новыхdisabledсэмплов;HTTP/RBAC,16persistence tests иbuild passed. Runtime673e5ba не обновлён. Следующий12.5.17 — integratedPG-6 иdeployment; вся12.5 ещёоткрыта. +Актуальное продолжение 2026-10-07:12.5.17 завершён — integratedPG-6 принятдляодногоisolatedbackend (HTTP/UDP/SQL/scheduler/background drain→restore→restart). Backend4c12c55 собран/развёрнутнаосновномтестовомстенде,healthy/контрольБД/3API200/browser3screens320px passed. Frontend673e5ba сохранён. Следующий12.5.18 — browser/RBAC restore иоставшиесясценариипротокола;12.5 остаётсяоткрытой. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -1112,3 +1112,15 @@ Customdump иSQL содержатприватныеданные: tempdirectory07 Временныеspeed probesудалены,server3 восстановленhome-router/enabledfalse, temporarycontainersудалены--rm. Рабочийстенд/source673e5ba/healthok инеизменённаяосновнаяБДсохранены. RouterOSконфигурациянеизменялась;толькоreadonlyresource/identity. SHA256compiledpatch совпалслокальным. Локальноspeed-test HTTP/RBAC (26invalidcases/401/403/dependencies),16speed-run-persistence tests,contracts/backend build иdiff-check прошли. Новыетривиальныемок-тестыSQLpredicate не добавлялись;поведениедоказано реальнойquery/collector матрицей. Новыйкоднеразвёрнутнаосновномстенде. ПолныйintegratedPG-6,Portal/browserrestore ипрочие12.5 остаютсяоткрытыми. Следующий12.5.17 — integrated HTTP/scheduler/background/UDP quiescence иdeployment проверенногообраза. Локальныйкоммитбезpush. + +## 12.5.17 — общая проверка PG-6 и обновление backend тестового стенда (2026-10-07) + +[Integrated PG-6 evidence](ux-ui/acceptance/integrated-pg6-2026-10-07.json): source4c12c55, настоящееbuildApp/API/worker/PG18.6, temporarycontainer иmmapp_acceptance_20261007. SQLsettings temporarilyвключилиUDP4749 внутриконтейнера иlocalhostexporter map; CHR traffic-flow конфигурациянеизменялась. ArchiveполученреальнымGETbackup. ВодноминтервалезадержаныHTTPhandler, workerSQLчерезACCESS EXCLUSIVE lock settingstable иbackground SQLtask черезproductionregistry. + +Restore ждалHTTPhandler,новыеAPIGET409. ПослеHTTPcleanup UDPsocket освободилсяпри ещёзаблокированнойSQLзаписи. ПослеосвобожденияSQLworkerзавершился и1500bytes datagramсохранились; scheduler admissionpaused/activejobs0. Доreleasebackground psqlprocesses0/restoreне завершён, backgroundwrite ещёне выполнена. Послеrelease записьretention17 завершилась,restore200/oktrueбезwarnings вернулархивнуюretention14 иисходныйflow baseline. Послеrestart workerboundtrue/schedulerresumed, новыйUDPdatagram дал+1500bytes. Fixturebackground выполняетреальнуюSQLчерезregistry, анеRouterOSbackup/certificate; ихконкретныемеханизмыпроверенылокальнораньше. ЭтоPG-6 дляодногоэкземпляра, безмежхостовойкоординации. Temporarysettings/port/mgmtIP восстановлены, worker/jobs/pool/temporarycontainer штатноостановлены. + +[Deployment evidence](ux-ui/acceptance/deployed-4c12c55-2026-10-07.json): backend imageux-4c12c55,fullrevision4c12c55c9d4ca1fda2b901193a4969ba0e33e797,version1.0.0-test.4c12c55. Сборкана161.104.46.222 поCI-style context (база673e5ba, committedbackend/src/package4c12c55,безenv/лицензий/node_modules) прошла; PostgreSQLclient18.6 сохранён. ImageIDsha256:57878e320b7272edcc6efe1f6f5c140295510c85cb79b8ca12a900f7654cd917. Передupdateприватныйbackup546550bytes/SHA2701cc2fba4aa0ac34fe79ad5576012b775a8d4db7f1ec27cbc0c61342ed37cb сохранёнтольконасервере0600,контрольныеserverID/IP/enabled,retention14 и9миграций послеupdate совпали. + +ComposeдобавленoptionalBACKEND_IMAGE_TAG, которыйпереопределяеттолькоbackend; default сохраняетMMAPP_IMAGE_TAG. На стендеMMAPP_IMAGE_TAG=ux-673e5ba/BACKEND_IMAGE_TAG=ux-4c12c55: frontendнепересобирался,егоimage/revision673e5ba прежние. ComposeSHA3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f совпаллокально/насервере,config--quiet passed. AUTH_REQUIREDfalse/SSH-only ports сохранены. Backendhealthy,health/APIauthconfig/servers/speed-test-runs200. Первыйsmoke ошибочноиспользовал/uptime/speed/history404; correctedcanonical/uptime/speed-test/runs200,продуктовогодефектаздесьнет. + +[Real browser smoke](ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json): dashboard/servers/filters200,320px fits,0JSerrors/0API>=400,HTTP-моковнет. RestoreосновнойБД не выполнялся;разрушающиесценарииоставалисьввыделеннойБД. Полныйпротоколещёоткрыт:Portal/browserrestore flow,остальныеnative/network/integrations иmulti-instanceконтрольнеприняты. Следующий12.5.18 — browser/RBACrestore иоставшиесясценарии. Локальныйкоммитбезpush. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index e7cca07c..b5ca30ee 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ # Тестовый сервер UX/UI — 2026-10-07 -Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активный source HEAD673e5ba444ced304ea099a99108964e1c471482f;версия1.0.0-test.673e5ba. +Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активныйbackendsource4c12c55c9d4ca1fda2b901193a4969ba0e33e797/version1.0.0-test.4c12c55;frontendsource673e5ba остаётся прежним. | Параметр | Проверенное состояние | | --- | --- | @@ -14,9 +14,9 @@ | PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed | | Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data | | Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска | -| Образы приложения | mmapp-test/backend:ux-673e5ba и mmapp-test/frontend:ux-673e5ba;запущены | +| Образы приложения | mmapp-test/backend:ux-4c12c55 и mmapp-test/frontend:ux-673e5ba;запущены | -Compose SHA256:99900547ed18b62e2cdcf9aae3975cbd6c3598a699a79dc04a4b7a0fec295348. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example). +Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example). ## Развёртывание приложения @@ -49,7 +49,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 Активные image IDs: -- backend: sha256:cfc25f3aa30ea39236af7eb60b4bbcdd7ae3ccc0663f5aff710a5f21776a9af2 +- backend: sha256:57878e320b7272edcc6efe1f6f5c140295510c85cb79b8ca12a900f7654cd917 - frontend: sha256:bfba2785b33a72965a029a3692178ba69c80eca75a12934c1dcc04c7970db53f После пересборки контрольныйid1/retention14 и9миграций сохранились. Подробные build logs и контрольные файлы расположены в /opt/mmapp-test/artifacts. Секреты остаются только в серверном.env0600. Временный SSH-туннель3000/8000 открыт в этой задаче;если процесс остановится,повторить команду выше. @@ -109,3 +109,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ## Enabled-only мониторинг — 2026-10-07 По явномувыборупользователя12.5.16 исключаетdisabledвсетипыизuptime/RESTping/scheduledspeed, manualspeedпроверяетобасерверадосети. [Realматрица3типов/0новыхdisabledсэмплов](ux-ui/acceptance/monitoring-enabled-2026-10-07.json) прошла. ВпроверочнойБДserver3 сноваhome-router/enabledfalse, temporaryspeedprobesудалены. Основнойruntime673e5ba не обновлён,healthok. Следующий12.5.17 — integratedPG-6/deployment. + +## Обновление backend иPG-6 — 2026-10-07 + +12.5.17 [integratedquiescence/restore/restart](ux-ui/acceptance/integrated-pg6-2026-10-07.json) passedдляодногоisolatedbackend. [Основнойbackend4c12c55](ux-ui/acceptance/deployed-4c12c55-2026-10-07.json) собран/развёрнут,healthy/sourcefullrevision/version1.0.0-test.4c12c55. Frontend673e5ba прежний. BACKEND_IMAGE_TAG=ux-4c12c55,MMAPP_IMAGE_TAG=ux-673e5ba. Приватныйpre-updatebackup вdata/acceptance-private,контрольосновнойБДserver1–2/retention14/9миграций совпал. [3realbrowser screens](ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json) 200/320fits/безJS/APIerrors. Полный12.5 иmulti-instanceприёмкаещёоткрыты. diff --git a/docs/ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json b/docs/ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json new file mode 100644 index 00000000..6b9a50d1 --- /dev/null +++ b/docs/ux-ui/acceptance/deploy-browser-4c12c55-2026-10-07.json @@ -0,0 +1,25 @@ +{ + "date": "2026-10-07", + "backendSource": "4c12c55", + "frontendSource": "673e5ba", + "mocks": false, + "pages": [ + { + "path": "/dashboard", + "status": 200, + "fits": true + }, + { + "path": "/servers", + "status": 200, + "fits": true + }, + { + "path": "/filters", + "status": 200, + "fits": true + } + ], + "pageErrors": [], + "badApiResponses": [] +} \ No newline at end of file diff --git a/docs/ux-ui/acceptance/deployed-4c12c55-2026-10-07.json b/docs/ux-ui/acceptance/deployed-4c12c55-2026-10-07.json new file mode 100644 index 00000000..a96f197b --- /dev/null +++ b/docs/ux-ui/acceptance/deployed-4c12c55-2026-10-07.json @@ -0,0 +1,91 @@ +{ + "date": "2026-10-07", + "backendSource": "4c12c55c9d4ca1fda2b901193a4969ba0e33e797", + "frontendSource": "673e5ba", + "health": { + "status": "ok", + "timestamp": "2026-10-07T16:47:41.332Z", + "version": "1.0.0-test.4c12c55", + "eventLoopDelayMs": 20, + "flowWorker": { + "alive": false, + "bound": false, + "pendingSize": 0, + "dropped": 0, + "packetsReceived": 0 + } + }, + "controlsMatch": true, + "controls": { + "servers": [ + { + "id": "1", + "host": "194.226.121.150", + "enabled": true + }, + { + "id": "2", + "host": "104.165.244.7", + "enabled": true + } + ], + "retention": [ + { + "id": "1", + "retention_days": 14 + } + ], + "migrations": [ + { + "id": "0000_postgresql" + }, + { + "id": "0002_compact_schema" + }, + { + "id": "0003_backup_s3" + }, + { + "id": "0004_geoip_settings" + }, + { + "id": "0005_flow_facts" + }, + { + "id": "0006_config_revisions" + }, + { + "id": "0007_flow_buckets_nat" + }, + { + "id": "0008_alert_outbox_outcomes" + }, + { + "id": "0009_alert_outbox_resolution" + } + ] + }, + "reads": [ + { + "path": "/api/auth/config", + "status": 200 + }, + { + "path": "/api/servers", + "status": 200 + }, + { + "path": "/api/uptime/speed-test/runs", + "status": 200 + } + ], + "initialSmokeCorrection": "History URL corrected from /api/uptime/speed/history (404) to /api/uptime/speed-test/runs", + "backendImageId": "sha256:57878e320b7272edcc6efe1f6f5c140295510c85cb79b8ca12a900f7654cd917", + "frontendImageId": "sha256:bfba2785b33a72965a029a3692178ba69c80eca75a12934c1dcc04c7970db53f", + "backendHealth": "healthy", + "composeSha256": "3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f", + "preUpdateBackup": { + "bytes": 546550, + "sha256": "2701cc2fba4aa0ac34fe79ad5576012b775a8d4db7f1ec27cbc0c61342ed37cb" + } +} \ No newline at end of file diff --git a/docs/ux-ui/acceptance/integrated-pg6-2026-10-07.json b/docs/ux-ui/acceptance/integrated-pg6-2026-10-07.json new file mode 100644 index 00000000..11c5357b --- /dev/null +++ b/docs/ux-ui/acceptance/integrated-pg6-2026-10-07.json @@ -0,0 +1,36 @@ +{ + "date": "2026-10-07", + "source": "4c12c55", + "database": "mmapp_acceptance_20261007", + "mode": "one real backend instance, HTTP plus UDP plus scheduler/background registry", + "mainDatabaseTouched": false, + "httpDrainedBeforeRestore": true, + "udpClosedWhileSqlBlocked": true, + "beforeBackgroundRelease": { + "workerAlive": false, + "schedulerPaused": true, + "runningJobs": 0, + "psqlProcesses": 0, + "udpBytesFlushed": 1500 + }, + "restore": { + "status": 200, + "receipt": { + "ok": true + }, + "backgroundWriteCompletedBeforeRestore": true, + "archiveControlRestored": true + }, + "afterRestore": { + "workerBound": true, + "schedulerResumed": true, + "newUdpBytesPersisted": 1500 + }, + "limits": [ + "Single isolated instance only; no coordination of other hosts/processes", + "Background fixture performs real SQL through production registry; not RouterOS backup or certificate operation", + "No Portal/browser restore UI tested", + "Main backend image remains673e5ba" + ], + "compiledArchiveSha256": "8535b54dac548a0ab6685bf0e41e8738a9aa3bab473934516c7e6fb93db260e1" +} \ No newline at end of file