fix(network): скрыть GRE PSK и сохранить признак IPsec
This commit is contained in:
1 parent
a404da768d
commit
3f3f06f147
24 files changed
+1570
-23
No files matched your search
+17
-1
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-13:208 закрывает WireGuard private-key GET дляreader иread-only операции пятисетевыхразделов; baseline/fixed SQL11, WireGuard profile56,53 unique E2E,20 live UI и2 own native интерфейса passed/cleaned. Backend/frontend ux-native208, source470/527 иcompiled1044 matched. Следующий209 — секреты GRE вGET /gre/tunnels и/filters/gre-tunnels.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: блок 209 завершён. GRE PSK скрыт от читателя; каталог Filters сохраняет признак настроенного IPsec без ключа. Пройдены 12 SQL/API-проверок, профиль live-maps, 4 E2E и 4 live UI-сценария. Два собственных отключённых GRE на CHR созданы и удалены. Backend/frontend: ux-gre209, 473/527 исходных файлов и 1048 compiled artifacts совпали. Следующий блок 210 — keepalive при создании 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.209 — доступ к GRE PSK и достоверность каталога IPsec (2026-10-13)
|
||||
|
||||
В production baseline читатель получал PSK через GET /gre/tunnels. Каталог /filters/gre-tunnels ключ не раскрывал, но всегда возвращал ipsec:null, скрывая сам факт настройки IPsec. Основной GET теперь копирует публичный DTO и очищает secret при отсутствии mm:network:write/admin; алгоритмы и наличие объекта IPsec сохраняются. Internal snapshot и право редактирования для writer/admin не меняются. is_admin без permission не даёт доступ к ключу. Legacy AUTH_REQUIRED=false сохранён. Общий каталог Filters возвращает только признак IPsec и пустой secret для всех ролей.
|
||||
|
||||
Экспорт скрытого PSK явно помечен как шаблон, содержит <IPSEC_PSK> и указание заменить ключ перед применением. Пустой ipsec-secret не подставляется как готовая конфигурация. Установленные ReUI компоненты и тема не изменялись.
|
||||
|
||||
Проверки: baseline и исправленный production backend — по 12 уникальных SQL/API-кейсов на собственных ограниченных PostgreSQL DB/role, с синтетическим PSK и настоящим auth middleware. Snapshot сохраняет исходный PSK; native writes 0. Оба комплекта DB/role/container удалены. Локальный test:live-maps, frontend TypeScript, backend build и ESLint прошли. Четыре E2E: скрытый ключ/шаблон на 1440 и 320px, прежние изменение/очистка PSK writer. Полную регрессию 192 не повторяли.
|
||||
|
||||
Backend/frontend ux-gre209 развёрнуты; 473/527 source files и 1048 compiled artifacts совпали, backend healthy. Live: по одному собственному отключённому GRE с PSK на каждом CHR, реальные Portal admin/reader JWT; reader не получает ключ, admin сохраняет его, каталог обеих ролей показывает IPsec без ключа. Четыре UI-кейса reader/admin × 1440/320, без API mocks и без UI mutations. Оба интерфейса и временный Portal user удалены; отсутствие интерфейсов проверено. Пароли и исходные объекты не менялись. Это проверка privacy/configured state, не шифрованного data plane.
|
||||
|
||||
Первоначальная сборка имела неверную ссылку на базовый Docker image; исправлена до развёртывания. Финальный frontend собран с mock=false и live default. Два первых native create отказали: опущенный keepalive превращался в 0, который RouterOS отклоняет. Cleanup прошёл; проверка завершена с явным 10s,3. Ошибка значения по умолчанию остаётся отдельным пунктом 210. Повторные проверки не складываются в число уникальных кейсов.
|
||||
|
||||
Протоколы: [baseline](ux-ui/acceptance/gre209-baseline-result.json), [fixed SQL/API](ux-ui/acceptance/gre209-fixed-result.json), [профиль](ux-ui/acceptance/gre209-profile-2026-10-13.json), [E2E](ux-ui/acceptance/gre209-e2e-2026-10-13.json), [native/UI/cleanup](ux-ui/acceptance/gre209-native-live-2026-10-13.json), [source](ux-ui/acceptance/source209-result.json), [compiled](ux-ui/acceptance/compiled209-result.json), [deployment](ux-ui/acceptance/gre209-deployment-2026-10-13.json).
|
||||
|
||||
Следующий блок 210: исправить создание GRE с опущенным keepalive, проверить фактический RouterOS ответ и прежнее редактирование. Этап 12.5 открыт; внешние ограничения в актуальной матрице сохраняются.
|
||||
|
||||
## 12.5.208 — приватные ключи WireGuard и режим просмотра сетевых разделов (2026-10-13)
|
||||
|
||||
Старый production backend выдавал синтетический непустой приватный ключ reader при GET WireGuard с includePrivateKey=1/true. Baseline подтверждён actual compiled auth/mapper на собственной ограниченной PostgreSQL БД и локальном RouterOS HTTP fixture. Теперь явный запрос приватного ключа требует mm:network:write/admin, иначе403 до любых native requests. Обычный GET200 сохраняет public key и не содержит private key. is_admin без необходимого permission не заменяет право. Writer/admin сохраняют прежнее действие, legacy AUTH_REQUIRED=false не менялся.
|
||||
|
||||
Reference in new issue
Block a user