chore(ux): зафиксировать аудит свежести и контекста источников оповещений
This commit is contained in:
1 parent
13618e7efe
commit
65d4a17882
7 files changed
+200
-11
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Сервер161.104.46.222: завершён 12.5.167 — GRE/BGP freshness: fixed30s interval вынесен в общую константу, newest completion/sample старше90s или более30s в будущем не подтверждает current alert facts. Unit clock boundaries/scheduler/owned PG8 rows/confirm-stability/build/1000 parity/2 real UI passed; own DB/container removed, main static config unchanged. Runtime ux-fresh167/ux-bfd158 healthy. Следующий168 — audit свежести и disabled config остальных alert collector families; физические WAN/multi-instance/реальные интеграции остаются внешними условиями.12.5 открыт.
|
||||
Сервер161.104.46.222: завершён 12.5.168 — readonly audit остальных alert sources. На стенде resources15s/traffic30s/REST disabled120s/active probes0;2 enabled CHR с одинаковым normalized name сворачиваются в1 server signal. Source code не проверяет возраст/disabled config этих families; ошибки фильтруются как only-ok history. Это audit, исправление не заявляется. Runtime ux-fresh167/ux-bfd158 healthy. Следующий169 — единый блок current/identity/config/freshness guards для server/probe/traffic signals с учётом per-probe intervals, owned PG fixtures и profile tests;12.5 открыт.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -1582,3 +1582,32 @@ Unit clock injection проверяет stale/future completion и sample, malfo
|
||||
Backend production build/1000 emitted parity passed, ux-fresh167 развёрнут с rollback env, backend/PG healthy, frontend ux-bfd158 сохранён.3 readonly catalog/selected GET и2 live UI1440/320 passed/no errors/overflow. Source frontend/ReUI/Frame/base-nova и RouterOS правила/пароли не менялись, native tunnels не создавались, сообщения не отправлялись. Running containers после cleanup только3 основных сервиса. Свежесть других collector families/отключаемых jobs и stable-ID target migration этим блоком не закрыты.
|
||||
|
||||
Протоколы: [owned SQL8/cleanup](ux-ui/acceptance/collector-freshness-sql-2026-10-12.json), [compiled1000](ux-ui/acceptance/collector-freshness-compiled-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/collector-freshness-deployed-2026-10-12.json). Следующий168 — audit остальных alert source families: stale/disabled config не должны создавать current facts.12.5 остаётся открытым в матрице внешних ограничений.
|
||||
|
||||
## 12.5.168 — карта оставшихся источников оповещений (2026-10-12)
|
||||
|
||||
Выполнен source audit и чтение метаданных production PG с default_transaction_read_only=on. Source/database settings не менялись, default-seeding getters не вызывались, bootstrap/RouterOS/messages отсутствовали. Реальные текущие настройки: resources enabled/15s, traffic enabled/30s, REST disabled/120s, active Ping probes0. Builder в момент audit выдавал1 server signal (max age3.197s), traffic1 (max age18.24s), probes0. Это возраст наблюдаемого снимка, не controlled stale fixture. Одновременно обнаружена1 группа одинаковых имён у enabled servers: оба CHR называются одинаково,2 devices сворачиваются в1 name-based signal. Audit не исправляет это поведение.
|
||||
|
||||
Source findings: non-GRE/BGP reader выбирает только status=ok; resource/REST/traffic/probe reducers восстанавливают ключи из старых runs; evaluation не проверяет sampledAt age; builder не применяет текущие enabled flags источников. Resource reducer превращает всякое не-online значение в offline; одинаковые имена могут смешать current и previous разных устройств. Это подтверждённые свойства кода, но runtime disabled/stale/malformed fixture пока не выполнен. Не считать найденные проблемы устранёнными только по этому документу.
|
||||
|
||||
| Источник | Интервал / особенность | Требование к следующему блоку |
|
||||
| --- | --- | --- |
|
||||
| Resources | Настраиваемый intervalSec, на стенде15s; default300s | Effective resourcesEnabled; уникальная identity/current known state; возраст по своему периоду |
|
||||
| REST availability | Отдельные enabled/intervalSec; сейчас выключен | Выключенные/старые REST данные не переопределяют свежий resource result и не подтверждают recovery |
|
||||
| Ping | probeIntervalSec и individual uptime_probes.intervalSec; snapshot содержит только due probes | Фильтр enabled probes/source servers; latest observed row каждого probe и его собственный TTL, не latest-run-only |
|
||||
| Traffic | Настраиваемый enabled/intervalSec; сейчас30s | Отсутствие/старое/disabled не превращается в zero/low traffic; identity не смешивает одинаковые имена |
|
||||
|
||||
Период GRE/BGP30s/границу90s167 нельзя механически распространить на resources default5min или Ping с индивидуальным расписанием. Для169 сначала определить effective config каждого family и per-probe timing, затем coherent current states/previous known history без cross-device aliases. Проверить own PG: disabled source с retained history, stale/future times, newer error/null, empty/deleted object, duplicate labels, частичный due-probe batch и controlled recovery. Локальные unit/profile tests + scoped SQL; production build только backend после окончательной delta. Полную UI/context regression повторять лишь при frontend foundation change, остальные native протоколы не переснимать без новой причины.
|
||||
|
||||
Схема доработки:
|
||||
|
||||
~~~mermaid
|
||||
flowchart LR
|
||||
A["Текущий источник и устройство"] --> B["Enabled и уникальная identity"]
|
||||
B --> C["Последнее наблюдение и свой интервал"]
|
||||
C --> D{"Свежий известный факт?"}
|
||||
D -->|да| E["Условие правила и last-known history"]
|
||||
D -->|нет| F["Нет подтверждения события"]
|
||||
E --> G["Outbox после подтверждения"]
|
||||
~~~
|
||||
|
||||
Протокол: [readonly audit168](ux-ui/acceptance/alert-source-audit-2026-10-12.json). Source/build/runtime не менялись после167, новые тесты и исправления не заявляются. Следующий169 — выполнить этот единый блок, сохранить profile/owned SQL результаты и локальный коммит без push. Реальные Telegram/Portal/внешние accounts, client OS/physical WAN/multi-instance остаются отдельными условиями12.5.
|
||||
Reference in new issue
Block a user