chore(test): сохранить короткое наблюдение REST тестовых CHR

This commit is contained in:
Denozordec committed 2026-10-14 03:09:09 +07:00
1 parent c21deba804
commit cbb4f9f0fc
8 files changed
+1206 -8

No files matched your search

@@ -0,0 +1,12 @@
import assert from 'node:assert/strict'
import fs from 'node:fs'
const hosts=(process.env.MMAPP_TEST_CHR_HOSTS??'').split(',');assert.deepEqual(hosts,['194.226.121.150','104.165.244.7'],'Explicit owned lab hosts required')
const username=process.env.MMAPP_TEST_CHR_USER,password=process.env.MMAPP_TEST_CHR_PASSWORD;assert(username&&password,'Explicit test credentials required')
const authorization='Basic '+Buffer.from(username+':'+password).toString('base64'),paths=['/system/resource','/interface/gre','/routing/bgp/session','/routing/ospf/neighbor'],cases=[],start=Date.now(),deadline=start+360000,samples=20,periodMs=10000
const sleep=ms=>new Promise(r=>setTimeout(r,ms)),output='docs/ux-ui/acceptance/chr224-rest-observation-2026-10-14.json'
function save(completed){const failed=cases.filter(c=>c.status!==200);fs.writeFileSync(output,JSON.stringify({date:'2026-10-14',block:'12.5.224',startedAt:new Date(start).toISOString(),completedAt:new Date().toISOString(),plannedSamples:samples,completedSamples:completed,periodMs,requests:cases.length,failedRequests:failed.length,cases,configurationWrites:0,passwordChanges:0,scope:'Low-rate direct native REST with Connection close; short window, no burst/load/physical WAN/SLA/root-cause proof'},null,2)+'\n')}
for(let sample=1;sample<=samples;sample++){
if(Date.now()>deadline)break
for(const host of hosts)for(const path of paths){const began=Date.now();try{const r=await fetch('http://'+host+'/rest'+path,{headers:{authorization,Connection:'close'},signal:AbortSignal.timeout(8000)});await r.arrayBuffer();cases.push({sample,host,path,status:r.status,durationMs:Date.now()-began})}catch(e){cases.push({sample,host,path,status:null,errorName:e.name,durationMs:Date.now()-began})}await sleep(150)}
save(sample);console.log(JSON.stringify({completedSamples:sample,requests:cases.length,failedRequests:cases.filter(c=>c.status!==200).length}));if(sample<samples)await sleep(Math.max(0,start+sample*periodMs-Date.now()))
}
+5 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5 # UX/UI: протокол внешней приёмки 12.5
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
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). 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).
@@ -2619,3 +2619,7 @@ Backend25/UI52, disabled33/months5 и оба IPv6 UDP/SQL worker режима п
## 12.5.223 — текущая сводка (2026-10-14) ## 12.5.223 — текущая сводка (2026-10-14)
Runtime backend ux-regression222/frontend ux-routing218. Latest backend25/UI52 и специальные SQL/UDP222 passed; Portal/Telegram приняты195–201 в записанных границах. Остаток —7 групп в [плане](ux-ui-plan.md). Следующий224 — краткое наблюдение REST; источник причины единичных401/500 пока неизвестен. Runtime backend ux-regression222/frontend ux-routing218. Latest backend25/UI52 и специальные SQL/UDP222 passed; Portal/Telegram приняты195–201 в записанных границах. Остаток —7 групп в [плане](ux-ui-plan.md). Следующий224 — краткое наблюдение REST; источник причины единичных401/500 пока неизвестен.
## 12.5.224 — REST выборка (2026-10-14)
160 readonly requests: первый CHR80/80×200, второй78/80×200 и2 initial401; последний цикл200 обоих. Root cause/SLA не приняты, services/credentials не менялись. [Отчёт](ux-ui/acceptance/chr224-rest-observation-2026-10-14.json). Следующий225 — transient REST/auth диагностика104.
+1 -1
View File
@@ -1,6 +1,6 @@
# План реализации UX/UI по пятичасовым окнам # План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
+10 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации # UX/UI: журнал реализации
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -36,7 +36,15 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 | | 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 | | 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–223 завершены в записанных scopes, этап открыт. Runtime backend ux-regression222/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–224 завершены в записанных scopes, этап открыт. Runtime backend ux-regression222/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
## 12.5.224 — короткая независимая REST выборка CHR (2026-10-14)
20 cycles с10s period,4 GET endpoints×2 hosts: system/resource, interface/gre, BGP sessions, OSPF neighbors. Контрольные запросы последовательны с150ms паузами и Connection close; учётные данные постоянны в рамках run, тела/credentials в отчёт не сохранялись. Read-only helper требует явные credentials через env и точные owned lab hosts. Writes/password changes0; baseline native объекты не создавались.
194.226.121.150:80/80×200.104.165.244.7:78/80×200, первые resource/GRE дали401 с задержкой~1,4s; последующие endpoints/циклы200. HTTP500 и transport errors в данной выборке0. Last cycle всех endpoints200. Это подтверждает доступность в конце окна, но не устойчивость/SLA или причину401. Первичные220401 и221500 остаются отдельными сохранёнными фактами; successful retries не объяснили их причину. Services/passwords не менялись.
[Отчёт160](ux-ui/acceptance/chr224-rest-observation-2026-10-14.json), воспроизводимый readonly runner — backend/scripts/acceptance/chr-rest-observation.mjs (без credentials). Последняя сборка backend ux-regression222/frontend ux-routing218. Следующий225 — сопоставить transient HTTP auth challenge с source IP/time/service logs на104, не вводить auth retries для mutation и не менять доступ без необходимости. Затем приёмка по7 группам матрицы. Этап12.5 открыт.
## 12.5.223 — согласованный план и укрупнённый остаток (2026-10-14) ## 12.5.223 — согласованный план и укрупнённый остаток (2026-10-14)
+6 -2
View File
@@ -1,8 +1,8 @@
# Оставшаяся внешняя приёмка — 2026-10-14 # Оставшаяся внешняя приёмка — 2026-10-14
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
Это актуальная матрица после 12.5.223. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. Это актуальная матрица после 12.5.224. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-regression222`, frontend `ux-routing218`; 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-regression222`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
@@ -1549,3 +1549,7 @@ BGP/OSPF contrast: baseline22/fixed104 cells0 violations; E2E22 и real UI8 pass
## 12.5.222 — backend/worker регрессия (2026-10-14) ## 12.5.222 — backend/worker регрессия (2026-10-14)
Backend25/UI52, disabled33/months5 и оба IPv6 UDP/SQL worker режима прошли; own DB/roles удалены. Dev bootstrap исправлен, production entry сохранён. Подробности и границы — [журнал](ux-ui-progress.md). Backend ux-regression222, frontend ux-routing218; следующий223 — актуализация матрицы/статусов. Backend25/UI52, disabled33/months5 и оба IPv6 UDP/SQL worker режима прошли; own DB/roles удалены. Dev bootstrap исправлен, production entry сохранён. Подробности и границы — [журнал](ux-ui-progress.md). Backend ux-regression222, frontend ux-routing218; следующий223 — актуализация матрицы/статусов.
## 12.5.224 — REST выборка (2026-10-14)
160 readonly requests: первый CHR80/80×200, второй78/80×200 и2 initial401; последний цикл200 обоих. Root cause/SLA не приняты, services/credentials не менялись. [Отчёт](ux-ui/acceptance/chr224-rest-observation-2026-10-14.json). Следующий225 — transient REST/auth диагностика104.
+10 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI # Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -4024,3 +4024,12 @@ Backend ux-regression222 compiled1056/source492 matched, healthy; frontend ux-ro
Следующий224 — краткая независимая REST выборка обоих CHR после единичных native401/500; только чтение, без изменения служб/паролей. Затем приёмка по группам матрицы с явными prerequisites. Этап12.5 открыт. Следующий224 — краткая независимая REST выборка обоих CHR после единичных native401/500; только чтение, без изменения служб/паролей. Затем приёмка по группам матрицы с явными prerequisites. Этап12.5 открыт.
## 12.5.224 — короткая независимая REST выборка CHR (2026-10-14)
20 cycles с10s period,4 GET endpoints×2 hosts: system/resource, interface/gre, BGP sessions, OSPF neighbors. Контрольные запросы последовательны с150ms паузами и Connection close; учётные данные постоянны в рамках run, тела/credentials в отчёт не сохранялись. Read-only helper требует явные credentials через env и точные owned lab hosts. Writes/password changes0; baseline native объекты не создавались.
194.226.121.150:80/80×200.104.165.244.7:78/80×200, первые resource/GRE дали401 с задержкой~1,4s; последующие endpoints/циклы200. HTTP500 и transport errors в данной выборке0. Last cycle всех endpoints200. Это подтверждает доступность в конце окна, но не устойчивость/SLA или причину401. Первичные220401 и221500 остаются отдельными сохранёнными фактами; successful retries не объяснили их причину. Services/passwords не менялись.
[Отчёт160](ux-ui/acceptance/chr224-rest-observation-2026-10-14.json), воспроизводимый readonly runner — backend/scripts/acceptance/chr-rest-observation.mjs (без credentials). Последняя сборка backend ux-regression222/frontend ux-routing218. Следующий225 — сопоставить transient HTTP auth challenge с source IP/time/service logs на104, не вводить auth retries для mutation и не менять доступ без необходимости. Затем приёмка по7 группам матрицы. Этап12.5 открыт.
+5 -1
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10 # Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 2026-10-14: блок223 завершён. План/журнал/матрица согласованы с222: backend ux-regression222, frontend ux-routing218; backend25, UI52 и специальные SQL/UDP проверки приняты в описанных границах. Portal195–199/Telegram201 не считаются заново открытыми. Остаток сведён в7 групп; этап12.5 открыт. Следующий224 — короткое независимое наблюдение REST обоих CHR после единичных401/500, без изменения служб/паролей. Актуальное продолжение 2026-10-14: блок224 завершён. Короткая REST выборка20cycles/160requests:194.226.121.15080/80×200;104.165.244.7 78/80×200, первые2 запросы401, последующие200;500 в этой выборке0. Cause неизвестна, последние чтения обоих доступны. Конфигурация/пароли не менялись. Backend ux-regression222/frontend ux-routing218; этап12.5 открыт. Следующий225 — диагностировать intermittent auth/REST104 с сопоставлением HTTP/логов, затем продолжать7 групп матрицы.
| Параметр | Проверенное состояние | | Параметр | Проверенное состояние |
| --- | --- | | --- | --- |
@@ -2350,3 +2350,7 @@ Backend25/UI52, disabled33/months5 и оба IPv6 UDP/SQL worker режима п
## 12.5.223 — текущая сводка (2026-10-14) ## 12.5.223 — текущая сводка (2026-10-14)
Runtime backend ux-regression222/frontend ux-routing218. Latest backend25/UI52 и специальные SQL/UDP222 passed; Portal/Telegram приняты195–201 в записанных границах. Остаток —7 групп в [плане](ux-ui-plan.md). Следующий224 — краткое наблюдение REST; источник причины единичных401/500 пока неизвестен. Runtime backend ux-regression222/frontend ux-routing218. Latest backend25/UI52 и специальные SQL/UDP222 passed; Portal/Telegram приняты195–201 в записанных границах. Остаток —7 групп в [плане](ux-ui-plan.md). Следующий224 — краткое наблюдение REST; источник причины единичных401/500 пока неизвестен.
## 12.5.224 — REST выборка (2026-10-14)
160 readonly requests: первый CHR80/80×200, второй78/80×200 и2 initial401; последний цикл200 обоих. Root cause/SLA не приняты, services/credentials не менялись. [Отчёт](ux-ui/acceptance/chr224-rest-observation-2026-10-14.json). Следующий225 — transient REST/auth диагностика104.
File diff suppressed because it is too large. Load diff