chore(test): подтвердить права очереди в браузере с JWT
This commit is contained in:
1 parent
1d6f2d598c
commit
bb7b940bfc
8 files changed
+90
-5
No files matched your search
@@ -273,3 +273,13 @@ GET outbox: anonymous, неверные issuer/signature, expired и malformed
|
||||
[Smoke основной схемы](ux-ui/acceptance/deploy-browser-b55588f-2026-10-08.json): dashboard, servers, uptime speed, settings, filters, alerts возвращают200,320px fit, JS errors0/API errors0. Независимый контроль основной БД до/после совпадает: servers2/enabled2, speedHistory9, retention14, migrations9. Новые native тесты или сообщения не запускались. Тестовые контейнеры/сеть/туннель3018 удалены, backend fixture завершился exit0, независимый SQL подтвердил ноль его outbox-строк. Основной туннель3000 сохранён.
|
||||
|
||||
Границы: управляемый HTTP500 после COMMIT вместо физического сетевого разрыва; синтетические записи и AUTH_REQUIRED=false в изолированном browser стенде. Реальные Telegram доставка/чат, Portal SSO и multi-instance остаются отдельной приёмкой. Уточнены текущие версии и устаревшая сводка плана/паспорта, исторические записи сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Локальный коммит без push.
|
||||
|
||||
## 12.5.46 — браузерные права очереди с подписанными JWT (2026-10-08)
|
||||
|
||||
[Отчёт браузера](ux-ui/acceptance/browser-outbox-jwt-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД mmapp_acceptance_20261007. AUTH_REQUIRED=true только в тестовом процессе, отдельные синтетические HS256 key/issuer, два браузерных контекста read/write. Штатный backend проверяет подпись и разрешения; browser HTTP-ответы не подменялись. Основные настройки авторизации и ключи не изменялись, реальный Portal не вызывался.
|
||||
|
||||
Reader получает очередь и видит disabled retry. Прямой POST через browser fetch с reader JWT даёт403, SQL snapshot не меняется, mutation boundary не вызывается. JWT с теми же write claims, но неверной подписью, получает401 через настоящий HTTP API; строка и счётчик mutation сохраняются. Writer видит доступную кнопку, обязательное подтверждение риска, после него POST200 переводит fixture unknown/version0 в pending/version1/retry_count0. UI подтверждает только постановку в очередь; API принял0, история0. Reader после reload видит подтверждённое состояние.
|
||||
|
||||
Всего retry HTTP requests3 (403/401/200), mutation calls1, external sender calls0, JS errors0;320px fit. [Читатель](ux-ui/screens/outbox-jwt-reader-real-320-2026-10-08.png) и [после разрешённого повтора](ux-ui/screens/outbox-jwt-writer-real-320-2026-10-08.png) сохранены; экран читателя просмотрен. Тестовая запись синтетическая; scheduler admission закрыт, dispatcher не запускался, Telegram fetch дополнительно запрещён. Writer и reader имеют также необходимые read-права окружающей оболочки, но только writer имеет alerts:write.
|
||||
|
||||
Тестовые контейнеры/сеть/туннель3018 удалены; backend завершился exitCode0, cleanup подтвердил1mutation/3POST/0send, независимый SQL — ноль fixture-строк. Основной стенд/БД/RouterOS не менялись. Это подтверждение browser и API RBAC, не реального Portal login или Telegram доставки. Следующий12.5.47 — checkpoint и смена источника при незавершённом повторе. Локальный коммит без push.
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
# План реализации UX/UI по пятичасовым окнам
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.45 собрал и развернул frontendb55588f с пояснением неподтверждённого retry. Production build/full TypeScript passed; реальные browser HTTP/PG POST200/500, checkpoint/reload/320px passed; шесть основных экранов без JS/API ошибок. Backend8782054 и контрольные данные основной БД сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Telegram доставка, Portal SSO и другие внешние ограничения остаются открытыми.
|
||||
Актуальное продолжение 2026-10-08: 12.5.46 подтвердил browser JWT/RBAC очереди на настоящих HTTP/PG: reader disabled и bypass403, неверная подпись401, write200/pending/version1 после подтверждения риска. Отказы не меняют БД и не вызывают retry boundary. JS errors0, Telegram calls0; fixture/контейнеры/сеть/туннель очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.47 — изоляция checkpoint при смене источника во время повтора; реальный Portal и доставка Telegram открыты.
|
||||
|
||||
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
|
||||
|
||||
## Актуальная точка продолжения — 2026-10-08
|
||||
|
||||
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
|
||||
Этапы0–11 завершены в описанных локальных границах. Этап12 открыт. На тестовом сервере161.104.46.222 работают backend8782054/frontendb55588f и два CHR. Внешние проверки подтвердили PG backup/restore/rollback, остановку фоновой работы для одного экземпляра, API JWT/RBAC и браузерные состояния восстановления. Native TCP/UDP speed, история и UI проверены в границах журнала; доступ ко второму CHR восстановлен пользователем. Очередь Telegram проверена на реальном PG: dedupe, конкурентный claim, retry/version, ошибки сохранения и неопределённый исход; ответы отправителя подменялись, реальной доставки это не доказывает. Блоки12.5.43–45 подтвердили browser retry/checkpoint и развернули понятное пояснение HTTP500. 12.5.46 подтвердил browser JWT/RBAC очереди на реальном HTTP/PG; следующий12.5.47 — изоляция checkpoint при смене источника во время повтора. Реальная Telegram доставка, Portal SSO, физический TCP disconnect, multi-instance и остальные профильные сетевые сценарии остаются открытыми. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) содержат доказательства и ограничения.
|
||||
|
||||
Выполненные внешние сценарии не заменяют приёмку оставшихся интеграций и условий эксплуатации. Датированные продолжения ниже — история; точный следующий шаг указан в начале [журнала](ux-ui-progress.md).
|
||||
|
||||
|
||||
+12
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.45 собрал и развернул frontendb55588f с пояснением неподтверждённого retry. Production build/full TypeScript passed; реальные browser HTTP/PG POST200/500, checkpoint/reload/320px passed; шесть основных экранов без JS/API ошибок. Backend8782054 и контрольные данные основной БД сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Telegram доставка, Portal SSO и другие внешние ограничения остаются открытыми.
|
||||
Актуальное продолжение 2026-10-08: 12.5.46 подтвердил browser JWT/RBAC очереди на настоящих HTTP/PG: reader disabled и bypass403, неверная подпись401, write200/pending/version1 после подтверждения риска. Отказы не меняют БД и не вызывают retry boundary. JS errors0, Telegram calls0; fixture/контейнеры/сеть/туннель очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.47 — изоляция checkpoint при смене источника во время повтора; реальный Portal и доставка Telegram открыты.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -32,7 +32,17 @@
|
||||
| 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–45 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–46 и ограничения ниже. Runtime backend8782054/frontendb55588f. |
|
||||
|
||||
## 12.5.46 — браузерные права очереди с подписанными JWT (2026-10-08)
|
||||
|
||||
[Отчёт браузера](ux-ui/acceptance/browser-outbox-jwt-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД mmapp_acceptance_20261007. AUTH_REQUIRED=true только в тестовом процессе, отдельные синтетические HS256 key/issuer, два браузерных контекста read/write. Штатный backend проверяет подпись и разрешения; browser HTTP-ответы не подменялись. Основные настройки авторизации и ключи не изменялись, реальный Portal не вызывался.
|
||||
|
||||
Reader получает очередь и видит disabled retry. Прямой POST через browser fetch с reader JWT даёт403, SQL snapshot не меняется, mutation boundary не вызывается. JWT с теми же write claims, но неверной подписью, получает401 через настоящий HTTP API; строка и счётчик mutation сохраняются. Writer видит доступную кнопку, обязательное подтверждение риска, после него POST200 переводит fixture unknown/version0 в pending/version1/retry_count0. UI подтверждает только постановку в очередь; API принял0, история0. Reader после reload видит подтверждённое состояние.
|
||||
|
||||
Всего retry HTTP requests3 (403/401/200), mutation calls1, external sender calls0, JS errors0;320px fit. [Читатель](ux-ui/screens/outbox-jwt-reader-real-320-2026-10-08.png) и [после разрешённого повтора](ux-ui/screens/outbox-jwt-writer-real-320-2026-10-08.png) сохранены; экран читателя просмотрен. Тестовая запись синтетическая; scheduler admission закрыт, dispatcher не запускался, Telegram fetch дополнительно запрещён. Writer и reader имеют также необходимые read-права окружающей оболочки, но только writer имеет alerts:write.
|
||||
|
||||
Тестовые контейнеры/сеть/туннель3018 удалены; backend завершился exitCode0, cleanup подтвердил1mutation/3POST/0send, независимый SQL — ноль fixture-строк. Основной стенд/БД/RouterOS не менялись. Это подтверждение browser и API RBAC, не реального Portal login или Telegram доставки. Следующий12.5.47 — checkpoint и смена источника при незавершённом повторе. Локальный коммит без push.
|
||||
|
||||
## 12.5.45 — production frontend с пояснением неизвестного исхода (2026-10-08)
|
||||
|
||||
|
||||
+11
-1
@@ -1,6 +1,6 @@
|
||||
# Этап 12: итоговая приёмка UX/UI
|
||||
|
||||
Актуальное продолжение 2026-10-08: 12.5.45 собрал и развернул frontendb55588f с пояснением неподтверждённого retry. Production build/full TypeScript passed; реальные browser HTTP/PG POST200/500, checkpoint/reload/320px passed; шесть основных экранов без JS/API ошибок. Backend8782054 и контрольные данные основной БД сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Telegram доставка, Portal SSO и другие внешние ограничения остаются открытыми.
|
||||
Актуальное продолжение 2026-10-08: 12.5.46 подтвердил browser JWT/RBAC очереди на настоящих HTTP/PG: reader disabled и bypass403, неверная подпись401, write200/pending/version1 после подтверждения риска. Отказы не меняют БД и не вызывают retry boundary. JS errors0, Telegram calls0; fixture/контейнеры/сеть/туннель очищены. Runtime backend8782054/frontendb55588f прежний. Следующий12.5.47 — изоляция checkpoint при смене источника во время повтора; реальный Portal и доставка Telegram открыты.
|
||||
|
||||
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
|
||||
|
||||
@@ -1438,3 +1438,13 @@ GET outbox: anonymous, неверные issuer/signature, expired и malformed
|
||||
[Smoke основной схемы](ux-ui/acceptance/deploy-browser-b55588f-2026-10-08.json): dashboard, servers, uptime speed, settings, filters, alerts возвращают200,320px fit, JS errors0/API errors0. Независимый контроль основной БД до/после совпадает: servers2/enabled2, speedHistory9, retention14, migrations9. Новые native тесты или сообщения не запускались. Тестовые контейнеры/сеть/туннель3018 удалены, backend fixture завершился exit0, независимый SQL подтвердил ноль его outbox-строк. Основной туннель3000 сохранён.
|
||||
|
||||
Границы: управляемый HTTP500 после COMMIT вместо физического сетевого разрыва; синтетические записи и AUTH_REQUIRED=false в изолированном browser стенде. Реальные Telegram доставка/чат, Portal SSO и multi-instance остаются отдельной приёмкой. Уточнены текущие версии и устаревшая сводка плана/паспорта, исторические записи сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Локальный коммит без push.
|
||||
|
||||
## 12.5.46 — браузерные права очереди с подписанными JWT (2026-10-08)
|
||||
|
||||
[Отчёт браузера](ux-ui/acceptance/browser-outbox-jwt-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД mmapp_acceptance_20261007. AUTH_REQUIRED=true только в тестовом процессе, отдельные синтетические HS256 key/issuer, два браузерных контекста read/write. Штатный backend проверяет подпись и разрешения; browser HTTP-ответы не подменялись. Основные настройки авторизации и ключи не изменялись, реальный Portal не вызывался.
|
||||
|
||||
Reader получает очередь и видит disabled retry. Прямой POST через browser fetch с reader JWT даёт403, SQL snapshot не меняется, mutation boundary не вызывается. JWT с теми же write claims, но неверной подписью, получает401 через настоящий HTTP API; строка и счётчик mutation сохраняются. Writer видит доступную кнопку, обязательное подтверждение риска, после него POST200 переводит fixture unknown/version0 в pending/version1/retry_count0. UI подтверждает только постановку в очередь; API принял0, история0. Reader после reload видит подтверждённое состояние.
|
||||
|
||||
Всего retry HTTP requests3 (403/401/200), mutation calls1, external sender calls0, JS errors0;320px fit. [Читатель](ux-ui/screens/outbox-jwt-reader-real-320-2026-10-08.png) и [после разрешённого повтора](ux-ui/screens/outbox-jwt-writer-real-320-2026-10-08.png) сохранены; экран читателя просмотрен. Тестовая запись синтетическая; scheduler admission закрыт, dispatcher не запускался, Telegram fetch дополнительно запрещён. Writer и reader имеют также необходимые read-права окружающей оболочки, но только writer имеет alerts:write.
|
||||
|
||||
Тестовые контейнеры/сеть/туннель3018 удалены; backend завершился exitCode0, cleanup подтвердил1mutation/3POST/0send, независимый SQL — ноль fixture-строк. Основной стенд/БД/RouterOS не менялись. Это подтверждение browser и API RBAC, не реального Portal login или Telegram доставки. Следующий12.5.47 — checkpoint и смена источника при незавершённом повторе. Локальный коммит без push.
|
||||
@@ -281,3 +281,13 @@ GET outbox: anonymous, неверные issuer/signature, expired и malformed
|
||||
[Smoke основной схемы](ux-ui/acceptance/deploy-browser-b55588f-2026-10-08.json): dashboard, servers, uptime speed, settings, filters, alerts возвращают200,320px fit, JS errors0/API errors0. Независимый контроль основной БД до/после совпадает: servers2/enabled2, speedHistory9, retention14, migrations9. Новые native тесты или сообщения не запускались. Тестовые контейнеры/сеть/туннель3018 удалены, backend fixture завершился exit0, независимый SQL подтвердил ноль его outbox-строк. Основной туннель3000 сохранён.
|
||||
|
||||
Границы: управляемый HTTP500 после COMMIT вместо физического сетевого разрыва; синтетические записи и AUTH_REQUIRED=false в изолированном browser стенде. Реальные Telegram доставка/чат, Portal SSO и multi-instance остаются отдельной приёмкой. Уточнены текущие версии и устаревшая сводка плана/паспорта, исторические записи сохранены. Следующий12.5.46 — браузерные права очереди с настоящими JWT. Локальный коммит без push.
|
||||
|
||||
## 12.5.46 — браузерные права очереди с подписанными JWT (2026-10-08)
|
||||
|
||||
[Отчёт браузера](ux-ui/acceptance/browser-outbox-jwt-2026-10-08.json): production frontendb55588f/backend8782054, отдельная PostgreSQL БД mmapp_acceptance_20261007. AUTH_REQUIRED=true только в тестовом процессе, отдельные синтетические HS256 key/issuer, два браузерных контекста read/write. Штатный backend проверяет подпись и разрешения; browser HTTP-ответы не подменялись. Основные настройки авторизации и ключи не изменялись, реальный Portal не вызывался.
|
||||
|
||||
Reader получает очередь и видит disabled retry. Прямой POST через browser fetch с reader JWT даёт403, SQL snapshot не меняется, mutation boundary не вызывается. JWT с теми же write claims, но неверной подписью, получает401 через настоящий HTTP API; строка и счётчик mutation сохраняются. Writer видит доступную кнопку, обязательное подтверждение риска, после него POST200 переводит fixture unknown/version0 в pending/version1/retry_count0. UI подтверждает только постановку в очередь; API принял0, история0. Reader после reload видит подтверждённое состояние.
|
||||
|
||||
Всего retry HTTP requests3 (403/401/200), mutation calls1, external sender calls0, JS errors0;320px fit. [Читатель](ux-ui/screens/outbox-jwt-reader-real-320-2026-10-08.png) и [после разрешённого повтора](ux-ui/screens/outbox-jwt-writer-real-320-2026-10-08.png) сохранены; экран читателя просмотрен. Тестовая запись синтетическая; scheduler admission закрыт, dispatcher не запускался, Telegram fetch дополнительно запрещён. Writer и reader имеют также необходимые read-права окружающей оболочки, но только writer имеет alerts:write.
|
||||
|
||||
Тестовые контейнеры/сеть/туннель3018 удалены; backend завершился exitCode0, cleanup подтвердил1mutation/3POST/0send, независимый SQL — ноль fixture-строк. Основной стенд/БД/RouterOS не менялись. Это подтверждение browser и API RBAC, не реального Portal login или Telegram доставки. Следующий12.5.47 — checkpoint и смена источника при незавершённом повторе. Локальный коммит без push.
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"date": "2026-10-08",
|
||||
"backendSource": "8782054",
|
||||
"frontendSource": "b55588f",
|
||||
"database": "mmapp_acceptance_20261007",
|
||||
"authRequired": true,
|
||||
"browserHttpMocks": false,
|
||||
"realSignedJwt": true,
|
||||
"reader": {
|
||||
"retryButtonDisabled": true,
|
||||
"bypassHttpStatus": 403,
|
||||
"sqlUnchanged": true,
|
||||
"mutationCalls": 0,
|
||||
"reloadSeesCommittedQueue": true
|
||||
},
|
||||
"forgedSignature": {
|
||||
"httpStatus": 401,
|
||||
"sqlUnchanged": true,
|
||||
"mutationCalls": 0
|
||||
},
|
||||
"writer": {
|
||||
"httpStatuses": [
|
||||
200
|
||||
],
|
||||
"riskAcknowledgementRequired": true,
|
||||
"saved": {
|
||||
"id": "acceptance-browser-jwt-1791445526386",
|
||||
"status": "pending",
|
||||
"resolution_version": 1,
|
||||
"retry_count": 0
|
||||
},
|
||||
"captionDoesNotClaimDelivery": true
|
||||
},
|
||||
"retryRequests": 3,
|
||||
"mutationCalls": 1,
|
||||
"historyRows": 0,
|
||||
"externalSenderCalls": 0,
|
||||
"mobileFits": true,
|
||||
"pageErrors": [],
|
||||
"limits": [
|
||||
"Separate fixture JWT key/issuer in isolated process, actual Portal login not tested",
|
||||
"Synthetic PostgreSQL row; sender/scheduler stopped, no actual Telegram message",
|
||||
"Reader direct POST uses browser fetch; forged signature checked via real HTTP API request context"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
Reference in new issue
Block a user