fix(ipsec): учитывать несколько сессий без ложного офлайн
This commit is contained in:
1 parent
cb6ec09312
commit
60b2e099f0
10 files changed
+272
-24
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-10: завершён12.5.112 — одна native сессия не подтверждает online нескольким клиентам; certificate/PSK aliases получают sessionAmbiguous, «Не определено» и сводку «—» вместо ложного нуля. Backend ux-alias112/frontend ux-alias112-version, обе версии1.0.0-test.alias112. State102/102, профильные проверки/build, E2E14 unique+2 enhanced reruns, live4/4, recovery original online и cleanup13 коллекций×2 passed. Следующий113 — duplicate native IDs/сертификат с несколькими identity refs; внешние Portal/Telegram ожидают настройки/разрешения.12.5 открыт.
|
||||
Актуальное продолжение 2026-10-10: завершён12.5.113 — несколько established сессий с одним ID больше не дают ложный офлайн; один клиент online без произвольного адреса/uptime, общие claims разных клиентов остаются «Не определено». State108/108, 8 профильных скриптов, backend build/ESLint, E2E16/16. Backend ux-sessions113/version1.0.0-test.sessions113, frontend ux-alias112-version/version1.0.0-test.alias112. Два live reader/API и два browser smoke passed; множественные сессии проверены контролируемым снимком. Следующий114 — один сертификат с несколькими identity и безопасность выбора объекта для операций.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).
|
||||
|
||||
@@ -1115,3 +1115,20 @@ Red-before state test остановился на ложном online; посл
|
||||
| --- | --- |
|
||||
| [ReUI Stats12](https://reui.io/preview/base/stats-12?ref=mcp) | Native ID → claims → подтверждено либо «—» |
|
||||
| [ReUI Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Контекст устройства → статус «Не определено» → пояснение → проверка Remote ID |
|
||||
|
||||
## 12.5.113 — IPsec: несколько сессий одного клиента без ложного офлайн (2026-10-10)
|
||||
|
||||
Исправлен mapper: ранее повторяющиеся established active-peers.id удалялись из индекса целиком, и даже единственный соответствующий клиент выглядел офлайн. Теперь индекс сохраняет группу сессий. Единственный клиент с совпадающим ID получает online=true; activeAddress/activeSince выдаются только при одной established сессии. При нескольких сессиях reader не выбирает произвольный lease/uptime. Claims считаются на группу: если её разделяют разные catalog clients, у них sessionAmbiguous и нет подтверждённого online/адреса, как в112. Начальные/завершающиеся сессии не подтверждают online.
|
||||
|
||||
Изменены backend/src/services/ipsec-live.ts, ipsec-state.test.ts и tests/e2e/ipsec-data.spec.ts. Контракт и существующие компоненты ReUI не менялись: таблица уже показывает «онлайн» без адреса. Проверены certificate/PSK, перестановка native rows, конфликт aliases, переход несколько→одна→нет established сессий. State108/108; все8 профильных скриптов, backend build, ESLint прошли. E2E16 unique passed33.6s: два новых сценария1280/320 и прежняя профильная регрессия IPsec.
|
||||
|
||||
На стенд собран/развёрнут только backend ux-sessions113/version1.0.0-test.sessions113. Source base cb6ec09/context build-alias112 плюс один явный override; source и compiled ipsec-live.js SHA256 совпали с локальными байтами. Label sessions113 не является Git SHA. Frontend ux-alias112-version/version1.0.0-test.alias112 сохранён, backend/PG healthy; у frontend нет healthcheck, подтверждены HTTP/browser. Rollback .env сохранён privately как pre-sessions113.env, прежний образ оставлен.
|
||||
|
||||
Оба CHR прошли реальный fetchIpsecState, aggregate GET /api/ipsec вернул200 без failures. В собранном reader проверены контролируемые snapshots с повторяющимися ID и aliases на базе прочитанных состояний; это НЕ создание нескольких реальных IKE подключений. Каталог live пустой: browser smoke1280/320 проверил API, пустое состояние, отсутствие ошибки и overflow; pageerrors0/APIwrites0. Первый browser запуск получил ECONNREFUSED: прежний localhost туннель отсутствовал; восстановлен согласованный SSH forward3000/8000, повтор passed. RouterOS writes0, acceptance DBwrites0, тестовых сетевых объектов не создавалось; пароли прежние.
|
||||
|
||||
Протокол: [ipsec-multiple-sessions](ux-ui/acceptance/ipsec-multiple-sessions-2026-10-10.json). Следующий114 — один сертификат с несколькими identity refs: текущий last-reference-wins ещё не исправлен, нужно проверить представление строк и выбор target для мутаций. Одновременные реальные подключения с одним ID, внешние интеграции, client OS, полнаяPKI и итоговая общая регрессия остаются отдельной приёмкой.
|
||||
|
||||
| Референс | Схема |
|
||||
| --- | --- |
|
||||
| [ReUI Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | ID → группа established → один клиент «онлайн» / разные клиенты «Не определено» |
|
||||
| [ReUI Stats12](https://reui.io/preview/base/stats-12?ref=mcp) | Несколько сессий → один подтверждённый клиент → сводка без двойного счёта |
|
||||
Reference in new issue
Block a user