8.9 KiB
Этап 10: маршрутизация и диагностика
Статус: начат 2026-09-30. Работа последовательно, ReUI PRO/base-nova и существующий Frame. Правила применения сетевых операций не меняются.
Референсы и схема
| Область | Референс | Схема доработки |
|---|---|---|
| Устройства и сессии | List 9 | Контекст → подтверждённые объекты → проблемы |
| Таблицы | Data Grid Filtering 2 | Срез → фильтры → состояние данных → детали |
| Детали и диагностика | Sheet 8 | Объект → запрос → результат / ошибка с сохранением контекста |
Референсы перенесены из принятого плана; новые registry-компоненты не требуются.
[Устройство / URL] → [Подтверждённый снимок + время получения]
↓
[Сессии / маршруты / карта]
↙ ↘
[Частичный отказ] [Детали / диагностика]
последние данные контекст сохранён
статус неизвестен ↓
[Результат API / повтор]
Карта работ и порядок
| Порядок | Раздел / API | Обнаруженная проблема | Проверка результата |
|---|---|---|---|
| 1 | BGP: /bgp/sessions, новый /bgp/catalog | Отказ устройства превращается в []; нет проверки ответа/частичных ошибок; неизвестный мониторинг выдаётся за online | Успех, пустой опрос, частичный/полный сбой, повтор, смена источника |
| 2 | OSPF: /ospf/all | Частичный отказ подменяется пустыми neighbors/areas/interfaces/BFD/routes | Последний снимок, неизвестные статусы и показатели |
| 3 | Рекурсивные маршруты | Ответы каталогов и смена устройства требуют проверки; операции связаны с историей | Readiness, точный serverId, повтор/ошибка, URL |
| 4 | Оптимизатор | Ошибка зависимого каталога скрывается; общий сбой удаляет последние данные | Неполнота явно показана, применение требует достоверного контекста |
| 5 | Карта сети | GRE failures игнорируются; отказ GRE/probes превращается в пустые данные; нет общей защиты поздних ответов | Кэш и неизвестные рёбра/узлы, смена источника, пустые/ошибочные состояния |
| 6 | Терминал и диагностика | Проверить права, готовность устройства, поздний вывод и повторные отправки | Точный контекст, сохранение вывода, подтверждение выполнения |
| 7 | Приёмка | ПК/телефон, клавиатура, переходы и профильная регрессия | Схемы/PNG, сборки, сценарии; внешние ограничения отдельно |
Совместимость и границы
- Новый BGP-каталог sessions/failures. Старый агрегат /bgp/sessions сохраняет массив для оповещений; его миграция — 11Б. Новый экран не должен использовать неоднозначный агрегат.
- Отказ выборного BGP-опроса должен иметь ошибочный HTTP-статус вместо успешного пустого массива.
- Время получения браузером не объявляется временем измерения RouterOS. При сбое прошлые данные доступны, но не считаются текущими.
- Неизвестные счётчики/статусы не подменяются нулями/успехом. Не добавляем недоступные API или фиктивные действия.
- HTTP-фикстуры не подтверждают реальные RouterOS/JWT/БД и применение маршрутов/команд. Полный accessibility/performance аудит — этап 12.
Блок 10.1 — подготовка
Прочитаны реализации BGP, OSPF, карты, оптимизатора и точки интеграции рекурсивных маршрутов/терминала. Сохранены порядок, схема, референсы и решение по совместимости BGP. Далее — серверный каталог с failures и проверкой контекста.
Блок 10.2 — BGP API
Каталог sessions/failures и проверка контекста добавлены; старый агрегат совместим. Выборный отказ возвращает 503. Unit/Fastify/TypeScript/lint/backend build прошли. Следующий блок — потребитель нового каталога на экране BGP.
Блок 10.3 — данные BGP
Экран мигрирован на каталог: валидация, кэш отказавшего устройства, неизвестные состояния, постоянный повтор и изоляция источника. 12 E2E/TypeScript/lint прошли. Далее — поля BGP, URL/свежесть и визуальная приёмка.
Блок 10.4 — поля BGP
Новый parser сохраняет неизвестные таймеры/счётчики/AFI, не подменяет префиксы UPDATE-счётчиками; legacy API сохранён. Удалён придуманный экспорт. 13 E2E/unit/live-maps/TypeScript/lint/backend build прошли. Далее — URL/свежесть/источник/layout.
Блок 10.5 — BGP URL/свежесть
server/session/tab и возврат/reload сохраняют контекст; недоступный объект не подменяется. Время успешного опроса каждого устройства не обновляется при отказе. 19 различных E2E/TypeScript/lint прошли. Далее — ASN/type, URL фильтров и layout.
Блок 10.6 — BGP ASN/type
Отсутствующие/невалидные ASN и тип неизвестны; legacy parser сохранён. Unit/15 E2E/TypeScript/lint прошли. Далее — URL фильтров и layout.
Блок 10.7 — фильтры BGP URL
Поиск/тип/состояние/FilterQuery сохраняются и валидируются; AFI варианты соответствуют снимку. 21 E2E, четыре unit, TypeScript/lint прошли. Далее — desktop/mobile и сборка BGP, затем OSPF.
Блок 10.8 — BGP приёмка
27 E2E, unit/TypeScript/lint, frontend/backend build прошли. Шесть PNG просмотрены, мобильные подписи/детали исправлены. Далее — строгий каталог OSPF (BFD/routes сейчас скрывают свои ошибки). Внешние границы — журнал.
Блок 10.9 — OSPF каталог
Строгий /ospf/catalog возвращает failures устройства; BFD/routes ошибки не скрываются. Снимок устройства атомарен, legacy /all и правила оптимизации сохранены. Unit/HTTP/backend build прошли; два исходных lint warning. Далее — экран OSPF.
Блок 10.10 — OSPF данные
Каталог/inventory валидируются, кэш отказавшего устройства сохраняется, состояния/KPI неизвестны, топология не подменяет полный опрос. Убраны фиктивные live costs/mock применение. 17 E2E/TypeScript/lint прошли (два старых warning). Далее — операции/URL/свежесть/поля/layout.