fix(ipsec): показывать неопределённый статус при общих Remote ID
This commit is contained in:
1 parent
7815e00a1c
commit
cb6ec09312
20 files changed
+1077
-15
No files matched your search
+25
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-10: завершён12.5.111 — буквальный CN больше не трактуется как typed Remote ID или чужой DN. Реальная одна сессия/два сертификата: только настоящий клиент online; explicit FQDN/SAN подключение подтверждено. Backend ux-id111/version1.0.0-test.id111, frontend ux-a11y101 прежний. State96/96, профильный IPsec/build/lint, live UI4/4 и cleanup13 коллекций×2 passed. Следующий112 — общие configured Remote IDs/коллизии aliases между identity и PSK; внешние Portal/Telegram ожидают настройки и разрешения.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 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,30 @@
|
||||
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–111 и ограничения ниже. Runtime backend ux-id111/frontend ux-a11y101. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–112 и ограничения ниже. Runtime backend ux-alias112/frontend ux-alias112-version. |
|
||||
|
||||
## 12.5.112 — IPsec: неоднозначные certificate/PSK Remote ID и понятный статус (2026-10-10)
|
||||
|
||||
Исправлена подтверждённая ошибка: одна реальная established сессия с bare FQDN ID и адресом198.18.112.250 учитывалась как два online-клиента — certificate с remote-id=fqdn:<имя>.example и PSK identity с remote-id=key-id:<имя>.example. В native снимке, используемом reader, нет подтверждения отдельной связи этой сессии с одним из этих двух catalog rows. Backend теперь собирает claims на каждый observed session object и при нескольких видимых владельцах не выбирает пользователя: online=false как «не подтверждено», sessionAmbiguous=true, activeAddress/activeSince удалены. Конфигурационные staticIp/Remote ID/IDs сохраняются; сетевые операции и допустимые конфигурации не запрещаются.
|
||||
|
||||
В @mmapp/contracts добавлены optional sessionAmbiguous и summary clientsSessionAmbiguous. Старые DTO остаются совместимыми; contradictory ambiguous+online/activeAddress/activeSince отвергается вместо ложного успеха. Summary clientsOnline — число подтверждённых строк, которое сопровождается ambiguous count. UI показывает «Не определено», пояснение Remote ID и «—» в KPI онлайн; карточка сервера подписывает число подтверждённых клиентов и неопределённых статусов. Это не offline и не ноль фактических сессий. Skill ReUI применён reuse-first: существующие Frame/KpiStatGrid/grid/Alert/semantic tokens, без vendor/theme/registry изменений. Source consumers изменены только для достоверного состояния данных.
|
||||
|
||||
Проверки: state102/102, test:ipsec8 scripts, backend/contracts TypeScript build и ESLint7 изменённых файлов passed. Первый локальный E2E startup не уложился120s, параллельный tsc увидел незавершённые generated .next route types. Старый dev cache перемещён в проверенный workspace tmp backup, пользовательские процессы/файлы не удалялись. Повтор E2E14/14 (data/freshness/layout,38.7s) passed; после добавления проверки server card только2 изменённых cases повторены (8.6s). Это14 unique accepted, не16 разных сценариев. Scoped source TypeScript passed с исключением generated cache; обе production builds отдельно прошли full build type-check. E2E проверяет unknown без offline/чужого IP, recovery и сохранение last-good при противоречивом DTO. Общая регрессия не повторялась.
|
||||
|
||||
[Native before/after/recovery](ux-ui/acceptance/ipsec-session-ambiguity-2026-10-10.json): собственная certificate FQDN/SAN пара, неиспользованный DN-looking CN certificate и дополнительная собственная PSK identity с другим typed prefix/тем же bare ID и отдельным mode-config198.18.112.251. На ux-id111 каталог присваивал одному native ID адрес198.18.112.250 обеим configured rows/clientsOnline2. Red-attempt и successful cleanup сохранены. На ux-alias112 две строки ambiguous, без active address/since; total3/confirmedOnline0/ambiguous2, third unused certificate остаётся offline. Native сессия established сохранялась. После exact-owner удаления только PSK identity/mode-config original снова online/198.18.112.250, sessionAmbiguous отсутствует; никаких автоматических network retries/rollback не добавлено.
|
||||
|
||||
[Live4/4](ux-ui/acceptance/browser-ipsec-alias-2026-10-10.json):1280/320×dark/light, actual root theme, unknown two rows/online KPI, unused certificate offline, reload, pageErrors0/no page overflow/applicationWrites0. Сначала functional4 cases прошли, но визуальная проверка обнаружила frontend vdev: APP_VERSION не тот build arg. Frontend пересобран с NEXT_PUBLIC_APP_VERSION=1.0.0-test.alias112, tag ux-alias112-version. Финальные4 cases повторены на этом image, desktop header version явно проверен; mobile header скрывает версию, отдельный version check там не заявлен. Скриншоты обновлены, light desktop/dark320 просмотрены. Preliminary functional/native result и ошибка версии не скрыты.
|
||||
|
||||
[Source/runtime manifest](ux-ui/acceptance/ipsec-alias-source-2026-10-10.json): backend context build-id111 +3 overrides, frontend build-a11y101 +4 overrides, общий contracts source;7 context byte hashes совпали, compiled backend mapper/contracts hashes2/2 совпали с контейнером. BaseHEAD7815e00 +working changes, labelalias112 неGitSHA; полный905-input audit/reproducible frontend binary не заявлены. Backend imagesha256:03e110dd414b575ad9a8f13f7b0302f241dbd3e439418c8ad1bbca7dc1c6fc9c, final frontend imagesha256:4bf4cad8b3c990a7259f84cf27fd6bb9ee34e3db904223b559c0559dbbe094a2; обе app versions1.0.0-test.alias112, backend/PG healthy, frontend running/HTTP/UI passed. Entry/node checks/pg_restore18.6 passed, приватный pre-alias112.env и старые images оставлены для rollback. Frontend построен дважды из-за исправления version arg; backend — один раз. DB migration/schema changes отсутствуют.
|
||||
|
||||
После обеих accepted runs удалены exact own IDs всех certificates/imported chain, peer/identity/profile/proposal/group/template/mode-config/export/upload files; private P12/PEM/pass файлы удалены. Baseline13 коллекций×2 совпал; logging/default/metadata/public routes/195.195.195.195/32 сохранены. Helpers используют aggregate GET /api/ipsec без observed revision writes, secrets не записывались в Git. ОбаCHR/SSH доступны, пароли прежние.
|
||||
|
||||
Границы: новое состояние относится к нескольким видимым clients, претендующим на одну observed сессию. Несколько native sessions с одинаковым ID, один certificate с несколькими identity refs, arbitrary ID types/custom OIDs/полнаяPKI/restore/client OS/IPv6 остаются отдельными пунктами. Следующий113 — эти две границы атрибуции одним профильным блоком;12.5 целиком открыт. Квота перед финальным блоком: использовано68% пятичасового/72% недельного.
|
||||
|
||||
| Референс | Применённая схема |
|
||||
| --- | --- |
|
||||
| [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.111 — IPsec: буквальный CN, чужой DN и явно настроенный FQDN ID (2026-10-10)
|
||||
|
||||
|
||||
Reference in new issue
Block a user