fix(terminal): запретить выключенные устройства и исправить средний RTT
This commit is contained in:
1 parent
5b3133ce73
commit
8b7bff165a
18 files changed
+647
-7
No files matched your search
@@ -781,3 +781,33 @@ Request-local receipt сохраняет подтверждённые createdIds
|
||||
**Runtime/фиксация.** Одна backend сборка ux-recursive88/version1.0.0-test.recursive88, image sha256:d358ec1d6ea87ea7f29a12cc4fd3c1a6a7929b854bcdc732d956c702fe4dc587. Backend/PG healthy, frontend ux-optimizer87 сохранён и принят браузером. Context optimizer87 final-c +6 backend файлов, override SHA de4caf2aced38ba7e490f6a459a19d359cc92cb5b098564b799c05bc86be1365; label не Git SHA, рабочее состояние до коммита. Entry/node --check/pg_restore18.6, compose --wait passed, apt cached. .env backup приватный, миграций нет. Один локальный commit без push. REST метод подтверждён [RouterOS REST API](https://help.mikrotik.com/docs/spaces/ROS/pages/47579162/REST%2BAPI).
|
||||
|
||||
Следующий89 — диагностика/терминал: реальный запуск, ограниченные команды, ошибки, права и контекст. Routing alternate-path/BFD sustained failover, IPv6/scale/physical disconnect/durable retry/Portal SSO и остальные внешние границы остаются открытыми. Квота38% использовано после блока; этап12.5 открыт.
|
||||
|
||||
## 12.5.89 — диагностика и терминал: реальные ответы и JWT-права (2026-10-09)
|
||||
|
||||
**Изменения.** Exec отклоняет enabled=false до создания клиента, включая локальную help-команду. Средний Ping RTT больше не берётся из time последнего пакета: используется подтверждённый native avg-rtt при received>0. Отсутствующий/неверный average или отсутствие полученных пакетов → ?, явный0ms при полученном ответе сохраняется. RosPingResult дополнен avg-rtt. Allowlist/сетевые правила/GUI не менялись.
|
||||
|
||||
| Проверка | Доказательство |
|
||||
| --- | --- |
|
||||
| Два disabled типа | Exec и все6 probe tools:16 ответов409, probeRequests0 |
|
||||
| Native терминал | Identity/resource/routes/OSPF/BFD, Ping3/3, ограниченный log read; неизвестная команда400 |
|
||||
| Native диагностика | Ping3/3, traceroute≤3 hops/1 probe/1s timeout, active route lookup, DF MTU probe |
|
||||
| DNS приложения | example.com A; .invalid502 без ложного output |
|
||||
| Средний RTT | Compiled exec formatter сверён с avg-rtt того же native Ping запроса |
|
||||
| JWT API | 401 none/invalid,403 reader/network writer,200 server writer/admin; native factory0 до разрешения |
|
||||
| Реальный UI | 8/8: две страницы×два CHR×1280/320, Ping5/5, ошибочный command сохранён |
|
||||
|
||||
**Приёмка.** [Native/API/RBAC отчёт](ux-ui/acceptance/diagnostics-terminal-2026-10-09.json). Read-only allowlist применяется обычным production API. Текст log print limit=1 не сохранён в Git, записана только длина. DNS выполняется на backend, что явно подписано в UI; не выдаётся за RouterOS DNS. Traceroute ограничен тремя хопами и не считается полным путём. MTU — первая успешная DF проба из существующего набора до1500, не доказательство максимального MTU/jumbo/SLA. Uncapped bandwidth endpoint не запускался: capped native smoke82 остаётся отдельным доказательством.
|
||||
|
||||
JWT тест использовал изолированный экземпляр compiled exec/probes routes, реальные credentials/native reads, временный локальный secret/issuer и настоящие подписи HS256. Проверены обе API группы и отсутствие native client до разрешения. В production AUTH_REQUIRED=false сохранён, Portal SSO/browser login этой проверкой не принят. Native configuration/пароли не изменялись.
|
||||
|
||||
**Браузер.** Настоящие deployed frontend/backend, без interception/mocks. Terminal400 сохраняет ввод; следующий resource request подтверждён, вывод содержит7.24.5, поле очищено и фокус возвращён. Probes Ping5/5 с правильным source/target, reload server context, document fits/pageerror0. [Browser отчёт](ux-ui/acceptance/browser-diagnostics-2026-10-09.json), [терминал320](ux-ui/screens/terminal-real-server1-320-2026-10-09.png), [диагностика320](ux-ui/screens/probes-real-server1-320-2026-10-09.png). Последний снимок просмотрен; значения не подменены моками. Frame/ReUI композиция прежняя.
|
||||
|
||||
**Проверки и оснастка.**58 профильных E2E terminal data/layout и probes data/source passed; exec/probes HTTP, signed JWT unit, backend TypeScript/ESLint/diff passed. Probes.cancel локальный HTTP тест сначала получил sandbox EACCES, повторён только он с разрешённым loopback: passed, включая abort настоящего MikrotikClient POST к локальной HTTP-фикстуре. Это не доказательство остановки процесса на CHR; UI сохраняет соответствующее пояснение.
|
||||
|
||||
Production image не содержит dev-only jose: первый fixture import завершился до native requests, подписи заменены native crypto. Следующая RBAC попытка меняла process.env после загрузки env объекта и получила200 вместо ожидаемого401 в изолированном приложении с выключенной авторизацией. Исправлен только fixture: snapshot/config authRequired/secret/issuer и восстановление finally. Успешные phase1 native проверки не повторялись; report объединяет их с исправленным RBAC и browser phase.
|
||||
|
||||
**Контроль.** Собственные disabled DB rows удалены по id/name/host, fixture containers завершены. IDs7 native коллекций×2 совпали до/после: interfaces/addresses/routes/OSPF instances/BGP connections/BFD config/IPsec peers. Оба CHR доступны, пароли прежние; public/default routes и195.195.195.195/32 сохранены. Никаких VPN объектов в этом read-only блоке не создавалось.
|
||||
|
||||
**Runtime.** Один backend build ux-diagnostics89/version1.0.0-test.diagnostics89, image sha256:97c1cff01efd5055d3811b742e293180d5999ff1e326e42242e5c975b5f70349. Backend/PG healthy, frontend ux-optimizer87 сохранён/принят. Context recursive88 +3 exec/type files, override SHA2ca8c80d13a2dcce8b09c905f2b65d7467892ee6918cc102caad2d15d90bacbf7; label не Git SHA. Entry/node --check/pg_restore18.6/compose --wait passed, dependencies/apt cached. .env backup приватный, миграций и frontend rebuild нет. Один локальный commit без push.
|
||||
|
||||
Продолжение90 — два собственных GRE пути OSPF/BFD, потеря primary, переход на alternate, packet observations и возврат. Сохраняются sustained BFD-only/физическая WAN failure/IPv6/масштаб/максимальная производительность/Portal SSO и другие внешние границы. Квота56% использовано после блока; этап12.5 открыт.
|
||||
Reference in new issue
Block a user