chore(test): подтвердить исправление proxy timeout на production-стенде

This commit is contained in:
Denozordec committed 2026-10-08 09:46:25 +07:00
1 parent aa7dbdf608
commit 47f747586c
9 files changed
+174 -7

No files matched your search

+5 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5
Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. ROS-8/9 real API/SQL/native приняты в границах12.5.23; browser pair/duration change и delete приняты в12.5.24. ROS-2 authentication failure принят в12.5.25. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md).
Статус на2026-10-08: backend8782054/frontendaa7dbdf, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. ROS-8/9 real API/SQL/native приняты в границах12.5.23; browser pair/duration change и delete приняты в12.5.24. ROS-2 authentication failure принят в12.5.25. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md).
## Паспорт стенда
@@ -145,3 +145,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove
## Исправление Next proxy timeout — 2026-10-08
12.5.26 [real frontend500/backend error-history](ux-ui/acceptance/speed-unreachable-proxy-before-2026-10-08.json) выявил30s proxy timeout. Локально proxyTimeout180s; реальная Next proxy regression31s/TypeScript/ESLint passed. Backend сохраняет предыдущий TX42; native can not connect не подтверждён. Runtime8782054 прежний; destination восстановлен/testprobe удалена/temporarycontainers-network-3018 закрыты. Следующий12.5.27 — build/real browser retry/deployment исправленного frontend.
## Новый frontend proxy timeout — 2026-10-08
12.5.27 [real browser timeout502](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json), [frontend deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json) passed. Frontendaa7dbdf/proxy180s, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-aa7dbdf/BACKEND_IMAGE_TAG=ux-8782054. Основной DBcontrol совпал. Isolatedhost/probe восстановлены/удалены, temporarycontainers/network/3018 закрыты. Это transport timeout, не native can not connect; техническая подпись timeout остаётся ограничением UX. Следующий12.5.28 — ROS-3 interface/address/after-ping.
+2 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-08: 12.5.26 обнаружил proxy-дефект: при недоступном назначении Next обрывал запрос через30s/HTTP500, backend сохранил error/history и прежний TX42. Локально proxyTimeout180s исправлен, regression31s/typecheck/ESLint прошли. Runtime8782054 прежний. Следующий12.5.27 — frontend build, повторная real browser timeout-проверка и deployment. Native can not connect ещё не подтверждён.
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный12.5 открыты.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## Актуальная точка продолжения — 2026-10-08
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Browser-смена пары/длительности и удаление во время native-теста приняты в12.5.24. Реальный отказ bandwidth-аутентификации принят в12.5.25. 12.5.26 обнаружил и локально исправил30s timeout Next proxy. Следующий12.5.27 — новый frontend build/real browser timeout/deployment. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Browser-смена пары/длительности и удаление во время native-теста приняты в12.5.24. Реальный отказ bandwidth-аутентификации принят в12.5.25. 12.5.26 обнаружил и локально исправил30s timeout Next proxy. Исправленный frontendaa7dbdf развёрнут и проверен в12.5.27; backend8782054 прежний. Следующий12.5.28 — ROS-3: интерфейсы, адрес bandwidth-test и after-ping. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
+13 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-08: 12.5.26 обнаружил proxy-дефект: при недоступном назначении Next обрывал запрос через30s/HTTP500, backend сохранил error/history и прежний TX42. Локально proxyTimeout180s исправлен, regression31s/typecheck/ESLint прошли. Runtime8782054 прежний. Следующий12.5.27 — frontend build, повторная real browser timeout-проверка и deployment. Native can not connect ещё не подтверждён.
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный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.27 — приёмка и deployment исправленного Next proxy (2026-10-08)
Frontend production-образ sourceaa7dbdf608ca4da4986826fca956543f40922841 собран из чистого предыдущего context8782054 с зафиксированным next.config.ts; git diff подтвердил, что это единственное изменение runtime source frontend. Build/встроенный TypeScript passed; proxyTimeout180000 отражён в build config. Backend image8782054 не менялся.
[Real browser/native timeout](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json): новый frontend/старый backend в выделенной БД и Docker network. Длительный bandwidth REST запрос к назначению192.0.2.250 завершился транспортным timeout без native rows. Теперь UI получил структурированныйHTTP502 backend вместо proxy500/ECONNRESET. Probe lastStatuserror, previousTX42 сохранён; одна history error/TXRXnull, понятное обработанное предупреждение в UI. Refresh/reload/error state/320px passed, nativeCalls1/POST[502]/JS0, без автоповтора и HTTP/RouterOS-моков. [Снимок](ux-ui/screens/speed-unreachable-error-real-320.png). Это REST timeout; RouterOS can not connect не подтверждён, успешного native completion не заявляем. Техническая смешанная подпись timeout пока сохраняется как ограничение UX.
[Deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json): MMAPP_IMAGE_TAG=ux-aa7dbdf, BACKEND_IMAGE_TAG=ux-8782054. Frontend imageSHAcd63b03b… и full revision label проверены. Backend8782054healthy/version1.0.0-test.8782054 не перезапускался. Контроль основной БД совпал: два enabled CHR,retention14,speedHistory5; restore не выполнялся. Приватная предыдущая env сохранена только на сервере, старый frontend image оставлен для отката. Новый frontend доступен через основной SSH localhost3000.
[Пять основных экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json): dashboard/servers/uptime-speed/settings/filters200, ПК/320px fits,0JSerrors/0API>=400, HTTP-моков нет. Temporaryfrontend/backend/network/3018 закрыты, destinationhost восстановлен и проверен, testprobes0; основной стенд/туннель сохранены.
Локальная regression31s/TypeScript/ESLint12.5.26 и real production browser proof подтверждают исправление proxy. ROS-2 transport timeout принят в этих границах; native can not connect/busy/disconnect/abort и Portal/multi-instance остаются открытыми. Следующий12.5.28 — ROS-3: фактический адрес native bandwidth-test и интерфейс after-ping. План/паспорт/протокол обновлены; локальный коммит без push.
## 12.5.26 — тайм-аут недоступного назначения и исправление Next proxy (2026-10-08)
[Real failure evidence](ux-ui/acceptance/speed-unreachable-proxy-before-2026-10-08.json): source8782054, выделенная БД, назначение2 временно заменено в app DB на192.0.2.250. Реальный bandwidth POST от CHR1 не вернул native rows до30s. Backend записал history error/TXRXnull и сохранил предыдущий probeTX42; frontend rewrite оборвал запрос с socket hang up/ECONNRESET и вернулHTTP500 раньше структурированного ответа backend. Целевая UI-проверка отклонила500; она не объявлена passed. Это транспортный timeout, не подтверждённый native can not connect.
+13 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-08: 12.5.26 обнаружил proxy-дефект: при недоступном назначении Next обрывал запрос через30s/HTTP500, backend сохранил error/history и прежний TX42. Локально proxyTimeout180s исправлен, regression31s/typecheck/ESLint прошли. Runtime8782054 прежний. Следующий12.5.27 — frontend build, повторная real browser timeout-проверка и deployment. Native can not connect ещё не подтверждён.
Актуальное продолжение 2026-10-08: 12.5.27 завершён — frontendaa7dbdf/proxy180s собран, real browser timeout получил502 вместо500, previousTX42/historyerror сохранены, native1/без автоповтора/JS0/320fits. Frontend развёрнут, backend8782054healthy, пять основных экранов/контрольБД passed. Следующий12.5.28 — ROS-3: выбор интерфейса, фактический адрес bandwidth-test и after-ping. Native can not connect/busy/disconnect/abort и полный12.5 открыты.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -1226,3 +1226,15 @@ Temporaryfrontend/backend/network удалены,3018туннель закрыт
В установленном Next16.2.4 найден default proxyTimeout30000. В next.config.ts задан experimental.proxyTimeout180000, дольше120s ожидания speed-команды в UI. Добавлен tests/integration/next-proxy-timeout.mjs: загрузка реальной конфигурации проекта, настоящие loopback sockets и установленный Next proxy; delayed backend502JSON после31s доходит до caller. Регрессия, scoped frontend TypeScript и ESLint прошли. Сценарий использует fixture backend response для проверки proxy, не выдаётся за RouterOS proof. Backend/общие UI-компоненты не менялись.
Temporarycontainers/network/3018 закрыты; destinationhost восстановлен и проверен, testprobe удалена. Основной runtime8782054 прежний. Исправление требует нового frontend build: следующий12.5.27 — real browser timeout-проверка на новом образе и deployment после успеха. ROS-2 native can not connect/busy/disconnect/abort остаются открытыми. План и журнал обновлены, локальный коммит без push.
## 12.5.27 — приёмка и deployment исправленного Next proxy (2026-10-08)
Frontend production-образ sourceaa7dbdf608ca4da4986826fca956543f40922841 собран из чистого предыдущего context8782054 с зафиксированным next.config.ts; git diff подтвердил, что это единственное изменение runtime source frontend. Build/встроенный TypeScript passed; proxyTimeout180000 отражён в build config. Backend image8782054 не менялся.
[Real browser/native timeout](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json): новый frontend/старый backend в выделенной БД и Docker network. Длительный bandwidth REST запрос к назначению192.0.2.250 завершился транспортным timeout без native rows. Теперь UI получил структурированныйHTTP502 backend вместо proxy500/ECONNRESET. Probe lastStatuserror, previousTX42 сохранён; одна history error/TXRXnull, понятное обработанное предупреждение в UI. Refresh/reload/error state/320px passed, nativeCalls1/POST[502]/JS0, без автоповтора и HTTP/RouterOS-моков. [Снимок](ux-ui/screens/speed-unreachable-error-real-320.png). Это REST timeout; RouterOS can not connect не подтверждён, успешного native completion не заявляем. Техническая смешанная подпись timeout пока сохраняется как ограничение UX.
[Deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json): MMAPP_IMAGE_TAG=ux-aa7dbdf, BACKEND_IMAGE_TAG=ux-8782054. Frontend imageSHAcd63b03b… и full revision label проверены. Backend8782054healthy/version1.0.0-test.8782054 не перезапускался. Контроль основной БД совпал: два enabled CHR,retention14,speedHistory5; restore не выполнялся. Приватная предыдущая env сохранена только на сервере, старый frontend image оставлен для отката. Новый frontend доступен через основной SSH localhost3000.
[Пять основных экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json): dashboard/servers/uptime-speed/settings/filters200, ПК/320px fits,0JSerrors/0API>=400, HTTP-моков нет. Temporaryfrontend/backend/network/3018 закрыты, destinationhost восстановлен и проверен, testprobes0; основной стенд/туннель сохранены.
Локальная regression31s/TypeScript/ESLint12.5.26 и real production browser proof подтверждают исправление proxy. ROS-2 transport timeout принят в этих границах; native can not connect/busy/disconnect/abort и Portal/multi-instance остаются открытыми. Следующий12.5.28 — ROS-3: фактический адрес native bandwidth-test и интерфейс after-ping. План/паспорт/протокол обновлены; локальный коммит без push.
+6 -2
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-08
Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активные backend/frontend source8782054078304f36cc611876af2d17f87b857f60/version1.0.0-test.8782054. Backend healthy; оба образа обновлены в12.5.22.
Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активный backend source8782054078304f36cc611876af2d17f87b857f60/version1.0.0-test.8782054 healthy. Frontend sourceaa7dbdf608ca4da4986826fca956543f40922841/version1.0.0-test.aa7dbdf обновлён в12.5.27.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -14,7 +14,7 @@
| 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-8782054 и mmapp-test/frontend:ux-8782054;запущены |
| Образы приложения | mmapp-test/backend:ux-8782054 и mmapp-test/frontend:ux-aa7dbdf;запущены |
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
@@ -153,3 +153,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 [email protected]
## Исправление Next proxy timeout — 2026-10-08
12.5.26 [real frontend500/backend error-history](ux-ui/acceptance/speed-unreachable-proxy-before-2026-10-08.json) выявил30s proxy timeout. Локально proxyTimeout180s; реальная Next proxy regression31s/TypeScript/ESLint passed. Backend сохраняет предыдущий TX42; native can not connect не подтверждён. Runtime8782054 прежний; destination восстановлен/testprobe удалена/temporarycontainers-network-3018 закрыты. Следующий12.5.27 — build/real browser retry/deployment исправленного frontend.
## Новый frontend proxy timeout — 2026-10-08
12.5.27 [real browser timeout502](ux-ui/acceptance/speed-unreachable-error-2026-10-08.json), [frontend deployment](ux-ui/acceptance/deployed-frontend-aa7dbdf-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-aa7dbdf-2026-10-08.json) passed. Frontendaa7dbdf/proxy180s, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-aa7dbdf/BACKEND_IMAGE_TAG=ux-8782054. Основной DBcontrol совпал. Isolatedhost/probe восстановлены/удалены, temporarycontainers/network/3018 закрыты. Это transport timeout, не native can not connect; техническая подпись timeout остаётся ограничением UX. Следующий12.5.28 — ROS-3 interface/address/after-ping.
@@ -0,0 +1,35 @@
{
"date": "2026-10-08",
"backendSource": "8782054078304f36cc611876af2d17f87b857f60",
"frontendSource": "aa7dbdf608ca4da4986826fca956543f40922841",
"httpMocks": false,
"pages": [
{
"path": "/dashboard",
"status": 200,
"mobileFits": true
},
{
"path": "/servers",
"status": 200,
"mobileFits": true
},
{
"path": "/uptime?tab=speed",
"status": 200,
"mobileFits": true
},
{
"path": "/settings",
"status": 200,
"mobileFits": true
},
{
"path": "/filters",
"status": 200,
"mobileFits": true
}
],
"pageErrors": [],
"badApiResponses": []
}
@@ -0,0 +1,38 @@
{
"date": "2026-10-08",
"frontendSource": "aa7dbdf608ca4da4986826fca956543f40922841",
"backendSource": "8782054078304f36cc611876af2d17f87b857f60",
"frontendImageId": "sha256:cd63b03b0f540baa0f6528f4fafc422c60a91785438dcb68eba0d3837cb0598f",
"backendHealth": "healthy",
"health": {
"status": "ok",
"timestamp": "2026-10-08T02:44:41.578Z",
"version": "1.0.0-test.8782054",
"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
}
],
"retentionDays": 14,
"speedHistoryCount": 5
},
"mainRestorePerformed": false
}
@@ -0,0 +1,62 @@
{
"date": "2026-10-08",
"backendSource": "8782054078304f36cc611876af2d17f87b857f60",
"frontendSource": "aa7dbdf608ca4da4986826fca956543f40922841",
"database": "mmapp_acceptance_20261007",
"httpMocks": false,
"routerOsMocks": false,
"nativeStatuses": [],
"httpStatus": 502,
"errorMessage": "BTTest timeout/socket hang up: проверь доступность destination, /tool bandwidth-server, firewall и корректность интерфейсов",
"runId": "speed-1791427383920",
"snapshot": {
"lastStatus": "error",
"previousTxPreserved": true,
"rx": null
},
"history": {
"id": "speed-1791427383920",
"probeId": "acceptance-browser-unreachable",
"srcServerId": "1",
"dstServerId": "2",
"srcInterface": "",
"dstInterface": "",
"protocol": "tcp",
"direction": "transmit",
"durationSec": 3,
"txAvgMbps": null,
"rxAvgMbps": null,
"status": "error",
"error": "BTTest timeout/socket hang up: проверь доступность destination, /tool bandwidth-server, firewall и корректность интерфейсов",
"createdAt": "2026-10-08T02:43:32.523Z",
"srcAddress": null,
"dstAddress": null,
"srcInterfaceAddress": null,
"dstInterfaceAddress": null,
"afterBtPing": {
"rttMs": null,
"lossPct": null,
"error": null
}
},
"uiErrorVisible": true,
"reloadPreserved": true,
"mobileFits": true,
"nativeCalls": 1,
"postStatuses": [
502
],
"pageErrors": [],
"limits": [
"Destination host changed to reserved documentation address only in isolated application database, RouterOS configuration untouched",
"Previous TX42 seeded as DB fixture",
"Auth false on SSH-only test stand, Portal SSO not covered",
"Reserved destination caused REST transport timeout; native can not connect not confirmed, busy/disconnect/abort pending"
],
"cleanup": {
"destinationHostRestored": true,
"testProbeRemoved": true,
"temporaryContainersNetworkAndTunnelRemoved": true,
"mainHistoryCountUnchanged": 5
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB