# Этап 10: маршрутизация и диагностика Статус: начат 2026-09-30. Работа последовательно, ReUI PRO/base-nova и существующий Frame. Правила применения сетевых операций не меняются. ## Референсы и схема | Область | Референс | Схема доработки | | --- | --- | --- | | Устройства и сессии | [List 9](https://reui.io/preview/base/list-9?ref=mcp) | Контекст → подтверждённые объекты → проблемы | | Таблицы | [Data Grid Filtering 2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Срез → фильтры → состояние данных → детали | | Детали и диагностика | [Sheet 8](https://reui.io/preview/base/sheet-8?ref=mcp) | Объект → запрос → результат / ошибка с сохранением контекста | Референсы перенесены из принятого плана; новые 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.