fix(network): согласовать GRE PSK с FastPath и экспортом

This commit is contained in:
Denozordec committed 2026-10-13 21:42:21 +07:00
1 parent 7d86af7e8b
commit 1be4a490b5
20 files changed
+1460 -19

No files matched your search

+17 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-13: блок 211 завершён. Закрыт анонимный обход JWT и section RBAC через encoded URL: проверяется маршрут Fastify, HEAD наследует GET policy, OSPF parameter routes сохраняют права. Пройдены auth42, production SQL/API29 и live26; тестовые DB/role/users удалены. Backend ux-auth211/source477/compiled1048, frontend ux-gre210. Следующий212 — совместимость GRE FastPath/PSK и шаблон экспорта недопустимого keepalive. Этап12.5 открыт.
Актуальное продолжение 2026-10-13: блок 212 завершён. GRE с PSK по умолчанию отключает FastPath; явный конфликт получает400. Форма и экспорт учитывают совместимость и недопустимый keepalive. SQL/API18, E2E10 и live GRE/Filters UI4 прошли; два собственных интерфейса удалены. Backend/frontend ux-gre212; source478/527 и compiled1048 совпали. Auth-исправление211 сохранено. Следующий213 — выбор IPv4/IPv6-команды в GRE экспорте. Этап12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -38,6 +38,22 @@
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–196 и ограничения ниже. Runtime backend/frontend ux-peak196. |
## 12.5.212 — совместимость GRE PSK/FastPath и шаблоны экспорта (2026-10-13)
POST с PSK и опущенным allowFastPath теперь создаёт GRE с FastPath=false. При явном PSK+FastPath=true возвращается400 до native requests; PATCH учитывает уже настроенный PSK и не пишет несовместимое состояние. Включение PSK через PATCH без FastPath отключает его; изменения другого поля сохраняют прочие настройки. Форма показывает FastPath выключенным и недоступным при IPsec, отправляет false. Global IPsec peer/policy/proposal не меняются.
Экспорт недопустимого keepalive или несовместимого IPsec/FastPath явно обозначен как шаблон: вместо готовой неверной команды выводятся <KEEPALIVE_SECONDS>, <KEEPALIVE_RETRIES>, <ALLOW_FAST_PATH> и пояснения. Скрытый PSK сохраняет прежний <IPSEC_PSK>. Валидные наблюдаемые значения и escaping не изменены. ReUI primitives и тема не затронуты.
Проверки: production SQL/API18 на собственной ограниченной DB/role, native HTTP fixture; DB/role/container удалены. Профиль live-maps, GRE export/schema/network-map units, TypeScript/build/ESLint прошли. E2E10: FastPath при включении IPsec, прежние PSK/keepalive/reader export и несовместимый снимок на1440/320. Source478/527 и compiled1048 совпали; backend/frontend ux-gre212 healthy/running, auth211 сохранён.
Live: по одному собственному отключённому GRE с PSK на каждом CHR без явных keepalive/FastPath; native10s,10 и FastPath=false подтверждены, конфликт PATCH400 сохраняет состояние. Четыре UI GRE/Filters на1440/320, без UI writes/errors. Оба интерфейса удалены; пароли не менялись. Это проверка конфигурации/API/интерфейса, не data plane.
Первый deploy preflight обнаружил старое имя отчёта gre212-keepalive-result.json. Публичная копия названа compatibility с сохранением originalReportedFilename; содержимое18 cases и cleanup проверено. До успешного deploy preflight стенд оставался на211, поэтому преждевременный live create получил старый502 и был очищен; финальная проверка началась после health и прошла. На стенде очищен только неиспользуемый Docker build cache старше часа; runtime и rollback images сохранены.
Протоколы: [SQL/API18](ux-ui/acceptance/gre212-compatibility-result.json), [профили](ux-ui/acceptance/gre212-profile-2026-10-13.json), [E2E10](ux-ui/acceptance/gre212-e2e-2026-10-13.json), [native/UI/cleanup](ux-ui/acceptance/gre212-native-live-2026-10-13.json), [source](ux-ui/acceptance/source212-result.json), [compiled](ux-ui/acceptance/compiled212-result.json), [deployment](ux-ui/acceptance/gre212-deployment-2026-10-13.json).
Следующий213: GRE exporter всегда использует /ip/address/add, даже для уже поддерживаемого приложением внутреннего IPv6. Исправить family и проверить собственные ULA без обещания public IPv6/terminal import.
## 12.5.211 — JWT/RBAC для закодированных URL (2026-10-13)
Actual baseline: обычный /api/servers без JWT возвращал401, но /%61pi/servers возвращал200 и server rows с непустыми паролями. Fastify распознаёт encoded static segments; middleware сравнивал raw URL и пропускал auth для encoded /api prefix. Для encoded имени раздела можно было также получить fallback dashboard permission. В evidence сохранены только статусы, число строк и boolean наличия пароля; raw body, credentials и JWT не сохранялись и не выводились.