chore(tests): подключить тестовый Portal и подтвердить Telegram
This commit is contained in:
1 parent
efdfc6f224
commit
a15917d08b
10 files changed
+211
-14
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# UX/UI: протокол внешней приёмки 12.5
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.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).
|
||||
|
||||
@@ -696,7 +696,7 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -2354,3 +2354,19 @@ Frontend:59 lib test files прошли с одной исправленной
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
|
||||
## 12.5.195 — реальный Portal1.3.1 и доставка Telegram (2026-10-13)
|
||||
|
||||
По прямому поручению пользователя установлен предоставленный auth-portal1.3.1 на том же Debian-стенде. Исходник прочитан из git.shx.one/denozord/auth-portal, точный tagv1.3.1=2e947b5a31d7bd6c17aff8dba3917fabf6640b91; опубликованный образ закреплён digestsha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489. Byte/compiled совпадение образа с исходником не заявлено. Отдельная SQLite/data и bootstrap admin, случайные собственные admin password/HS256 secret, JWT lifetime900s, issuer/portal http://localhost:5175, allowlist только localhost/127.0.0.1:3000. Portal доступен через loopback/SSH, не публичный порт. Исходный .env приложения не копировался и не переписывался: новая закрытая compose.override.yaml задаёт только Portal и AUTH_* overrides. Portal/backend/PG healthy, frontend running. Backend194/frontend191 сохранены, source build не требовался для настройки.
|
||||
|
||||
Настоящий login API выдал Portal JWT с appmm и ожидаемым issuer. Приложение работает с AUTH_REQUIRED=true: без JWT401, реальный admin200, читатель mm:servers:read GET200/валидный create POST403, пользователь без appmm GET/POST403, повреждённая подпись401. Настоящий browser без API mocks прошёл MM→Portal login→callback→dashboard→servers; токен записан в storage, fragment удалён, page errors0. Начальные UI-harness ожидания h1«Обзор/Серверы» не соответствовали существующему PageHeader с breadcrumbs; тест исправлен под реальные route/button, UI source не менялся. Два основных own пользователя и оставшиеся fixtures первых попыток удалены через Portal API; bootstrap admin сохранён для доступа к стенду.
|
||||
|
||||
Отзыв проверен с явной границей: revoke-all отменяет refresh sessions, disabled user не логинится/Portal me401. Уже выданный access JWT MikrotikManager продолжает принимать200 доexp, поскольку backend проверяет подпись/issuer/exp offline и не проверяет состояние пользователя в Portal. Это не мгновенное глобальное revoke. Реальное истечение900s, passkey/OIDC и физические client OS в этом блоке не приняты.
|
||||
|
||||
По предоставленным тестовым bot/chat_id сохранены параметры через штатный API под настоящим Portal JWT. До настройки groups/rules0/outbox0: старых сообщений для рассылки нет. Первая send попытка получила502/unknown: с Debian недоступен TCP443 на DNS endpoint149.154.166.110; getMe и curl подтвердили connection timeout. Проверенный TLS endpoint149.154.167.220 того же api.telegram.org доступен. Для backend добавлен временный lab-only extra_hosts; TLS verification не отключался, произвольный proxy/mirror не использовался. После getMe200 (botId совпал) одна контролируемая send через штатный API принята. Всего2 send requests: initial unknown и verified transport control; не утверждать, что неизвестная отправка доказанно не состоялась. Пользователь подтвердил получение текста «MikroTik Manager — тест оповещений (Telegram).». Токен находится в закрытой конфигурации/БД стенда, в Git/публичные отчёты не включён. Автоматические rule/recovery/outbox/retry delivery ещё отдельная приёмка.
|
||||
|
||||
Протоколы: [runtime](ux-ui/acceptance/portal195-runtime-2026-10-13.json), [actual JWT/RBAC/revoke](ux-ui/acceptance/portal-live-api-2026-10-13.json), [real browser SSO](ux-ui/acceptance/portal195-browser-admin-2026-10-13.json), [Telegram + human receipt](ux-ui/acceptance/telegram195-provider-2026-10-13.json). Данные входа bootstrap admin — локальный gitignored tmp/portal195-login.txt и закрытый файл стенда; секреты не публиковать в журнале.
|
||||
|
||||
Найден следующий196: настоящее reader JWT получает plaintext password CHR через GETservers. Подтверждён только boolean совпадения, секрет не выведен. Также authPortalBaseUrl для ссылки AppsMenu использует NEXT_PUBLIC_AUTH_PORTAL_URL сборки вместо текущего runtime Portal URL; hook switcher fetch уже использует runtime. Исправить оба API/UI недостатка, проверить reader/writer/admin и реальный Portal на ПК/телефоне, собрать/развернуть и создать локальный commit. Это ограничивает принятие приватности/навигации, но не отменяет доказанный базовый SSO/Telegram transport.
|
||||
|
||||
Пользователь подтвердил отсутствие public IPv6 на всех его стендах — внешняя IPv6 outer приёмка сейчас недоступна. Проверку crash/lock-connection loss из прежнего следующего195 перенести после Portal/Telegram.12.5 открыта.
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
## Актуальная точка продолжения — 2026-10-13
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка, Portal SSO, multi-instance и оставшиеся профильные сетевые ограничения открыты.
|
||||
|
||||
@@ -371,6 +371,6 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
+18
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.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–194 и ограничения ниже. Runtime backend ux-peak194/frontend ux-peak191. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–195 и ограничения ниже. Runtime backend ux-peak194/frontend ux-peak191. |
|
||||
|
||||
## 12.5.195 — реальный Portal1.3.1 и доставка Telegram (2026-10-13)
|
||||
|
||||
По прямому поручению пользователя установлен предоставленный auth-portal1.3.1 на том же Debian-стенде. Исходник прочитан из git.shx.one/denozord/auth-portal, точный tagv1.3.1=2e947b5a31d7bd6c17aff8dba3917fabf6640b91; опубликованный образ закреплён digestsha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489. Byte/compiled совпадение образа с исходником не заявлено. Отдельная SQLite/data и bootstrap admin, случайные собственные admin password/HS256 secret, JWT lifetime900s, issuer/portal http://localhost:5175, allowlist только localhost/127.0.0.1:3000. Portal доступен через loopback/SSH, не публичный порт. Исходный .env приложения не копировался и не переписывался: новая закрытая compose.override.yaml задаёт только Portal и AUTH_* overrides. Portal/backend/PG healthy, frontend running. Backend194/frontend191 сохранены, source build не требовался для настройки.
|
||||
|
||||
Настоящий login API выдал Portal JWT с appmm и ожидаемым issuer. Приложение работает с AUTH_REQUIRED=true: без JWT401, реальный admin200, читатель mm:servers:read GET200/валидный create POST403, пользователь без appmm GET/POST403, повреждённая подпись401. Настоящий browser без API mocks прошёл MM→Portal login→callback→dashboard→servers; токен записан в storage, fragment удалён, page errors0. Начальные UI-harness ожидания h1«Обзор/Серверы» не соответствовали существующему PageHeader с breadcrumbs; тест исправлен под реальные route/button, UI source не менялся. Два основных own пользователя и оставшиеся fixtures первых попыток удалены через Portal API; bootstrap admin сохранён для доступа к стенду.
|
||||
|
||||
Отзыв проверен с явной границей: revoke-all отменяет refresh sessions, disabled user не логинится/Portal me401. Уже выданный access JWT MikrotikManager продолжает принимать200 доexp, поскольку backend проверяет подпись/issuer/exp offline и не проверяет состояние пользователя в Portal. Это не мгновенное глобальное revoke. Реальное истечение900s, passkey/OIDC и физические client OS в этом блоке не приняты.
|
||||
|
||||
По предоставленным тестовым bot/chat_id сохранены параметры через штатный API под настоящим Portal JWT. До настройки groups/rules0/outbox0: старых сообщений для рассылки нет. Первая send попытка получила502/unknown: с Debian недоступен TCP443 на DNS endpoint149.154.166.110; getMe и curl подтвердили connection timeout. Проверенный TLS endpoint149.154.167.220 того же api.telegram.org доступен. Для backend добавлен временный lab-only extra_hosts; TLS verification не отключался, произвольный proxy/mirror не использовался. После getMe200 (botId совпал) одна контролируемая send через штатный API принята. Всего2 send requests: initial unknown и verified transport control; не утверждать, что неизвестная отправка доказанно не состоялась. Пользователь подтвердил получение текста «MikroTik Manager — тест оповещений (Telegram).». Токен находится в закрытой конфигурации/БД стенда, в Git/публичные отчёты не включён. Автоматические rule/recovery/outbox/retry delivery ещё отдельная приёмка.
|
||||
|
||||
Протоколы: [runtime](ux-ui/acceptance/portal195-runtime-2026-10-13.json), [actual JWT/RBAC/revoke](ux-ui/acceptance/portal-live-api-2026-10-13.json), [real browser SSO](ux-ui/acceptance/portal195-browser-admin-2026-10-13.json), [Telegram + human receipt](ux-ui/acceptance/telegram195-provider-2026-10-13.json). Данные входа bootstrap admin — локальный gitignored tmp/portal195-login.txt и закрытый файл стенда; секреты не публиковать в журнале.
|
||||
|
||||
Найден следующий196: настоящее reader JWT получает plaintext password CHR через GETservers. Подтверждён только boolean совпадения, секрет не выведен. Также authPortalBaseUrl для ссылки AppsMenu использует NEXT_PUBLIC_AUTH_PORTAL_URL сборки вместо текущего runtime Portal URL; hook switcher fetch уже использует runtime. Исправить оба API/UI недостатка, проверить reader/writer/admin и реальный Portal на ПК/телефоне, собрать/развернуть и создать локальный commit. Это ограничивает принятие приватности/навигации, но не отменяет доказанный базовый SSO/Telegram transport.
|
||||
|
||||
Пользователь подтвердил отсутствие public IPv6 на всех его стендах — внешняя IPv6 outer приёмка сейчас недоступна. Проверку crash/lock-connection loss из прежнего следующего195 перенести после Portal/Telegram.12.5 открыта.
|
||||
|
||||
## 12.5.194 — трафик: координация опроса разных backend-процессов (2026-10-13)
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Оставшаяся внешняя приёмка — 2026-10-13
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Это актуальная матрица после 12.5.194. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
Это актуальная матрица после 12.5.195. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
|
||||
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-peak194`, frontend `ux-peak191`; production lab использует AUTH_REQUIRED=false. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
|
||||
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-peak194`, frontend `ux-peak191`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
|
||||
|
||||
| Раздел | Подтверждено | Осталось / условие завершения |
|
||||
| --- | --- | --- |
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
## Следующая последовательность — 2026-10-13
|
||||
|
||||
1. **195 — failure/recovery межпроцессного опроса:** проверить аварийное завершение holder процесса и неопределённость lock connection в собственной БД, не приравнивая session lock к fencing. Общая192 E2E1286/backend24 профиля/frontend59 files принята; runtime backend194/frontend191.
|
||||
1. **196 — приватность серверов и runtime Portal links:** скрыть password от reader JWT, сохранить writer/admin редактирование; исправить ссылку AppsMenu на runtime Portal.195 базовый SSO/Telegram транспорт принят, автоматические доставки/expiry/revoke boundary ещё открыты. Затем вернуться к crash/lock-loss.
|
||||
2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания.
|
||||
3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций.
|
||||
|
||||
@@ -1270,3 +1270,19 @@ Frontend:59 lib test files прошли с одной исправленной
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
|
||||
## 12.5.195 — реальный Portal1.3.1 и доставка Telegram (2026-10-13)
|
||||
|
||||
По прямому поручению пользователя установлен предоставленный auth-portal1.3.1 на том же Debian-стенде. Исходник прочитан из git.shx.one/denozord/auth-portal, точный tagv1.3.1=2e947b5a31d7bd6c17aff8dba3917fabf6640b91; опубликованный образ закреплён digestsha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489. Byte/compiled совпадение образа с исходником не заявлено. Отдельная SQLite/data и bootstrap admin, случайные собственные admin password/HS256 secret, JWT lifetime900s, issuer/portal http://localhost:5175, allowlist только localhost/127.0.0.1:3000. Portal доступен через loopback/SSH, не публичный порт. Исходный .env приложения не копировался и не переписывался: новая закрытая compose.override.yaml задаёт только Portal и AUTH_* overrides. Portal/backend/PG healthy, frontend running. Backend194/frontend191 сохранены, source build не требовался для настройки.
|
||||
|
||||
Настоящий login API выдал Portal JWT с appmm и ожидаемым issuer. Приложение работает с AUTH_REQUIRED=true: без JWT401, реальный admin200, читатель mm:servers:read GET200/валидный create POST403, пользователь без appmm GET/POST403, повреждённая подпись401. Настоящий browser без API mocks прошёл MM→Portal login→callback→dashboard→servers; токен записан в storage, fragment удалён, page errors0. Начальные UI-harness ожидания h1«Обзор/Серверы» не соответствовали существующему PageHeader с breadcrumbs; тест исправлен под реальные route/button, UI source не менялся. Два основных own пользователя и оставшиеся fixtures первых попыток удалены через Portal API; bootstrap admin сохранён для доступа к стенду.
|
||||
|
||||
Отзыв проверен с явной границей: revoke-all отменяет refresh sessions, disabled user не логинится/Portal me401. Уже выданный access JWT MikrotikManager продолжает принимать200 доexp, поскольку backend проверяет подпись/issuer/exp offline и не проверяет состояние пользователя в Portal. Это не мгновенное глобальное revoke. Реальное истечение900s, passkey/OIDC и физические client OS в этом блоке не приняты.
|
||||
|
||||
По предоставленным тестовым bot/chat_id сохранены параметры через штатный API под настоящим Portal JWT. До настройки groups/rules0/outbox0: старых сообщений для рассылки нет. Первая send попытка получила502/unknown: с Debian недоступен TCP443 на DNS endpoint149.154.166.110; getMe и curl подтвердили connection timeout. Проверенный TLS endpoint149.154.167.220 того же api.telegram.org доступен. Для backend добавлен временный lab-only extra_hosts; TLS verification не отключался, произвольный proxy/mirror не использовался. После getMe200 (botId совпал) одна контролируемая send через штатный API принята. Всего2 send requests: initial unknown и verified transport control; не утверждать, что неизвестная отправка доказанно не состоялась. Пользователь подтвердил получение текста «MikroTik Manager — тест оповещений (Telegram).». Токен находится в закрытой конфигурации/БД стенда, в Git/публичные отчёты не включён. Автоматические rule/recovery/outbox/retry delivery ещё отдельная приёмка.
|
||||
|
||||
Протоколы: [runtime](ux-ui/acceptance/portal195-runtime-2026-10-13.json), [actual JWT/RBAC/revoke](ux-ui/acceptance/portal-live-api-2026-10-13.json), [real browser SSO](ux-ui/acceptance/portal195-browser-admin-2026-10-13.json), [Telegram + human receipt](ux-ui/acceptance/telegram195-provider-2026-10-13.json). Данные входа bootstrap admin — локальный gitignored tmp/portal195-login.txt и закрытый файл стенда; секреты не публиковать в журнале.
|
||||
|
||||
Найден следующий196: настоящее reader JWT получает plaintext password CHR через GETservers. Подтверждён только boolean совпадения, секрет не выведен. Также authPortalBaseUrl для ссылки AppsMenu использует NEXT_PUBLIC_AUTH_PORTAL_URL сборки вместо текущего runtime Portal URL; hook switcher fetch уже использует runtime. Исправить оба API/UI недостатка, проверить reader/writer/admin и реальный Portal на ПК/телефоне, собрать/развернуть и создать локальный commit. Это ограничивает принятие приватности/навигации, но не отменяет доказанный базовый SSO/Telegram transport.
|
||||
|
||||
Пользователь подтвердил отсутствие public IPv6 на всех его стендах — внешняя IPv6 outer приёмка сейчас недоступна. Проверку crash/lock-connection loss из прежнего следующего195 перенести после Portal/Telegram.12.5 открыта.
|
||||
+17
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -3659,3 +3659,19 @@ Frontend:59 lib test files прошли с одной исправленной
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
|
||||
## 12.5.195 — реальный Portal1.3.1 и доставка Telegram (2026-10-13)
|
||||
|
||||
По прямому поручению пользователя установлен предоставленный auth-portal1.3.1 на том же Debian-стенде. Исходник прочитан из git.shx.one/denozord/auth-portal, точный tagv1.3.1=2e947b5a31d7bd6c17aff8dba3917fabf6640b91; опубликованный образ закреплён digestsha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489. Byte/compiled совпадение образа с исходником не заявлено. Отдельная SQLite/data и bootstrap admin, случайные собственные admin password/HS256 secret, JWT lifetime900s, issuer/portal http://localhost:5175, allowlist только localhost/127.0.0.1:3000. Portal доступен через loopback/SSH, не публичный порт. Исходный .env приложения не копировался и не переписывался: новая закрытая compose.override.yaml задаёт только Portal и AUTH_* overrides. Portal/backend/PG healthy, frontend running. Backend194/frontend191 сохранены, source build не требовался для настройки.
|
||||
|
||||
Настоящий login API выдал Portal JWT с appmm и ожидаемым issuer. Приложение работает с AUTH_REQUIRED=true: без JWT401, реальный admin200, читатель mm:servers:read GET200/валидный create POST403, пользователь без appmm GET/POST403, повреждённая подпись401. Настоящий browser без API mocks прошёл MM→Portal login→callback→dashboard→servers; токен записан в storage, fragment удалён, page errors0. Начальные UI-harness ожидания h1«Обзор/Серверы» не соответствовали существующему PageHeader с breadcrumbs; тест исправлен под реальные route/button, UI source не менялся. Два основных own пользователя и оставшиеся fixtures первых попыток удалены через Portal API; bootstrap admin сохранён для доступа к стенду.
|
||||
|
||||
Отзыв проверен с явной границей: revoke-all отменяет refresh sessions, disabled user не логинится/Portal me401. Уже выданный access JWT MikrotikManager продолжает принимать200 доexp, поскольку backend проверяет подпись/issuer/exp offline и не проверяет состояние пользователя в Portal. Это не мгновенное глобальное revoke. Реальное истечение900s, passkey/OIDC и физические client OS в этом блоке не приняты.
|
||||
|
||||
По предоставленным тестовым bot/chat_id сохранены параметры через штатный API под настоящим Portal JWT. До настройки groups/rules0/outbox0: старых сообщений для рассылки нет. Первая send попытка получила502/unknown: с Debian недоступен TCP443 на DNS endpoint149.154.166.110; getMe и curl подтвердили connection timeout. Проверенный TLS endpoint149.154.167.220 того же api.telegram.org доступен. Для backend добавлен временный lab-only extra_hosts; TLS verification не отключался, произвольный proxy/mirror не использовался. После getMe200 (botId совпал) одна контролируемая send через штатный API принята. Всего2 send requests: initial unknown и verified transport control; не утверждать, что неизвестная отправка доказанно не состоялась. Пользователь подтвердил получение текста «MikroTik Manager — тест оповещений (Telegram).». Токен находится в закрытой конфигурации/БД стенда, в Git/публичные отчёты не включён. Автоматические rule/recovery/outbox/retry delivery ещё отдельная приёмка.
|
||||
|
||||
Протоколы: [runtime](ux-ui/acceptance/portal195-runtime-2026-10-13.json), [actual JWT/RBAC/revoke](ux-ui/acceptance/portal-live-api-2026-10-13.json), [real browser SSO](ux-ui/acceptance/portal195-browser-admin-2026-10-13.json), [Telegram + human receipt](ux-ui/acceptance/telegram195-provider-2026-10-13.json). Данные входа bootstrap admin — локальный gitignored tmp/portal195-login.txt и закрытый файл стенда; секреты не публиковать в журнале.
|
||||
|
||||
Найден следующий196: настоящее reader JWT получает plaintext password CHR через GETservers. Подтверждён только boolean совпадения, секрет не выведен. Также authPortalBaseUrl для ссылки AppsMenu использует NEXT_PUBLIC_AUTH_PORTAL_URL сборки вместо текущего runtime Portal URL; hook switcher fetch уже использует runtime. Исправить оба API/UI недостатка, проверить reader/writer/admin и реальный Portal на ПК/телефоне, собрать/развернуть и создать локальный commit. Это ограничивает принятие приватности/навигации, но не отменяет доказанный базовый SSO/Telegram transport.
|
||||
|
||||
Пользователь подтвердил отсутствие public IPv6 на всех его стендах — внешняя IPv6 outer приёмка сейчас недоступна. Проверку crash/lock-connection loss из прежнего следующего195 перенести после Portal/Telegram.12.5 открыта.
|
||||
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -708,7 +708,7 @@ flowchart LR
|
||||
|
||||
## 12.5.77 — основной блок IPsec (2026-10-09)
|
||||
|
||||
Актуальное продолжение 2026-10-13: завершены191–194. Runtime backend ux-peak194/frontend ux-peak191 healthy; общий E2E1286/217 files passed1936347ms, skipped0/flaky0/unexpected0; backend24 профиля passed321237ms, frontend59 test files accepted. Monthly SQL/IPv6 UDP-worker-SQL/Ping replay отдельно passed; изменения193/194 проверены профильным PostgreSQL/API/UI. Следующий195 — failure/recovery межпроцессного опроса; внешние Portal/Telegram/client OS/public IPv6/multi-WAN/scale открыты.12.5 открыта.
|
||||
Актуальное продолжение 2026-10-13: завершены191–195. Backend ux-peak194/frontend ux-peak191; Portal1.3.1 установлен наlocalhost:5175, AUTH_REQUIRED=true, actual login/JWT/RBAC/browser SSO passed. Telegram test принят API и подтверждён пользователем. Найдены196: пароль CHR выдаётся reader JWT и ссылка AppsMenu использует build-time Portal URL — исправить до приёмки приватности/ссылок. Public IPv6 недоступен у пользователя; crash/lock-loss перенесены после интеграций.12.5 открыта.
|
||||
|
||||
Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md).
|
||||
|
||||
@@ -2085,3 +2085,19 @@ Frontend:59 lib test files прошли с одной исправленной
|
||||
Протоколы: [backend profiles](ux-ui/acceptance/general192-owned192-result.json), [monthly SQL](ux-ui/acceptance/general192-special-149-result.json), [IPv6 pipeline](ux-ui/acceptance/general192-special-144-result.json), [Ping replay](ux-ui/acceptance/general192-ping-replay-result.json), [frontend units](ux-ui/acceptance/general-frontend-units-2026-10-13.json), [E2E](ux-ui/acceptance/general-e2e-2026-10-13.json).
|
||||
|
||||
Актуальный стенд backend194/frontend191, backend/PG healthy; production API и live UI приняты в194. Debian161.104.46.222 имеет только loopback/link-local IPv6, public IPv6/default IPv6 route отсутствуют по read-only проверке. Настоящие Portal SSO/Telegram/client OS/independent WAN/scale и полный distributed writer/restore drain не закрыты общей fixture-регрессией. Следующий195 — отдельная bounded failure/recovery проверка межпроцессного опроса; внешние группы требуют соответствующих стендов/параметров.12.5 остаётся открытой.
|
||||
|
||||
## 12.5.195 — реальный Portal1.3.1 и доставка Telegram (2026-10-13)
|
||||
|
||||
По прямому поручению пользователя установлен предоставленный auth-portal1.3.1 на том же Debian-стенде. Исходник прочитан из git.shx.one/denozord/auth-portal, точный tagv1.3.1=2e947b5a31d7bd6c17aff8dba3917fabf6640b91; опубликованный образ закреплён digestsha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489. Byte/compiled совпадение образа с исходником не заявлено. Отдельная SQLite/data и bootstrap admin, случайные собственные admin password/HS256 secret, JWT lifetime900s, issuer/portal http://localhost:5175, allowlist только localhost/127.0.0.1:3000. Portal доступен через loopback/SSH, не публичный порт. Исходный .env приложения не копировался и не переписывался: новая закрытая compose.override.yaml задаёт только Portal и AUTH_* overrides. Portal/backend/PG healthy, frontend running. Backend194/frontend191 сохранены, source build не требовался для настройки.
|
||||
|
||||
Настоящий login API выдал Portal JWT с appmm и ожидаемым issuer. Приложение работает с AUTH_REQUIRED=true: без JWT401, реальный admin200, читатель mm:servers:read GET200/валидный create POST403, пользователь без appmm GET/POST403, повреждённая подпись401. Настоящий browser без API mocks прошёл MM→Portal login→callback→dashboard→servers; токен записан в storage, fragment удалён, page errors0. Начальные UI-harness ожидания h1«Обзор/Серверы» не соответствовали существующему PageHeader с breadcrumbs; тест исправлен под реальные route/button, UI source не менялся. Два основных own пользователя и оставшиеся fixtures первых попыток удалены через Portal API; bootstrap admin сохранён для доступа к стенду.
|
||||
|
||||
Отзыв проверен с явной границей: revoke-all отменяет refresh sessions, disabled user не логинится/Portal me401. Уже выданный access JWT MikrotikManager продолжает принимать200 доexp, поскольку backend проверяет подпись/issuer/exp offline и не проверяет состояние пользователя в Portal. Это не мгновенное глобальное revoke. Реальное истечение900s, passkey/OIDC и физические client OS в этом блоке не приняты.
|
||||
|
||||
По предоставленным тестовым bot/chat_id сохранены параметры через штатный API под настоящим Portal JWT. До настройки groups/rules0/outbox0: старых сообщений для рассылки нет. Первая send попытка получила502/unknown: с Debian недоступен TCP443 на DNS endpoint149.154.166.110; getMe и curl подтвердили connection timeout. Проверенный TLS endpoint149.154.167.220 того же api.telegram.org доступен. Для backend добавлен временный lab-only extra_hosts; TLS verification не отключался, произвольный proxy/mirror не использовался. После getMe200 (botId совпал) одна контролируемая send через штатный API принята. Всего2 send requests: initial unknown и verified transport control; не утверждать, что неизвестная отправка доказанно не состоялась. Пользователь подтвердил получение текста «MikroTik Manager — тест оповещений (Telegram).». Токен находится в закрытой конфигурации/БД стенда, в Git/публичные отчёты не включён. Автоматические rule/recovery/outbox/retry delivery ещё отдельная приёмка.
|
||||
|
||||
Протоколы: [runtime](ux-ui/acceptance/portal195-runtime-2026-10-13.json), [actual JWT/RBAC/revoke](ux-ui/acceptance/portal-live-api-2026-10-13.json), [real browser SSO](ux-ui/acceptance/portal195-browser-admin-2026-10-13.json), [Telegram + human receipt](ux-ui/acceptance/telegram195-provider-2026-10-13.json). Данные входа bootstrap admin — локальный gitignored tmp/portal195-login.txt и закрытый файл стенда; секреты не публиковать в журнале.
|
||||
|
||||
Найден следующий196: настоящее reader JWT получает plaintext password CHR через GETservers. Подтверждён только boolean совпадения, секрет не выведен. Также authPortalBaseUrl для ссылки AppsMenu использует NEXT_PUBLIC_AUTH_PORTAL_URL сборки вместо текущего runtime Portal URL; hook switcher fetch уже использует runtime. Исправить оба API/UI недостатка, проверить reader/writer/admin и реальный Portal на ПК/телефоне, собрать/развернуть и создать локальный commit. Это ограничивает принятие приватности/навигации, но не отменяет доказанный базовый SSO/Telegram transport.
|
||||
|
||||
Пользователь подтвердил отсутствие public IPv6 на всех его стендах — внешняя IPv6 outer приёмка сейчас недоступна. Проверку crash/lock-connection loss из прежнего следующего195 перенести после Portal/Telegram.12.5 открыта.
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.195",
|
||||
"portalImage": "1.3.1",
|
||||
"actualPortalTokens": true,
|
||||
"cases": [
|
||||
{
|
||||
"name": "unauthenticated",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"name": "real portal admin",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"name": "reader",
|
||||
"read": 200,
|
||||
"write": 403,
|
||||
"serverWrites": 0
|
||||
},
|
||||
{
|
||||
"name": "revocation boundary",
|
||||
"revokedRefreshSessions": 1,
|
||||
"disabledLogin": 401,
|
||||
"portalMe": 401,
|
||||
"oldMmAccessJwt": 200,
|
||||
"bound": "MM validates self-contained JWT offline; Portal session/account revocation does not revoke issued MM JWT before exp"
|
||||
},
|
||||
{
|
||||
"name": "no-app",
|
||||
"read": 403,
|
||||
"write": 403,
|
||||
"serverWrites": 0
|
||||
},
|
||||
{
|
||||
"name": "tampered signature",
|
||||
"status": 401
|
||||
}
|
||||
],
|
||||
"userFixtureIds": [
|
||||
"f0e78f69-73cf-44fd-99c8-d393c6d5587d",
|
||||
"c4987fd0-92f6-4530-929f-c827275639fd"
|
||||
],
|
||||
"cleaned": true,
|
||||
"noPasswordsOrTokensPublished": true
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.195",
|
||||
"realBrowserSso": true,
|
||||
"noMocks": true,
|
||||
"appTokenStored": true,
|
||||
"fragmentRemoved": true,
|
||||
"serversVisible": true,
|
||||
"pageErrors": 0
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.195",
|
||||
"services": {
|
||||
"backend": {
|
||||
"image": "mmapp-test/backend:ux-peak194",
|
||||
"imageId": "sha256:13507a7e8f3c356c4de4f6d909babf53f569e7eb2dd4061b5fa43d6078383e9a",
|
||||
"running": true,
|
||||
"health": "healthy"
|
||||
},
|
||||
"frontend": {
|
||||
"image": "mmapp-test/frontend:ux-peak191",
|
||||
"imageId": "sha256:1d9f85dbb5c791f09dad2863041d0fae5a291b02f5e73a5e96185a7866c673c7",
|
||||
"running": true,
|
||||
"health": null
|
||||
},
|
||||
"postgres": {
|
||||
"image": "postgres:18-alpine",
|
||||
"imageId": "sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873",
|
||||
"running": true,
|
||||
"health": "healthy"
|
||||
},
|
||||
"portal": {
|
||||
"image": "git.shx.one/denozord/auth-portal@sha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489",
|
||||
"imageId": "sha256:2bdf42400a1b35caa43303b9d01078b054b2a9041eba7019c1fffde71b7e4489",
|
||||
"running": true,
|
||||
"health": "healthy"
|
||||
}
|
||||
},
|
||||
"authRequired": true,
|
||||
"portalUrl": "http://localhost:5175",
|
||||
"issuer": "http://localhost:5175",
|
||||
"jwtLifetimeSeconds": 900,
|
||||
"sharedSecretGeneratedForLab": true,
|
||||
"productionEnvCopied": false,
|
||||
"ports": "loopback only via SSH",
|
||||
"publicIpv6Available": false,
|
||||
"privateConfigPaths": [
|
||||
"/opt/mmapp-test/compose.override.yaml",
|
||||
"/opt/mmapp-test/artifacts/portal195-private.json"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"date": "2026-10-13",
|
||||
"block": "12.5.195",
|
||||
"actualAppApi": true,
|
||||
"actualPortalJwt": true,
|
||||
"actualTelegramProvider": true,
|
||||
"providerAccepted": true,
|
||||
"initialAttempt": "unknown response with unreachable 149.154.166.110; no automatic retry",
|
||||
"controlledAttemptAfterVerifiedTransportRepair": 1,
|
||||
"totalSendRequests": 2,
|
||||
"messageText": "MikroTik Manager \u2014 \u0442\u0435\u0441\u0442 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 (Telegram).",
|
||||
"userReceiptPending": false,
|
||||
"outcome": {
|
||||
"ok": true
|
||||
},
|
||||
"networkWorkaround": "lab-only extra_hosts api.telegram.org:149.154.167.220; verified TLS hostname; no disabled certificate checks",
|
||||
"userConfirmedReceived": true,
|
||||
"humanConfirmationDate": "2026-10-13"
|
||||
}
|
||||
Reference in new issue
Block a user