fix(api): сохранять ошибки наблюдения BGP для оповещений
This commit is contained in:
1 parent
5ac5a25dfc
commit
4f084222ad
18 files changed
+478
-25
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап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).
|
||||
|
||||
@@ -2587,3 +2587,7 @@ Production compiled SQL/API29 на собственной ограниченно
|
||||
## 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.5.216 — BGP snapshots (2026-10-14)
|
||||
|
||||
Неполный BGP poll больше не считается успешным пустым ответом/снимком. GRE при ошибке BGP сохраняется. Production17 и реальный API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md). Backend ux-bgp216, frontend ux-gre214; следующий217 — WAN runtime.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап12.5 открыт.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
|
||||
+11
-1
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап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.216 — неполный BGP опрос в legacy API и snapshots (2026-10-14)
|
||||
|
||||
Legacy /api/bgp/sessions возвращал sessions, отбрасывая failures. fetchBgpSessionsForAlerts также подавлял native errors через пустые массивы, и collector отмечал такой снимок без ошибки источника. Теперь endpoint возвращает503+failures, а источник snapshots отвергает неполный опрос. Collector записывает BGP error, сохраняет независимо прочитанный GRE; права, rules/evaluation и формат успешного массива не менялись. /bgp/catalog сохраняет отдельный контракт частичных результатов.
|
||||
|
||||
Пять профильных скриптов прошли: catalog HTTP, alert source (populated/empty/partial/failed/disabled/malformed), collector, history и guards сигналов. Backend build прошёл. Baseline ux-ospf215 и production ux-bgp216: по17 SQL/native-fixture проверок, включая anonymous401/wrong permission403 до native reads, пять фаз endpoint/catalog/compiled collector; native writes0 и disabled Home Router calls0. Первая fixture попытка использовала mm:network:read и вернула403: failure сохранён, fixture получил необходимое mm:bgp:read, отдельно оставлена проверка отказа неправильной роли. Все собственные DB/roles удалены.
|
||||
|
||||
Backend ux-bgp216 healthy: compiled1052/source483 matched; frontend ux-gre214 сохранён. Portal JWT: legacy/catalog GET200, anonymous401, native resource200 на обоих CHR, real BGP UI1440/320 без page errors/mutations. Сетевые настройки и пароли не менялись; Telegram не отправлялся. Ошибки вводились только в отдельном native HTTP fixture, физическая потеря WAN и полный alert delivery pipeline этим блоком не принимаются.
|
||||
|
||||
Протоколы: [baseline](ux-ui/acceptance/bgp216-baseline.json), [fixed](ux-ui/acceptance/bgp216-fixed.json), [initial fixture failure](ux-ui/acceptance/bgp216-initial-fixture-failure.json), [build](ux-ui/acceptance/bgp216-build-proof-2026-10-14.json), [deployment](ux-ui/acceptance/bgp216-deployment-2026-10-14.json), [live](ux-ui/acceptance/bgp216-live-2026-10-14.json). Следующий217 — legacy WAN runtime: подавление ошибок чтения и опрос выключенного устройства.
|
||||
|
||||
## 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 с отдельным контрактом частичных результатов; он сохранён.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Оставшаяся внешняя приёмка — 2026-10-13
|
||||
|
||||
Актуальное продолжение 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап12.5 открыт.
|
||||
|
||||
Это актуальная матрица после 12.5.215. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
Это актуальная матрица после 12.5.216. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
|
||||
Стенд: 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) проверены; пароли не менялись.
|
||||
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-bgp216`, frontend `ux-gre214`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
|
||||
|
||||
| Раздел | Подтверждено | Осталось / условие завершения |
|
||||
| --- | --- | --- |
|
||||
@@ -1505,3 +1505,7 @@ Production compiled SQL/API29 на собственной ограниченно
|
||||
## 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.5.216 — BGP snapshots (2026-10-14)
|
||||
|
||||
Неполный BGP poll больше не считается успешным пустым ответом/снимком. GRE при ошибке BGP сохраняется. Production17 и реальный API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md). Backend ux-bgp216, frontend ux-gre214; следующий217 — WAN runtime.
|
||||
+12
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап12.5 открыт.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -3932,3 +3932,14 @@ Backend ux-ospf215: compiled1052 и source481 matched, healthy; frontend ux-gre2
|
||||
|
||||
Протоколы: [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.216 — неполный BGP опрос в legacy API и snapshots (2026-10-14)
|
||||
|
||||
Legacy /api/bgp/sessions возвращал sessions, отбрасывая failures. fetchBgpSessionsForAlerts также подавлял native errors через пустые массивы, и collector отмечал такой снимок без ошибки источника. Теперь endpoint возвращает503+failures, а источник snapshots отвергает неполный опрос. Collector записывает BGP error, сохраняет независимо прочитанный GRE; права, rules/evaluation и формат успешного массива не менялись. /bgp/catalog сохраняет отдельный контракт частичных результатов.
|
||||
|
||||
Пять профильных скриптов прошли: catalog HTTP, alert source (populated/empty/partial/failed/disabled/malformed), collector, history и guards сигналов. Backend build прошёл. Baseline ux-ospf215 и production ux-bgp216: по17 SQL/native-fixture проверок, включая anonymous401/wrong permission403 до native reads, пять фаз endpoint/catalog/compiled collector; native writes0 и disabled Home Router calls0. Первая fixture попытка использовала mm:network:read и вернула403: failure сохранён, fixture получил необходимое mm:bgp:read, отдельно оставлена проверка отказа неправильной роли. Все собственные DB/roles удалены.
|
||||
|
||||
Backend ux-bgp216 healthy: compiled1052/source483 matched; frontend ux-gre214 сохранён. Portal JWT: legacy/catalog GET200, anonymous401, native resource200 на обоих CHR, real BGP UI1440/320 без page errors/mutations. Сетевые настройки и пароли не менялись; Telegram не отправлялся. Ошибки вводились только в отдельном native HTTP fixture, физическая потеря WAN и полный alert delivery pipeline этим блоком не принимаются.
|
||||
|
||||
Протоколы: [baseline](ux-ui/acceptance/bgp216-baseline.json), [fixed](ux-ui/acceptance/bgp216-fixed.json), [initial fixture failure](ux-ui/acceptance/bgp216-initial-fixture-failure.json), [build](ux-ui/acceptance/bgp216-build-proof-2026-10-14.json), [deployment](ux-ui/acceptance/bgp216-deployment-2026-10-14.json), [live](ux-ui/acceptance/bgp216-live-2026-10-14.json). Следующий217 — legacy WAN runtime: подавление ошибок чтения и опрос выключенного устройства.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Актуальное продолжение 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 открыт.
|
||||
Актуальное продолжение 2026-10-14: блок216 завершён. Legacy BGP GET и реальный источник BGP snapshots больше не скрывают неполный опрос. Ошибка наблюдения записывается в snapshot; GRE сохраняется. Пять профильных скриптов, SQL/native17 и live API2/anonymous2/native2/UI1440/320 прошли. Backend ux-bgp216/compiled1052/source483 matched, frontend ux-gre214; собственные DB/roles удалены, пароли CHR не менялись. Следующий217 — WAN runtime: скрытые read errors и disabled no-poll. Этап12.5 открыт.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -2318,3 +2318,7 @@ Production compiled SQL/API29 на собственной ограниченно
|
||||
## 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.5.216 — BGP snapshots (2026-10-14)
|
||||
|
||||
Неполный BGP poll больше не считается успешным пустым ответом/снимком. GRE при ошибке BGP сохраняется. Production17 и реальный API/UI приняты. Подробности и границы — [журнал](ux-ui-progress.md). Backend ux-bgp216, frontend ux-gre214; следующий217 — WAN runtime.
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"baseline": true,
|
||||
"database": "mm_accept_166_1791913047176",
|
||||
"cases": [
|
||||
{
|
||||
"phase": "anonymous",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 401,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "wrong permission",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 403,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 2,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 1,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 2,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 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,24 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"compiled": {
|
||||
"matched": 1052,
|
||||
"missing": 0,
|
||||
"different": 0
|
||||
},
|
||||
"source": [
|
||||
{
|
||||
"kind": "backend",
|
||||
"matched": 483
|
||||
}
|
||||
],
|
||||
"profileScripts": [
|
||||
"bgp-catalog",
|
||||
"bgp-peers-live",
|
||||
"gre-bgp-snapshot-collector",
|
||||
"gre-bgp-snapshot-history",
|
||||
"collector-source-signals"
|
||||
],
|
||||
"sourcePhases": 6,
|
||||
"productionCases": 17
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"backendSourceMatched": 483,
|
||||
"compiledMatched": 1052,
|
||||
"frontendChanged": false,
|
||||
"services": {
|
||||
"backend": {
|
||||
"image": "mmapp-test/backend:ux-bgp216",
|
||||
"imageId": "sha256:a479c4dfc6773cf19b6882b49ccf53b5ff92dcb44ebecb1cf223047bf59c2987",
|
||||
"running": true,
|
||||
"health": "healthy"
|
||||
},
|
||||
"frontend": {
|
||||
"image": "mmapp-test/frontend:ux-gre214",
|
||||
"imageId": "sha256:7035e5ba628276a9927cce4814739dadd920dba0606e3b9fc316cc0262f77d5f",
|
||||
"running": true,
|
||||
"health": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"baseline": false,
|
||||
"database": "mm_accept_166_1791913132006",
|
||||
"cases": [
|
||||
{
|
||||
"phase": "anonymous",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 401,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "wrong permission",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 403,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "populated",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 2,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "empty",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 0
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 503,
|
||||
"failures": 1,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 1,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "partial",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 1
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 503,
|
||||
"failures": 2,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 2,
|
||||
"nativeCalls": 2
|
||||
},
|
||||
{
|
||||
"phase": "failed",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 1
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "bgp/sessions",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "bgp/catalog",
|
||||
"status": 200,
|
||||
"failures": 0,
|
||||
"nativeCalls": 0
|
||||
},
|
||||
{
|
||||
"phase": "disabled",
|
||||
"endpoint": "compiled snapshot collector",
|
||||
"bgpWritten": 0,
|
||||
"greWritten": 1,
|
||||
"sourceErrors": 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,12 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"baseline": true,
|
||||
"database": "mm_accept_166_1791912911021",
|
||||
"cases": [],
|
||||
"scope": "Compiled production routes/auth, isolated PostgreSQL and RouterOS HTTP fixture; real CHR unchanged",
|
||||
"passed": false,
|
||||
"errorName": "AssertionError",
|
||||
"nativeWrites": 0,
|
||||
"disabledHomeRouterCalls": 0
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"date": "2026-10-14",
|
||||
"block": "12.5.216",
|
||||
"backend": "ux-bgp216",
|
||||
"frontend": "ux-gre214",
|
||||
"cases": [
|
||||
{
|
||||
"endpoint": "/api/bgp/sessions",
|
||||
"status": 200,
|
||||
"anonymousStatus": 401,
|
||||
"envelopePreserved": true
|
||||
},
|
||||
{
|
||||
"endpoint": "/api/bgp/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"
|
||||
}
|
||||
Reference in new issue
Block a user