chore(tests): проверить архивы с идентичностью счётчиков

This commit is contained in:
Denozordec committed 2026-10-13 01:31:02 +07:00
1 parent b57ae316ba
commit a8b80d9914
8 files changed
+152 -10

No files matched your search

+17 -2
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 2026-10-13: завершён12.5.186 — native counter identity+source config, declared continuity flags, migration0012 без переписывания legacy. OwnSQL62/37613ms/types/build/source458+524/1040compiled/native2/recovery2/browser2 passed. Backend ux-identity186 healthy/frontend ux-warning183; ownDB/role/container удалены. Следующий187 — совместимость backup/restore после nullable-column migration;12.5 открыта.
Актуальное продолжение 2026-10-13: завершён12.5.187 — actual PG18.6 archive restore: legacy schema→0012 bootstrap без guessed identity/flags; native identity/continuity/counters preserved.4cases/real pg_dump+restore helper passed, ownDB/role/container removed; production DB/runtime untouched (backend ux-identity186/frontend ux-warning183). Следующий188 — history wave membership после rename/delete/add interfaces;12.5 открыта.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -708,7 +708,7 @@ flowchart LR
## 12.5.77 — основной блок IPsec (2026-10-09)
Актуальное продолжение 2026-10-13: завершён12.5.186 — native counter identity+source config, declared continuity flags, migration0012 без переписывания legacy. OwnSQL62/37613ms/types/build/source458+524/1040compiled/native2/recovery2/browser2 passed. Backend ux-identity186 healthy/frontend ux-warning183; ownDB/role/container удалены. Следующий187 — совместимость backup/restore после nullable-column migration;12.5 открыта.
Актуальное продолжение 2026-10-13: завершён12.5.187 — actual PG18.6 archive restore: legacy schema→0012 bootstrap без guessed identity/flags; native identity/continuity/counters preserved.4cases/real pg_dump+restore helper passed, ownDB/role/container removed; production DB/runtime untouched (backend ux-identity186/frontend ux-warning183). Следующий188 — history wave membership после rename/delete/add interfaces;12.5 открыта.
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
@@ -1955,3 +1955,18 @@ Unit identity/config/legacy-marker/pair guards, backend/application TypeScript
[Native GET](ux-ui/acceptance/traffic-identity-native-2026-10-13.json): оба CHR доступны, interface native IDs/flags/counters валидны;0012 applied. Peers фактически0 — positive peer replacement доказан изолированным fixture, не реальным VPN-туннелем. DB read-only/RouterOS config writes0/password changes0/messages0. [Initial API](ux-ui/acceptance/traffic-identity-api-2026-10-13.json) ожидаемо unknown при первом baseline после нового writer; [штатное восстановление](ux-ui/acceptance/traffic-identity-recovery-2026-10-13.json) подтвердило current/rxKnown/txKnown обоих CHR с30s interval без manual collector invocation. [Production UI1440/320](ux-ui/acceptance/traffic-identity-deployed-2026-10-13.json) actual live/receipt labels/no errors/overflow. Native SSE не изменён; предшествующие6E2E185 UI guard checks не пересчитываются как новые186.
Следующий187 — own-schema archive restore для nullable native counter identity/continuity flags и старого schema archive с повторным bootstrap migration. Потом отдельная приёмка многопроцессной координации/масштаба/внешних доступов.12.5 открыта. Локальный коммит без push.
## 12.5.187 — совместимость архивов после миграции counter identity (2026-10-13)
[Воспроизводимый runner](../backend/scripts/acceptance/traffic-identity-restore.mjs) проверяет namespace/role/current_database до операций; допускает только отдельную mm_accept_166_* базу с ограниченной ролью. Реальные pg_dump/pg_restore/psql18.6 работают с ней через restorePartitionedDatabase из production ux-identity186: archive decode → known-parent preparation → one transactional psql. Production database/env не копируются и не восстанавливаются. Архивы/SQL остаются внутри временного контейнера, только публичный JSON сохранён в Git.
[4 принятых случая](ux-ui/acceptance/traffic-identity-restore-2026-10-13.json): старый schema archive возвращает отсутствие native_counter_identity; последующий bootstrap добавляет0012 с NULL identities и прежними flags13/counters0,1024 без догадки; новый archive возвращает identity и markers45/61/counters0,1024 после удаления собственных rows; partitioned parent/child restore и migration record0012 остаются корректными. Старый archive fixture сформирован исключительно в собственной базе удалением новой nullable колонки и0012 record: это совместимый pre-0012 shape, не реальный пользовательский backup. Positive native fields — контролируемые fixtures, не counter proof устройства.
| Архив | Схема результата |
| --- | --- |
| Pre-0012 fixture | old schema/data → restore → bootstrap0012 → identityNULL, flags unchanged |
| Native identity fixture | dump → собственные rows удалены → actual restore → exact identity/flags/counters |
PostgreSQL server/client18.6, Node22 from production image; отдельный test-client image на официальном postgres:18 собран с проверкой Node/pg_dump. Docker socket в контейнер не передавался. Script SHA256 совпал с локальными байтами. ESLint passed. OwnDB mm_accept_166_1791829512285/role/container удалены, независимая проверка catalog/container absence passed. Рабочие3 контейнера и их runtime186/183 не менялись, реальных серверных/network writes/messages0; отдельная приёмка PostgreSQL restore в полном API/RBAC/multi-writer сценарии этим коротким тестом не заявляется.
Следующий188 — временный состав измерений: текущая реализация сравнивает количество известной wave с количеством всех series за период. Проверить rename/delete/add interfaces и active sessions, чтобы старый ряд не делал текущий срез навсегда unknown, а новое измерение без baseline не превращалось в measured0. Историю сохранить; причины absent object/optional peer failures и multi-instance остаются явными ограничениями.12.5 открыта. Локальный коммит без push.