chore(test): сохранить диагностику направленного bandwidth-тайм-аута

This commit is contained in:
Denozordec committed 2026-10-08 10:19:25 +07:00
1 parent a178becdcd
commit 34096cbfd5
8 files changed
+368 -4

No files matched your search

+4
View File
@@ -157,3 +157,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove
## Форма интерфейсов развёрнута — 2026-10-08
12.5.29 [real browser form](ux-ui/acceptance/browser-speed-form-2026-10-08.json), [deployment](ux-ui/acceptance/deployed-frontend-f194e72-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-f194e72-2026-10-08.json) passed. Frontendf194e72, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-f194e72/BACKEND_IMAGE_TAG=ux-8782054. Настоящий inventory/static-IP195, правильныйCLIinterfacefilter/пояснение/320fits/JS0, без моков/native-команд. Основнойcontrol совпал; fixtureprobe/temporarycontainers/network/3018 удалены. Следующий12.5.30 — read-only forward-native диагностика; timeout1→2 не исправлен этим UI-изменением.
## Read-only forward диагностика — 2026-10-08
12.5.30 [settings/state](ux-ui/acceptance/chr-bandwidth-diagnostics-2026-10-08.json), [jobs](ux-ui/acceptance/chr-job-classification-2026-10-08.json), [TCP2000 сDebian](ux-ui/acceptance/tcp-2000-2026-10-08.json). Server enabled/authtrue/session0, filter/NAT/mangle0, active main default routes, CPU0; TCP2000 reachable сDebian. ПричинаCHR1→CHR2timeout не установлена. Поздние REST401/CHR2-500 ограничивают дополнительные чтения. Native0/configchanges0, temporarycontainers завершены, mainruntimebackend8782054/frontendf194e72/history5 сохранены. Следующий12.5.31 — CLI/REST/соединения1→2, без изменения адресов и маршрутов.
+2 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-08: 12.5.29 завершён — frontendf194e72 собран/развёрнут, real browser form/CLI/static-IP priority/320px/JS0 passed без моков и native-команд. Пять основных экранов и контрольБД passed; backend8782054healthy прежний. Следующий12.5.30 — read-only диагностика native bandwidth1→2; forward timeout, multi-WAN и остальные внешние сценарии остаются открытыми.
Актуальное продолжение 2026-10-08: 12.5.30 read-only диагностика завершена: bandwidth-server enabled/authtrue/sessions0, filter-NAT-mangle0/default routesactive/CPU0; TCP2000 сDebian доступен наобоихCHR. Дополнительные RESTчтения401/500, причинаforwardtimeout неустановлена. Конфигурация не менялась/native0; runtimebackend8782054/frontendf194e72 прежний. Следующий12.5.31 — CLI противREST и наблюдение соединений для1→2, без изменения адресов/маршрутов.
Общий план проекта 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. Исправленный frontendaa7dbdf развёрнут и проверен в12.5.27; backend8782054 прежний. ROS-3 reverse2→1/native-afterping принят в12.5.28; forward timeout открыт. Форма frontendf194e72 проверена без моков и развёрнута в12.5.29. Следующий12.5.30 — read-only диагностика native bandwidth1→2. [Протокол](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 прежний. ROS-3 reverse2→1/native-afterping принят в12.5.28; forward timeout открыт. Форма frontendf194e72 проверена без моков и развёрнута в12.5.29. Read-only диагностика12.5.30 не установила причину. Следующий12.5.31 — CLI противREST и наблюдение соединений1→2 без изменения конфигурации. [Протокол](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.29 завершён — frontendf194e72 собран/развёрнут, real browser form/CLI/static-IP priority/320px/JS0 passed без моков и native-команд. Пять основных экранов и контрольБД passed; backend8782054healthy прежний. Следующий12.5.30 — read-only диагностика native bandwidth1→2; forward timeout, multi-WAN и остальные внешние сценарии остаются открытыми.
Актуальное продолжение 2026-10-08: 12.5.30 read-only диагностика завершена: bandwidth-server enabled/authtrue/sessions0, filter-NAT-mangle0/default routesactive/CPU0; TCP2000 сDebian доступен наобоихCHR. Дополнительные RESTчтения401/500, причинаforwardtimeout неустановлена. Конфигурация не менялась/native0; runtimebackend8782054/frontendf194e72 прежний. Следующий12.5.31 — CLI противREST и наблюдение соединений для1→2, без изменения адресов/маршрутов.
Общий план: [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.30 — read-only диагностика направленного bandwidth timeout (2026-10-08)
[RouterOS snapshot](ux-ui/acceptance/chr-bandwidth-diagnostics-2026-10-08.json): реальные GET двух CHR через сохранённые app credentials, backend8782054, SQL-read только выделеннойБД. Bandwidth-server enabledtrue/authenticatetrue/maxsessions100, sessions0; local filter/NAT/mangle пусты, main default routes активны, CPU0/freeMemory около827MB, licensep-unlimited. IPv4/source-address конфигурация сохранена как очищенные поля; script contents/passwords/license IDs не выводились. NativeBandwidthCommands0/configurationChanges0. Не читались raw-table/routing rules и не снималась трасса во время failing run, поэтому этот снимок не исключает остальные причины.
[TCP2000](ux-ui/acceptance/tcp-2000-2026-10-08.json): Debian161.104.46.222 установил по одному короткому TCP connection к194.226.121.150:2000 и104.165.244.7:2000; sockets закрыты. Это доступность сDebian, не доказательство путиCHR1→CHR2. Служба bandwidth-test использует TCP2000 по [документации MikroTik](https://help.mikrotik.com/docs/spaces/ROS/pages/103841820/Services); меню server sessions описано в [Bandwidth Test](https://help.mikrotik.com/docs/spaces/ROS/pages/7962644/Bandwidth%2BTest).
[Job classification](ux-ui/acceptance/chr-job-classification-2026-10-08.json): позжеCHR1 вернул два текущихjob с metadata/keys, безстроковыхпризнаковbandwidth-test/192.0.2.250/195.195.195.195. Исходные trace/script values не сохранены. По этому чтению нельзя заявлять наличие зависших bandwidth jobs. Первый дополнительный прогон завершилсяREST401 безdevice ID в отчёте; повторныйCHR1 read прошёл, CHR2 read получил500. Это отдельная наблюдаемая нестабильность REST, а не доказательство смены пароля или найденной причины forwardtimeout. Эти обращения не повторялись в цикле и не меняли доступ/конфигурацию.
Все temporary --rm containers завершены; основной backend8782054healthy/frontendf194e72 сохранены, main speedHistory5. Продуктовый код не менялся, UI/deployment не выполнялись. Этот диагностический блок завершён; ROS forward success не принят, причина1→2 timeout не установлена.
Следующий12.5.31 — сопоставить короткий native CLI наCHR1 сREST и наблюдением TCP2000; предварительно дочитать raw/routing rules при стабильном доступе. Существующие адреса/маршруты/учётные записи сохраняются. План/паспорт/протокол обновлены, локальный коммит без push.
## 12.5.29 — real browser форма интерфейсов и deployment frontend (2026-10-08)
Production frontend sourcef194e7269b1e0276f257b3fda28413958907a503 собран из чистого contextaa7dbdf с зафиксированным app/(main)/uptime/page.tsx. Git diff подтвердил, что это единственное runtime-изменение frontend; Dockerfile/deps/контракт не менялись. Production build/TypeScript внутри Docker passed; proxyTimeout180s сохранён. Backend image8782054 прежний.
+13 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-08: 12.5.29 завершён — frontendf194e72 собран/развёрнут, real browser form/CLI/static-IP priority/320px/JS0 passed без моков и native-команд. Пять основных экранов и контрольБД passed; backend8782054healthy прежний. Следующий12.5.30 — read-only диагностика native bandwidth1→2; forward timeout, multi-WAN и остальные внешние сценарии остаются открытыми.
Актуальное продолжение 2026-10-08: 12.5.30 read-only диагностика завершена: bandwidth-server enabled/authtrue/sessions0, filter-NAT-mangle0/default routesactive/CPU0; TCP2000 сDebian доступен наобоихCHR. Дополнительные RESTчтения401/500, причинаforwardtimeout неустановлена. Конфигурация не менялась/native0; runtimebackend8782054/frontendf194e72 прежний. Следующий12.5.31 — CLI противREST и наблюдение соединений для1→2, без изменения адресов/маршрутов.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -1266,3 +1266,15 @@ NativeCalls0/commandPOSTs[]: bandwidth-test в этом блоке не запу
[Пять основных экранов](ux-ui/acceptance/deploy-browser-f194e72-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200,ПК/320fits,0JSerrors/0API>=400,без HTTP-моков. Временные frontend/backend/network/3018 удалены,fixtureprobe удалена/count0. Основной стенд и SSH3000/8000 сохранены. Обновлённая форма доступна через localhost3000 при создании/редактировании speed-пробы.
Следующий12.5.30 — read-only диагностика native bandwidth1→2 перед повторными командами; forward timeout/multi-WAN/прочие ROS/Q/интеграции и полный12.5 открыты. План/паспорт/протокол обновлены, локальный коммит без push.
## 12.5.30 — read-only диагностика направленного bandwidth timeout (2026-10-08)
[RouterOS snapshot](ux-ui/acceptance/chr-bandwidth-diagnostics-2026-10-08.json): реальные GET двух CHR через сохранённые app credentials, backend8782054, SQL-read только выделеннойБД. Bandwidth-server enabledtrue/authenticatetrue/maxsessions100, sessions0; local filter/NAT/mangle пусты, main default routes активны, CPU0/freeMemory около827MB, licensep-unlimited. IPv4/source-address конфигурация сохранена как очищенные поля; script contents/passwords/license IDs не выводились. NativeBandwidthCommands0/configurationChanges0. Не читались raw-table/routing rules и не снималась трасса во время failing run, поэтому этот снимок не исключает остальные причины.
[TCP2000](ux-ui/acceptance/tcp-2000-2026-10-08.json): Debian161.104.46.222 установил по одному короткому TCP connection к194.226.121.150:2000 и104.165.244.7:2000; sockets закрыты. Это доступность сDebian, не доказательство путиCHR1→CHR2. Служба bandwidth-test использует TCP2000 по [документации MikroTik](https://help.mikrotik.com/docs/spaces/ROS/pages/103841820/Services); меню server sessions описано в [Bandwidth Test](https://help.mikrotik.com/docs/spaces/ROS/pages/7962644/Bandwidth%2BTest).
[Job classification](ux-ui/acceptance/chr-job-classification-2026-10-08.json): позжеCHR1 вернул два текущихjob с metadata/keys, безстроковыхпризнаковbandwidth-test/192.0.2.250/195.195.195.195. Исходные trace/script values не сохранены. По этому чтению нельзя заявлять наличие зависших bandwidth jobs. Первый дополнительный прогон завершилсяREST401 безdevice ID в отчёте; повторныйCHR1 read прошёл, CHR2 read получил500. Это отдельная наблюдаемая нестабильность REST, а не доказательство смены пароля или найденной причины forwardtimeout. Эти обращения не повторялись в цикле и не меняли доступ/конфигурацию.
Все temporary --rm containers завершены; основной backend8782054healthy/frontendf194e72 сохранены, main speedHistory5. Продуктовый код не менялся, UI/deployment не выполнялись. Этот диагностический блок завершён; ROS forward success не принят, причина1→2 timeout не установлена.
Следующий12.5.31 — сопоставить короткий native CLI наCHR1 сREST и наблюдением TCP2000; предварительно дочитать raw/routing rules при стабильном доступе. Существующие адреса/маршруты/учётные записи сохраняются. План/паспорт/протокол обновлены, локальный коммит без push.
+4
View File
@@ -165,3 +165,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 [email protected]
## Форма интерфейсов развёрнута — 2026-10-08
12.5.29 [real browser form](ux-ui/acceptance/browser-speed-form-2026-10-08.json), [deployment](ux-ui/acceptance/deployed-frontend-f194e72-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-f194e72-2026-10-08.json) passed. Frontendf194e72, backend8782054healthy прежний; MMAPP_IMAGE_TAG=ux-f194e72/BACKEND_IMAGE_TAG=ux-8782054. Настоящий inventory/static-IP195, правильныйCLIinterfacefilter/пояснение/320fits/JS0, без моков/native-команд. Основнойcontrol совпал; fixtureprobe/temporarycontainers/network/3018 удалены. Следующий12.5.30 — read-only forward-native диагностика; timeout1→2 не исправлен этим UI-изменением.
## Read-only forward диагностика — 2026-10-08
12.5.30 [settings/state](ux-ui/acceptance/chr-bandwidth-diagnostics-2026-10-08.json), [jobs](ux-ui/acceptance/chr-job-classification-2026-10-08.json), [TCP2000 сDebian](ux-ui/acceptance/tcp-2000-2026-10-08.json). Server enabled/authtrue/session0, filter/NAT/mangle0, active main default routes, CPU0; TCP2000 reachable сDebian. ПричинаCHR1→CHR2timeout не установлена. Поздние REST401/CHR2-500 ограничивают дополнительные чтения. Native0/configchanges0, temporarycontainers завершены, mainruntimebackend8782054/frontendf194e72/history5 сохранены. Следующий12.5.31 — CLI/REST/соединения1→2, без изменения адресов и маршрутов.
@@ -0,0 +1,269 @@
{
"date": "2026-10-08",
"backendSource": "8782054078304f36cc611876af2d17f87b857f60",
"readOnly": true,
"nativeBandwidthCommands": 0,
"routers": [
{
"id": 1,
"host": "194.226.121.150",
"reads": {
"/tool/bandwidth-server": {
"status": 200,
"rows": [
{
"enabled": "true",
"authenticate": "true",
"max-sessions": "100",
"allowed-addresses4": "",
"allowed-addresses6": ""
}
]
},
"/tool/bandwidth-server/session": {
"status": 200,
"rows": []
},
"/ip/firewall/filter": {
"status": 200,
"rows": []
},
"/ip/firewall/nat": {
"status": 200,
"rows": []
},
"/ip/firewall/mangle": {
"status": 200,
"rows": []
},
"/ip/route": {
"status": 200,
"rows": [
{
".id": "*80000001",
"dst-address": "0.0.0.0/0",
"gateway": "194.226.121.1",
"routing-table": "main",
"active": "true",
"dynamic": "true"
},
{
".id": "*80000003",
"dst-address": "0.0.0.0/0",
"gateway": "194.226.121.1",
"routing-table": "main",
"active": "true",
"dynamic": "false"
},
{
".id": "*20183020",
"dst-address": "194.226.121.0/24",
"gateway": "ether1",
"routing-table": "main",
"active": "true",
"dynamic": "true"
}
]
},
"/ip/address": {
"status": 200,
"rows": [
{
".id": "*1",
"interface": "ether1",
"address": "194.226.121.150/24",
"dynamic": "true",
"disabled": "false",
"invalid": "false"
}
]
},
"/system/resource": {
"status": 200,
"rows": [
{
"version": "7.24.5 (stable)",
"uptime": "12h55m31s",
"cpu-load": "0",
"free-memory": "827162624",
"total-memory": "1073741824"
}
]
},
"/system/script/job": {
"status": 200,
"rows": [
{
".id": "*746C",
"owner": "admin",
"started": "2026-10-08 06:04:35"
},
{
".id": "*7690",
"owner": "admin",
"started": "2026-10-08 06:11:57"
}
]
},
"/system/license": {
"status": 200,
"rows": [
{
"level": "p-unlimited",
"limited-upgrades": "false",
"next-renewal-at": "2099-12-02 03:00:00",
"deadline-at": "2100-01-01 03:00:00"
}
]
}
},
"connections": []
},
{
"id": 2,
"host": "104.165.244.7",
"reads": {
"/tool/bandwidth-server": {
"status": 200,
"rows": [
{
"enabled": "true",
"authenticate": "true",
"max-sessions": "100",
"allowed-addresses4": "",
"allowed-addresses6": ""
}
]
},
"/tool/bandwidth-server/session": {
"status": 200,
"rows": []
},
"/ip/firewall/filter": {
"status": 200,
"rows": []
},
"/ip/firewall/nat": {
"status": 200,
"rows": []
},
"/ip/firewall/mangle": {
"status": 200,
"rows": []
},
"/ip/route": {
"status": 200,
"rows": [
{
".id": "*80000002",
"dst-address": "0.0.0.0/0",
"gateway": "104.165.244.1",
"routing-table": "main",
"active": "true",
"dynamic": "true"
},
{
".id": "*80000003",
"dst-address": "0.0.0.0/0",
"gateway": "104.165.244.1",
"routing-table": "main",
"active": "true",
"dynamic": "false"
},
{
".id": "*20183010",
"dst-address": "104.165.244.0/24",
"gateway": "ether1",
"routing-table": "main",
"active": "true",
"dynamic": "true"
},
{
".id": "*20183030",
"dst-address": "195.195.195.195/32",
"gateway": "ether1",
"routing-table": "main",
"active": "true",
"dynamic": "true"
}
]
},
"/ip/address": {
"status": 200,
"rows": [
{
".id": "*1",
"interface": "ether1",
"address": "104.165.244.7/24",
"dynamic": "true",
"disabled": "false",
"invalid": "false"
},
{
".id": "*2",
"interface": "ether1",
"address": "195.195.195.195/32",
"dynamic": "false",
"disabled": "false",
"invalid": "false"
}
]
},
"/system/resource": {
"status": 200,
"rows": [
{
"version": "7.24.5 (stable)",
"uptime": "12h9m9s",
"cpu-load": "0",
"free-memory": "826843136",
"total-memory": "1073741824"
}
]
},
"/system/script/job": {
"status": 200,
"rows": [
{
".id": "*13FB",
"owner": "admin",
"started": "2026-10-08 05:03:35"
},
{
".id": "*1632",
"owner": "admin",
"started": "2026-10-08 05:11:57"
}
]
},
"/system/license": {
"status": 200,
"rows": [
{
"level": "p-unlimited",
"limited-upgrades": "false",
"next-renewal-at": "2099-12-02 02:00:00",
"deadline-at": "2100-01-01 02:00:00"
}
]
}
},
"connections": []
}
],
"limits": [
"Snapshot before any new native command; no traffic capture during failing run",
"Debian TCP probe does not establish reachability from CHR1",
"Filter/NAT/mangle read; raw table and routing rules not read in this block",
"Job content omitted to avoid disclosing script secrets; a later read failed 401, repeated CHR2 read failed 500",
"Cause of forward bandwidth timeout remains unconfirmed"
],
"cleanup": {
"temporaryContainersRemoved": true,
"nativeCommands": 0,
"configurationChanges": 0,
"mainHistoryCountUnchanged": 5,
"mainBackendHealth": "healthy"
},
"reportWrittenAtUtc": "2026-10-08T03:11:57.958934Z"
}
@@ -0,0 +1,49 @@
[
{
"id": 1,
"clock": {
"date": "2026-10-08",
"time": "06:14:41",
"timeZone": "Europe/Moscow"
},
"jobs": [
{
"id": "*76ED",
"keys": [
".id",
".nextid",
"owner",
"policy",
"started",
"trace",
"type"
],
"started": "2026-10-08 06:14:35",
"containsBandwidthTest": false,
"referencesDocumentationTarget": false,
"referencesStaticTarget": false
},
{
"id": "*76F4",
"keys": [
".id",
"owner",
"parent",
"policy",
"started",
"trace",
"type"
],
"started": "2026-10-08 06:14:41",
"containsBandwidthTest": false,
"referencesDocumentationTarget": false,
"referencesStaticTarget": false
}
]
},
{
"id": 2,
"readStatus": 500,
"errorType": "MikrotikError"
}
]
@@ -0,0 +1,14 @@
[
{
"host": "194.226.121.150",
"port": 2000,
"result": "connected",
"vantage": "Debian test host, not CHR1"
},
{
"host": "104.165.244.7",
"port": 2000,
"result": "connected",
"vantage": "Debian test host, not CHR1"
}
]