fix(api): показывать подтверждённые метрики OSPF

This commit is contained in:
Denozordec committed 2026-09-30 19:49:47 +07:00
1 parent e3791f3496
commit af05ad5cda
13 files changed
+120 -55

No files matched your search

+8 -1
View File
@@ -26,11 +26,18 @@
| 7 | Серверы и мониторинг: детали, формы, URL-контекст, права | Завершён в границах локальной приёмки 2026-09-23; внешние ограничения ниже |
| 8 | Трафик и статистика | Завершён 2026-09-28 в границах локальной приёмки; ограничения в блоке 8.13 |
| 9 | VPN, Firewall и Filters | Завершён в границах локальной приёмки 2026-09-30; блоки 9.1–9.64, ограничения в 9.64 |
| 10 | Маршрутизация, диагностика, карта и терминал | В работе: 10.1–10.18, nullable BFD/priority соседей; далее интерфейсы/маршруты/URL/layout |
| 10 | Маршрутизация, диагностика, карта и терминал | В работе: 10.1–10.19, nullable интерфейсы/метрики OSPF; далее URL/layout |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Не начат |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
## Блок 10.19 — интерфейсы и метрики строгого OSPF-каталога (2026-09-30)
- Interface cost/priority/timers/type/disabled/inactive/useBfd и instance version/routerId/flags допускают null без legacy defaults. Оптимизация запрещена при неизвестных costs/состояниях выбранного устройства. DTO frontend выводятся из Zod, вместо дублирующих интерфейсов.
- Route cost читается только из ospf-metric; distance больше не выдаётся за cost. Наблюдаемые нули остаются нулями. По документации RouterOS interface cost допускает 0..65535: исправлена граница индекса соседей из 10.16. Чтение cost=0 корректно; существующая политика записи min=1 сохраняется, такая операция не предлагается.
- Проверки: 21 E2E (interface-values/values/states/operations/routing-tables), четыре cost/state unit, test:live-maps и обе production-сборки прошли. TypeScript чистый, lint без ошибок (три старых warning). Правила сетевых операций/legacy endpoints не изменены.
- Следующий объём: URL устройства/вкладки/поиска с back/reload и late-write, desktop/mobile приёмка. При аудите дополнительных метаданных не считать multihop=false/тип O маршрута доказанными только по прежним parser defaults. Использовано 6% окна; локальный коммит без push.
## Блок 10.18 — неизвестные показатели BFD и приоритет соседей (2026-09-30)
- Строгие DTO каталога отделены от legacy: BFD multiplier/tx/rx/hold/counters и neighbor priority/stateChanges допускают null. Отсутствующие/некорректные значения не получают defaults; priority=0 и наблюдаемые нули сохраняются. Actual TX не подменяется desired TX; единицы us/ms/s и составные/clock durations проверяются без частичного parseInt.
+4
View File
@@ -124,3 +124,7 @@ Lock/readiness, существующее mm:servers:write, валидация п
## 10.18. Nullable BFD и соседство
Строгий каталог сохраняет null/0 отдельно для BFD timers/counters/multiplier и priority/stateChanges соседа. Actual TX не подменяется desired TX; units/clock duration проверяются строго. 15 HTTP E2E, raw backend fixtures, TS/backend build прошли. Далее interface/instance/route nullable contract и readiness. [RouterOS BFD](https://help.mikrotik.com/docs/spaces/ROS/pages/191299691/BFD) и [OSPF](https://help.mikrotik.com/docs/spaces/ROS/pages/331612216/routing%2Bospf) — источники семантики.
## 10.19. Nullable интерфейсы и метрики
Строгий catalog DTO сохраняет неизвестные поля interface/instance; route metric не подменяется distance. Наблюдаемый interface cost=0 сохранён согласно [RouterOS OSPF](https://help.mikrotik.com/docs/spaces/ROS/pages/331612216/routing%2Bospf); политика записи min=1 прежняя. При unknown costs/flags операция не предлагается. 21 E2E, 4 unit, backend regression и обе production-сборки прошли. Далее URL/layout и дополнительная проверка метаданных.