fix(api): показывать ошибки опроса старых OSPF и BFD API

This commit is contained in:
Denozordec committed 2026-10-14 00:31:50 +07:00
1 parent eaf724d6cc
commit 5ac5a25dfc
17 files changed
+688 -96

No files matched your search

+5 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md).
@@ -2583,3 +2583,7 @@ Production compiled SQL/API29 на собственной ограниченно
## 12.5.214 — GRE badge contrast (2026-10-14)
Подробности: [блок214 в журнале](ux-ui-progress.md). Scoped axe4 и live UI8 прошли; cleanup подтверждён. Backend ux-gre212, frontend ux-gre214.
## 12.5.215 — OSPF/BFD (2026-10-14)
Пять legacy endpoints возвращают503 при неполном опросе. Успешные envelopes сохранены; SQL25/localHTTP25 и live API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md#125215--явные-ошибки-legacy-ospfbfd-api-2026-10-14). Backend ux-ospf215, frontend ux-gre214; следующий216 — legacy BGP.
+1 -1
View File
@@ -1,6 +1,6 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
+11 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -38,6 +38,16 @@
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–196 и ограничения ниже. Runtime backend/frontend ux-peak196. |
## 12.5.215 — явные ошибки legacy OSPF/BFD API (2026-10-14)
Пять legacy GET (/ospf/neighbors, /interfaces, /instances, /all и /bfd/sessions) раньше возвращали200 с пустыми/неполными данными при отказе RouterOS. Теперь любой неудачный опрос даёт503 с serverId/serverName/error. Успешные массивы и пять ключей /ospf/all сохранены; правила parser defaults, права и сетевые операции не менялись. Активный frontend использует /ospf/catalog с отдельным контрактом частичных результатов; он сохранён.
Local HTTP25 и production SQL/native fixture25 проверили populated/empty/partial/all-failed/no enabled devices. Disabled Home Router не опрашивался, native writes0; временные PostgreSQL DB/roles удалены. Baseline предыдущего ux-gre212 подтвердил200 при отказах. Первичная fixture-проверка ошиблась из-за отсутствия disabled у instance и неверного учёта POST /get как записи: сохранён failed report, fixture исправлен без изменений CHR. Профили live-maps14 и ospf-optimizer5, backend build прошли.
Backend ux-ospf215: compiled1052 и source481 matched, healthy; frontend ux-gre214 сохранён. С настоящим Portal JWT прошли шесть GET, шесть anonymous401, native resource200 на обоих CHR и OSPF UI1440/320 без page errors или mutation requests. Это проверка здорового live опроса; ошибки вводились только в собственном HTTP fixture. Физический WAN loss и полная регрессия этим блоком не принимаются.
Протоколы: [baseline](ux-ui/acceptance/ospf215-baseline.json), [production SQL](ux-ui/acceptance/ospf215-fixed.json), [initial fixture failure](ux-ui/acceptance/ospf215-initial-fixture-failure.json), [build proof](ux-ui/acceptance/ospf215-build-proof-2026-10-14.json), [deployment](ux-ui/acceptance/ospf215-deployment-2026-10-14.json), [live](ux-ui/acceptance/ospf215-live-2026-10-14.json). Следующий216 — legacy BGP sessions для alerts: каталог содержит failures, но старый endpoint их отбрасывает.
## 12.5.214 — контраст метки IPsec на заполненной GRE-таблице (2026-10-13 — 2026-10-14)
После213 взят небольшой дополнительный блок доступности перед большим legacy OSPF/BFD. Baseline axe подтвердил color-contrast1,76:1 в светлой теме. В первоначальном mobile baseline метка не прокручивалась явно; отсутствие там violation не считается доказательством контраста. Ручные spans заменены штатным ReUI Badge invert-light, без изменения vendor components/theme. Конфигурация IPsec различается текстом и значком; метка не утверждает успешный handshake.
+7 -3
View File
@@ -1,10 +1,10 @@
# Оставшаяся внешняя приёмка — 2026-10-13
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
Это актуальная матрица после 12.5.214. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Это актуальная матрица после 12.5.215. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-gre212`, frontend `ux-gre214`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-ospf215`, frontend `ux-gre214`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
| Раздел | Подтверждено | Осталось / условие завершения |
| --- | --- | --- |
@@ -1501,3 +1501,7 @@ Production compiled SQL/API29 на собственной ограниченно
## 12.5.214 — GRE badge contrast (2026-10-14)
Подробности: [блок214 в журнале](ux-ui-progress.md). Scoped axe4 и live UI8 прошли; cleanup подтверждён. Backend ux-gre212, frontend ux-gre214.
## 12.5.215 — OSPF/BFD (2026-10-14)
Пять legacy endpoints возвращают503 при неполном опросе. Успешные envelopes сохранены; SQL25/localHTTP25 и live API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md#125215--явные-ошибки-legacy-ospfbfd-api-2026-10-14). Backend ux-ospf215, frontend ux-gre214; следующий216 — legacy BGP.
+12 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -3921,3 +3921,14 @@ Live: приложение создало по собственному откл
Следующий215: /ospf/neighbors, /ospf/interfaces, /ospf/instances, /ospf/all и /bfd/sessions — сохранить success envelopes, перестать скрывать partial/all-failed native reads как200/empty; собственные SQL/HTTP fixtures, без отключения CHR. Оставшиеся внешние ограничения сохраняются в матрице.
## 12.5.215 — явные ошибки legacy OSPF/BFD API (2026-10-14)
Пять legacy GET (/ospf/neighbors, /interfaces, /instances, /all и /bfd/sessions) раньше возвращали200 с пустыми/неполными данными при отказе RouterOS. Теперь любой неудачный опрос даёт503 с serverId/serverName/error. Успешные массивы и пять ключей /ospf/all сохранены; правила parser defaults, права и сетевые операции не менялись. Активный frontend использует /ospf/catalog с отдельным контрактом частичных результатов; он сохранён.
Local HTTP25 и production SQL/native fixture25 проверили populated/empty/partial/all-failed/no enabled devices. Disabled Home Router не опрашивался, native writes0; временные PostgreSQL DB/roles удалены. Baseline предыдущего ux-gre212 подтвердил200 при отказах. Первичная fixture-проверка ошиблась из-за отсутствия disabled у instance и неверного учёта POST /get как записи: сохранён failed report, fixture исправлен без изменений CHR. Профили live-maps14 и ospf-optimizer5, backend build прошли.
Backend ux-ospf215: compiled1052 и source481 matched, healthy; frontend ux-gre214 сохранён. С настоящим Portal JWT прошли шесть GET, шесть anonymous401, native resource200 на обоих CHR и OSPF UI1440/320 без page errors или mutation requests. Это проверка здорового live опроса; ошибки вводились только в собственном HTTP fixture. Физический WAN loss и полная регрессия этим блоком не принимаются.
Протоколы: [baseline](ux-ui/acceptance/ospf215-baseline.json), [production SQL](ux-ui/acceptance/ospf215-fixed.json), [initial fixture failure](ux-ui/acceptance/ospf215-initial-fixture-failure.json), [build proof](ux-ui/acceptance/ospf215-build-proof-2026-10-14.json), [deployment](ux-ui/acceptance/ospf215-deployment-2026-10-14.json), [live](ux-ui/acceptance/ospf215-live-2026-10-14.json). Следующий216 — legacy BGP sessions для alerts: каталог содержит failures, но старый endpoint их отбрасывает.
+5 -1
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 2026-10-14: блок214 завершён. Контраст заполненной метки GRE IPsec исправлен штатным ReUI Badge. Baseline1,76:1; четыре scoped axe fixtures и восемь live UI light/dark × reader/admin ×1440/320 прошли. Own GRE/ULA/PSK и Portal reader удалены. Backend ux-gre212, frontend ux-gre214/source527 совпал. Следующий215 — ошибки пяти legacy OSPF/BFD GET endpoints. Этап12.5 открыт.
Актуальное продолжение 2026-10-14: блок215 завершён. Пять legacy OSPF/BFD GET больше не скрывают частичные/полные отказы за200. Успешные envelopes сохранены. Local HTTP25, isolated production SQL25, profile14+5; compiled1052/source481 matched. Real Portal API6/anonymous6, native resource2 и OSPF UI1440/320 прошли. Own DB/roles удалены; CHR пароли не менялись. Backend ux-ospf215, frontend ux-gre214. Следующий216 — legacy BGP GET для оповещений. Этап12.5 открыт.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -2314,3 +2314,7 @@ Production compiled SQL/API29 на собственной ограниченно
## 12.5.214 — GRE badge contrast (2026-10-14)
Подробности: [блок214 в журнале](ux-ui-progress.md). Scoped axe4 и live UI8 прошли; cleanup подтверждён. Backend ux-gre212, frontend ux-gre214.
## 12.5.215 — OSPF/BFD (2026-10-14)
Пять legacy endpoints возвращают503 при неполном опросе. Успешные envelopes сохранены; SQL25/localHTTP25 и live API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md#125215--явные-ошибки-legacy-ospfbfd-api-2026-10-14). Backend ux-ospf215, frontend ux-gre214; следующий216 — legacy BGP.
+188
View File
@@ -0,0 +1,188 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"baseline": true,
"database": "mm_accept_166_1791912497373",
"cases": [
{
"phase": "populated",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "empty",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "partial",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "failed",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "disabled",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 0
}
],
"scope": "Compiled production routes/auth, isolated PostgreSQL and RouterOS HTTP fixture; real CHR unchanged",
"passed": true,
"nativeWrites": 0,
"disabledHomeRouterCalls": 0,
"ownedDatabaseAndRoleRemoved": true
}
@@ -0,0 +1,20 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"compiled": {
"matched": 1052,
"missing": 0,
"different": 0
},
"source": [
{
"kind": "backend",
"matched": 481
}
],
"profileScripts": {
"liveMaps": 14,
"ospfOptimizer": 5
},
"localHttpCases": 25
}
@@ -0,0 +1,21 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"backendSourceMatched": 481,
"compiledMatched": 1052,
"frontendChanged": false,
"services": {
"backend": {
"image": "mmapp-test/backend:ux-ospf215",
"imageId": "sha256:168e8fcb5e7779b4168194d87693c93a05cebbf3e923077d497a9eaee10b5bb0",
"running": true,
"health": "healthy"
},
"frontend": {
"image": "mmapp-test/frontend:ux-gre214",
"imageId": "sha256:7035e5ba628276a9927cce4814739dadd920dba0606e3b9fc316cc0262f77d5f",
"running": true,
"health": null
}
}
}
+188
View File
@@ -0,0 +1,188 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"baseline": false,
"database": "mm_accept_166_1791912590293",
"cases": [
{
"phase": "populated",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "empty",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "empty",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 2
},
{
"phase": "partial",
"endpoint": "ospf/neighbors",
"status": 503,
"failures": 1,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/interfaces",
"status": 503,
"failures": 1,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/instances",
"status": 503,
"failures": 1,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "ospf/all",
"status": 503,
"failures": 1,
"nativeCalls": 14
},
{
"phase": "partial",
"endpoint": "bfd/sessions",
"status": 503,
"failures": 1,
"nativeCalls": 2
},
{
"phase": "failed",
"endpoint": "ospf/neighbors",
"status": 503,
"failures": 2,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/interfaces",
"status": 503,
"failures": 2,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/instances",
"status": 503,
"failures": 2,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "ospf/all",
"status": 503,
"failures": 2,
"nativeCalls": 14
},
{
"phase": "failed",
"endpoint": "bfd/sessions",
"status": 503,
"failures": 2,
"nativeCalls": 2
},
{
"phase": "disabled",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/instances",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "ospf/all",
"status": 200,
"failures": 0,
"nativeCalls": 0
},
{
"phase": "disabled",
"endpoint": "bfd/sessions",
"status": 200,
"failures": 0,
"nativeCalls": 0
}
],
"scope": "Compiled production routes/auth, isolated PostgreSQL and RouterOS HTTP fixture; real CHR unchanged",
"passed": true,
"nativeWrites": 0,
"disabledHomeRouterCalls": 0,
"ownedDatabaseAndRoleRemoved": true
}
@@ -0,0 +1,27 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"baseline": true,
"database": "mm_accept_166_1791912375216",
"cases": [
{
"phase": "populated",
"endpoint": "ospf/neighbors",
"status": 200,
"failures": 0,
"nativeCalls": 14
},
{
"phase": "populated",
"endpoint": "ospf/interfaces",
"status": 200,
"failures": 0,
"nativeCalls": 18
}
],
"scope": "Compiled production routes/auth, isolated PostgreSQL and RouterOS HTTP fixture; real CHR unchanged",
"passed": false,
"errorName": "AssertionError",
"nativeWrites": 6,
"disabledHomeRouterCalls": 0
}
@@ -0,0 +1,74 @@
{
"date": "2026-10-14",
"block": "12.5.215",
"backend": "ux-ospf215",
"frontend": "ux-gre214",
"cases": [
{
"endpoint": "/api/ospf/neighbors",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
},
{
"endpoint": "/api/ospf/interfaces",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
},
{
"endpoint": "/api/ospf/instances",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
},
{
"endpoint": "/api/ospf/all",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
},
{
"endpoint": "/api/bfd/sessions",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
},
{
"endpoint": "/api/ospf/catalog",
"status": 200,
"anonymousStatus": 401,
"envelopePreserved": true
}
],
"hosts": [
{
"host": "194.226.121.150",
"nativeResourceStatus": 200,
"passwordUnchanged": true
},
{
"host": "104.165.244.7",
"nativeResourceStatus": 200,
"passwordUnchanged": true
}
],
"ui": [
{
"width": 1440,
"actualCatalogStatus": 200,
"pageErrors": 0,
"mutationRequests": 0
},
{
"width": 320,
"actualCatalogStatus": 200,
"pageErrors": 0,
"mutationRequests": 0
}
],
"realPortalJWT": true,
"apiMocks": false,
"nativeWrites": 0,
"scope": "Healthy live legacy/catalog GET and active OSPF UI; failures simulated only in isolated native HTTP fixture"
}