chore(test): сопоставить REST клиенты и проверить сессии RouterOS

This commit is contained in:
Denozordec committed 2026-10-14 11:35:59 +07:00
1 parent ab48973eb9
commit e452e528e1
12 files changed
+5396 -9

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап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).
+1 -1
View File
@@ -1,6 +1,6 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
+18 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -36,7 +36,23 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–235 завершены в записанных scopes, этап открыт. Runtime backend ux-backup234/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–236 завершены в записанных scopes, этап открыт. Runtime backend ux-backup234/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. |
## 12.5.236 — коррелированная диагностика REST и гипотеза RouterOS-сессий (2026-10-14)
По поручению пользователя остаток окна направлен на REST. Исторические220/224401 получены непосредственно от104.165.244.7, включая независимый HTTP Connection close; UI/кэш приложения не являются единственным источником. У старого221500 на /interface/gre не сохранён detail/body, поэтому назначить ему причину по HTTP code нельзя.
Две vantage: workstation с явными test credentials и Debian production container со stored enabled-server rows.8 cycles ×2 hosts ×6 endpoints ×2 clients =384 samples:compiled MikrotikClient GET против independent fetch/Connection close, порядок чередуется. resource/GRE/BGP/OSPF/WireGuard/VXLAN — все200.40 diagnostic reads (user/group/service/resource/log) тоже успешны. Disabled devices не опрашивались. [Workstation](ux-ui/acceptance/chr236-workstation.json), [Debian](ux-ui/acceptance/chr236-debian.json).
Current user enabled, address restriction empty, api/rest-api policies true; www enabled/max sessions20, dynamic connections1–2, CPU0–2%, free RAM около813–815MB. Retained auth failures9/899 до/после не выросли; recent retained failures не указывают на test-debian/configured user. Это данные текущей выборки, не исключение изменений прав/credentials в прошлом и не rate/SLA.
/user/active показывает828 rest-api +2 api на194 и304 rest-api +2 api на104. После3 дополнительных resource reads и повторного active snapshot counts остались прежними (background polling не приостанавливался). Накопленный объём подтверждён; рост на каждом запросе/возраст/неактивность каждой записи не доказаны. [Sessions](ux-ui/acceptance/rest236-active-sessions.json), [delta0](ux-ui/acceptance/rest236-session-growth.json).
В официальном vendor announcement7.25rc, changes since7.24.5, указано исправление удаления inactive REST API sessions (introduced7.21). [Первичный changelog](https://forum.mikrotik.com/t/7-25rc-testing-is-released/273520/1). Официальная REST документация описывает cached API login10min; новая редакция проверена на7.25, поэтому её детали не объявляются экспериментом на7.24.5. [REST docs](https://manual.mikrotik.com/docs/developer-guides/rest-api/). Это конкретная гипотеза для version/renewal control, а не доказанный root cause старых401/500. Firmware/users/services/passwords не менялись; automatic request retries не добавлены.
Новый reproducible helper chr-rest-correlated.mjs сохраняет failure status/path/time/body SHA256/safe detail category и immediately independent control/diagnostics при сбое, не публикуя credentials/config bodies. В этой серии failure controls0, поскольку ошибки не повторились. ESLint и diff check passed, production build/deploy не требуются для acceptance script. Private workstation env удалён. [Итог/границы](ux-ui/acceptance/rest236-summary.json).
REST пункт остаётся открытым для причинности: получить correlated failure на renewal/long window либо отдельный согласованный version control с vendor fix. Тест длительностью около нескольких минут не покрывает10-minute renewal. Общий следующий237 — UX missing local files; другие группы матрицы сохраняются. Runtime backend ux-backup234/frontend ux-routing218. Этап12.5 открыт.
## 12.5.235 — постоянное хранение .rsc и реальные копии после пересоздания Docker (2026-10-14)
+3 -3
View File
@@ -1,8 +1,8 @@
# Оставшаяся внешняя приёмка — 2026-10-14
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт.
Это актуальная матрица после 12.5.235. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Это актуальная матрица после 12.5.236. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-backup234`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
@@ -12,7 +12,7 @@
| Группа | Что уже подтверждено | Оставшийся результат / что требуется |
| --- | --- | --- |
| REST и достоверность данных | Ошибки OSPF/BFD/BGP/GRE/WAN215–221 явные; latest API smoke222 прошёл | Причина единичных native401/500 неизвестна. Короткое независимое наблюдение возможно сейчас; оно не даст SLA |
| REST и достоверность данных | Ошибки OSPF/BFD/BGP/GRE/WAN215–221 явные; latest API smoke222 прошёл | Correlated236:384 samples/40 diagnostics без отказов; current policies/address/load исправны.828/304 retained REST sessions и vendor inactive-session fix — гипотеза; причинность401/500,10min renewal/version control остаются открытыми |
| Клиентские ОС и внешняя сеть | CHR↔CHR/Linux, private IPv4/ULA и synthetic IPv6/IPFIX; Android full-tunnel/reconnect227 подтверждены пользователем | Windows/macOS/iOS VPN, расширенная Android приёмка, независимые WAN/multi-WAN и public IPv6; public IPv6 на текущем стенде отсутствует |
| Масштаб и длительная устойчивость | Контролируемые lock/dedupe/loss/recovery и короткие native проверки | Несколько backend/worker/writers, длительный rekey/REST/traffic, physical disconnect и maximum throughput |
| Внешние хранилища и jobs | Локальные API/errors/RBAC/owned SQL; реальные Portal1.3.1/Telegram195–201 и Selectel S3/client/API/ownSQL228–229 | Large native exports проверены HTTP fixture; S3 restore через UI, missing local files UX, миграция между buckets/multi-instance и retention; provider/container/Gitea/MaxMind jobs с соответствующими endpoints/аккаунтами; private/paid credentials не выдумывать |
+18 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -4151,3 +4151,20 @@ Real Portal/browser API, provider local verified: создан один job ро
Runtime backend ux-backup234/frontend ux-routing218 healthy; новое application image для volume-only fix не требовалось. Пароли CHR не менялись, S3 mutations0 в235, configs body/JWT не опубликованы, private local manifest удалён. Исходные10 missing local files не восстановлены и records не удалены. Force-recreate — не host reboot/power loss/fsync/DR приёмка. Далее236 — UX недоступных local files, затем version retention границы и оставшиеся7 группы матрицы; multi-instance guard не принимается. Этап12.5 открыт.
## 12.5.236 — коррелированная диагностика REST и гипотеза RouterOS-сессий (2026-10-14)
По поручению пользователя остаток окна направлен на REST. Исторические220/224401 получены непосредственно от104.165.244.7, включая независимый HTTP Connection close; UI/кэш приложения не являются единственным источником. У старого221500 на /interface/gre не сохранён detail/body, поэтому назначить ему причину по HTTP code нельзя.
Две vantage: workstation с явными test credentials и Debian production container со stored enabled-server rows.8 cycles ×2 hosts ×6 endpoints ×2 clients =384 samples:compiled MikrotikClient GET против independent fetch/Connection close, порядок чередуется. resource/GRE/BGP/OSPF/WireGuard/VXLAN — все200.40 diagnostic reads (user/group/service/resource/log) тоже успешны. Disabled devices не опрашивались. [Workstation](ux-ui/acceptance/chr236-workstation.json), [Debian](ux-ui/acceptance/chr236-debian.json).
Current user enabled, address restriction empty, api/rest-api policies true; www enabled/max sessions20, dynamic connections1–2, CPU0–2%, free RAM около813–815MB. Retained auth failures9/899 до/после не выросли; recent retained failures не указывают на test-debian/configured user. Это данные текущей выборки, не исключение изменений прав/credentials в прошлом и не rate/SLA.
/user/active показывает828 rest-api +2 api на194 и304 rest-api +2 api на104. После3 дополнительных resource reads и повторного active snapshot counts остались прежними (background polling не приостанавливался). Накопленный объём подтверждён; рост на каждом запросе/возраст/неактивность каждой записи не доказаны. [Sessions](ux-ui/acceptance/rest236-active-sessions.json), [delta0](ux-ui/acceptance/rest236-session-growth.json).
В официальном vendor announcement7.25rc, changes since7.24.5, указано исправление удаления inactive REST API sessions (introduced7.21). [Первичный changelog](https://forum.mikrotik.com/t/7-25rc-testing-is-released/273520/1). Официальная REST документация описывает cached API login10min; новая редакция проверена на7.25, поэтому её детали не объявляются экспериментом на7.24.5. [REST docs](https://manual.mikrotik.com/docs/developer-guides/rest-api/). Это конкретная гипотеза для version/renewal control, а не доказанный root cause старых401/500. Firmware/users/services/passwords не менялись; automatic request retries не добавлены.
Новый reproducible helper chr-rest-correlated.mjs сохраняет failure status/path/time/body SHA256/safe detail category и immediately independent control/diagnostics при сбое, не публикуя credentials/config bodies. В этой серии failure controls0, поскольку ошибки не повторились. ESLint и diff check passed, production build/deploy не требуются для acceptance script. Private workstation env удалён. [Итог/границы](ux-ui/acceptance/rest236-summary.json).
REST пункт остаётся открытым для причинности: получить correlated failure на renewal/long window либо отдельный согласованный version control с vendor fix. Тест длительностью около нескольких минут не покрывает10-minute renewal. Общий следующий237 — UX missing local files; другие группы матрицы сохраняются. Runtime backend ux-backup234/frontend ux-routing218. Этап12.5 открыт.
+1 -1
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Актуальное продолжение 2026-10-14:230–235 — реальные S3 backup/ограниченный restore/UI, native /file/read, защита подключения/гонок и legacy restore приняты. Исправлены5 Compose variants: /app/storage/backups подключён к host data/backups.2 native CHR backups пережили force-recreate, API SHA256 matched, own files/catalog очищены; original10 rows сохранены, их ранее отсутствующие files не восстановлены. Backend ux-backup234/frontend ux-routing218 healthy. Далее236 — недоступные local files в UX/границы retention и оставшаяся матрица12.5. Этап открыт.
Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт.
| Параметр | Проверенное состояние |
| --- | --- |
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,25 @@
{
"date": "2026-10-14",
"block": "12.5.236",
"devices": [
{
"host": "104.165.244.7",
"activeSessions": 306,
"byVia": {
"rest-api": 304,
"api": 2
},
"forConfiguredUser": 306
},
{
"host": "194.226.121.150",
"activeSessions": 830,
"byVia": {
"rest-api": 828,
"api": 2
},
"forConfiguredUser": 830
}
],
"configurationWrites": 0
}
@@ -0,0 +1,57 @@
{
"date": "2026-10-14",
"block": "12.5.236",
"devices": [
{
"host": "104.165.244.7",
"before": {
"total": 306,
"rest": 304,
"api": 2
},
"after": {
"total": 306,
"rest": 304,
"api": 2
},
"restDelta": 0,
"explicitReadsBetweenSnapshots": 3,
"backgroundPollingNotPaused": true,
"recordKeys": [
".id",
"address",
"group",
"name",
"radius",
"via",
"when"
]
},
{
"host": "194.226.121.150",
"before": {
"total": 830,
"rest": 828,
"api": 2
},
"after": {
"total": 830,
"rest": 828,
"api": 2
},
"restDelta": 0,
"explicitReadsBetweenSnapshots": 3,
"backgroundPollingNotPaused": true,
"recordKeys": [
".id",
"address",
"group",
"name",
"radius",
"via",
"when"
]
}
],
"configurationWrites": 0
}
@@ -0,0 +1,37 @@
{
"date": "2026-10-14",
"block": "12.5.236",
"samples": 384,
"failedSamples": 0,
"diagnosticReads": 40,
"disabledDeviceReads": 0,
"configurationWrites": 0,
"passwordChanges": 0,
"findings": {
"currentCredentialsAndPoliciesWork": true,
"persistentAddressRestrictionObserved": false,
"currentWwwSessionsBelowLimit": true,
"retainedRestSessions": {
"194.226.121.150": 828,
"104.165.244.7": 304
},
"internalApiSessionsPerDevice": 2,
"restGrowthDuringThreeAdditionalReads": 0
},
"rootCauseKnown": false,
"routerOs": "7.24.5",
"candidate": {
"kind": "inactive-rest-session-cleanup",
"status": "vendor-fixed-related-defect-not-proven-cause-of-historical-errors",
"source": "https://forum.mikrotik.com/t/7-25rc-testing-is-released/273520/1",
"fixedInAnnouncement": "7.25rc changes since 7.24.5",
"introducedSince": "7.21"
},
"limits": [
"Old500 detail body was not recorded",
"No failure occurred during current correlated observation",
"No 10-minute login renewal or firmware comparison",
"Stored failure logs are retained history, not current request rate",
"Current valid credentials/policies do not establish historical state"
]
}