chore(test): подтвердить безопасный импорт conf на стенде
This commit is contained in:
1 parent
479f2adc78
commit
f9980d7d7e
10 files changed
+1041
-7
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-09
|
||||
|
||||
Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Активные backend/frontend sourcec16fc0c5b53ba8fcb6690ef6f0a695f59875f171/version1.0.0-test.c16fc0c обновлены в12.5.67; backend healthy, frontend HTTP200. SSH и оба CHR доступны с прежними доступами. В12.5.68 RSC roundtrip принят на обоих CHR; исходный baseline восстановлен.
|
||||
Сервер161.104.46.222 предоставлен для временного тестирования. Backend/frontend source479f2adc78b162d7694d9897d201704b51082968/version1.0.0-test.479f2ad обновлены в12.5.70; backend healthy, frontend HTTP200. SSH и оба CHR доступны с прежними доступами. RSC68 и conf с явнымName70 приняты в описанных границах; baseline восстановлен.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -14,7 +14,7 @@
|
||||
| PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed |
|
||||
| Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data |
|
||||
| Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска |
|
||||
| Образы приложения | mmapp-test/backend:ux-c16fc0c и mmapp-test/frontend:ux-c16fc0c; запущены |
|
||||
| Образы приложения | mmapp-test/backend:ux-479f2ad и mmapp-test/frontend:ux-479f2ad; запущены |
|
||||
|
||||
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
|
||||
|
||||
@@ -573,3 +573,21 @@ Backend/frontend RSC parsers больше не подставляют default ro
|
||||
Проверки: wireguard-import unit22/22 (готовый conf и explicit default route, template, Interface/Peer/key errors, CIDR, отсутствие маршрутов, несколькоAddress/PSK, числовые ошибки и RSC); настоящий Fastify inject4 invalid apply/dryRun случая →400, PUT mutations0. Backend test:wireguard теперь включает новые service/route tests; исходный codec passed. Client-template cross-layer5/5 passed. Browser3/3: доступ/неподтверждённый receipt, ожидание/повтор,400 incomplete conf с сохранением текста и выбранного сервера2. Последний test не попал в первый grep импорт; отдельно запущен и прошёл. Backend/scoped frontend TypeScript, ESLint и diff check passed. ReUI checklist checked; installed primitives не менялись.
|
||||
|
||||
Исправление локальное, стенд по-прежнему c16fc0c. Реальные preflight400/409, отсутствие native изменений при отказе, production build и новый .conf roundtrip ещё не приняты. Проверка коллизии409 добавлена в code, отдельно не доказана RouterOS fixture в этом блоке. Следующий12.5.70 — собрать/развернуть, проверить отказы и собственную пару на обоих CHR, native параметры/идентичность/связность, затем cleanup/baseline. Конкуренция, повторный import/partial failure/rollback, неизвестные/повторные поля .conf и остальные внешние ограничения остаются открытыми. Пароли и RouterOS настройки в этом блоке не менялись. Локальный коммит без push.
|
||||
|
||||
## 12.5.70 — deploy preflight и собственный .conf roundtrip WireGuard (2026-10-09)
|
||||
|
||||
Production Docker backend/frontend479f2ad успешно собраны и развёрнуты. Зафиксированный source commit479f2adc78b162d7694d9897d201704b51082968 передан Git archive, SHA25661e1dfeb413d80ee3b463f14abf539739203f31b886a1e248fce869fa4e9aba1. Backend src и frontend lib/components/app/contracts в staging совпали с source. OCI revision labels479f2ad,version1.0.0-test.479f2ad; backend image inspect IDsha256:48f85bf9863fcec8f3a1df39e2e9e06835b7a7aaf1c59a5e73f00e0181ab3eff7,frontend sha256:346c0df48cc49314045f54e3e6e6efe826524e279bb3652a515c2d37c7295678. Новый backend-образ без сети отклонил неполный conf/peers-only RSC; backend healthy, frontend HTTP200.
|
||||
|
||||
Перед обновлением сохранён private PG dump pre-479f2ad.dump,2343134bytes,mode0600; pg_restore --list passed. Предыдущая .env сохранена только на сервере, прежние c16fc0c images доступны для отката. SSH161.104.46.222 и RouterOS REST обоих CHR доступны с прежними доступами. Пароли устройств не менялись.
|
||||
|
||||
На каждом CHR настоящий API отклонил неполный conf шаблон с400 для dryRun=false иtrue: всего4 запроса, выбранные WG/peers/IP/routes/IPv4 Firewall ресурсы native не изменились. Затем создана собственная WG пара с уникальным name/comment,51879/1420 и198.18.255.241/30↔198.18.255.242/30; native handshake/Ping3/3 подтверждены. Private .conf exports получены только в памяти; в каждый добавлен явный Name для приложения. Валидный dry-run200 не изменил интерфейс/пир/IP, попытка применить конфиг поверх занятого собственного имени вернула409 на обоих CHR без native изменений. Остальные отрицательные варианты69 проверены локально, не объявлены всеми выполненными на RouterOS в70.
|
||||
|
||||
Обычный DELETE удалил исходную пару с peers/IP. UI восстановил conf наCHR1 при1280px иCHR2 при320px без HTTP mocks. Перед успешным import каждому серверу отправлен неполный шаблон → ожидаемый400; Sheet остался открыт, textarea и server selection сохранены, на выбранном устройстве не появились native объекты. Затем local preview показал CONF/явное имя/одного пира, apply200 подтвердил applied.interfaceName/peersCreated=1, Sheet закрылся и объект появился в таблице. В этих browser сценариях2 ожидаемых400 и0 неожиданных API/page errors, page overflow нет.
|
||||
|
||||
Native checks подтверждают name,ключевую идентичность,listen-port,MTU,адрес,peer public identity,allowed-address,configured endpoint/port/keepalive. Как в68, raw private encoding наCHR2 нормализован при импорте: Curve25519 scalar equivalent и public key unchanged; raw byte equality не требуется. Настоящий handshake иPing3/3 восстановленной пары прошли в обе стороны. Conf не сохраняет interface/peer comments и peer names; Name здесь расширение parser приложения, не стандартная директива wg-quick. Поэтому результат — network/key roundtrip с явно заданным именем, не побайтовое восстановление исходной RouterOS конфигурации. Для metadata-preserving восстановления ранее принят RSC68. Ключи и конфиги не сохранялись в отчёты/файлы/screenshots/traces.
|
||||
|
||||
[Native/API](ux-ui/acceptance/wg-import-conf-native-2026-10-09.json), [browser](ux-ui/acceptance/browser-wg-import-conf-479f2ad-2026-10-09.json), [smoke6 страниц](ux-ui/acceptance/deploy-browser-479f2ad-2026-10-09.json), [deploy/DB controls](ux-ui/acceptance/wg-import-conf-deploy-controls-2026-10-09.json). Первый browser run остановлен ошибочной проверкой harness: после importCHR1 она ожидала отсутствие объектов на обоих CHR перед отказомCHR2. Ошибка исправлена на проверку выбранного устройства; product source не менялся. [Прерванная попытка](ux-ui/acceptance/wg-import-conf-browser-check-aborted-2026-10-09.json) не объявлена принятой; её cleanup/baseline также passed. Финальный fixture exit0.
|
||||
|
||||
Все собственные объекты удалены; выбранные WG/peers/IP/routes/IPv4 filter/nat/mangle совпали с baseline на обоих CHR. Для imported conf без comment ownership подтверждалась уникальным fixture name и ожидаемой native public identity, используемой только в памяти. Остались3 основные службы, backend healthy. DB controls до/после:servers2,speedHistory9,retentionDays14,migrations9. Audit revisions намеренно сохранены. Production smoke /dashboard,/servers,/uptime?tab=speed,/settings,/filters,/wireguard →HTTP200,320px fits,0 page/API errors. Публичные JSON проверены на отсутствие ключей/конфигов/паролей. Дополнительная общая локальная регрессия не повторялась после уже проверенного69; production build/typecheck и реальные scoped сценарии выполнены.
|
||||
|
||||
Следующий12.5.71 — partial apply failures/компенсация и повторный import. Concurrent collision races, rollback/interrupted mutation, неизвестные/повторные поляconf,PSK/multi-address поддержка, ready Peer client template import,private-key UI download,IPv6/throughput/RBAC/multi-instance/Telegram/Portal и остальные внешние протоколы/интеграции остаются открытыми. Локальный коммит без push.
|
||||
Reference in new issue
Block a user