diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index e886c42e..c73f485a 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.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: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). @@ -2456,3 +2456,11 @@ Actual production compiled backend ux-lock200, ограниченная PostgreS Own DB/role/container и Portal reader user удалены, отдельный private bot file удалён; рабочие настройки приложения сохранены. Нативные CHR и runtime images не менялись, дополнительных отправок вне бюджета не было. Полный успешный201 теперь дополняет partial/failed197 и отдельный resume197; исходный failed evidence сохраняется. Точная причина первого сбоя197 не установлена: pacing/новая диагностика не выдаются за доказательство его причины или исправление продуктового дефекта. Controlled receipt loss не является физическим WAN timeout/доказательством exactly-once на стороне Telegram. Протокол: [цельный live тест и подтверждение пользователя](ux-ui/acceptance/telegram201-live-2026-10-13.json). Следующий202 — reader API аудит секретов административных интеграций; широкие публичные IPv6/clientOS/independentWAN/scale/external jobs остаются в матрице.12.5 открыта. + +## 12.5.202 — чтение административных интеграций без раскрытия секретов (2026-10-13) + +На actual deployed ux-lock200 создан собственный Portal reader с mm:servers/alerts/backups/uptime/traffic:read, без writer/admin.10 real GET endpoints: servers, alerts, outbox, backup storage, uptime settings/speed probes, traffic flow settings, GeoIP200; EvoBGP settings/scheduler403. Для тех же10 endpoints безJWT401. Дополнительно server details200 с password пустым. Recursive response check не нашёл непустых password/botToken/token/apiKey/secretAccessKey/privateKey/licenseKey и известных CHR/bot test secrets. Значения credentials в evidence не сохранены. + +Telegram в рабочем приложении действительно настроен и доставлял сообщения201: reader alerts DTO не содержит raw bot token. S3/EvoBGP secrets в текущем стенде не заполнены; их маскирование populated credentials не объявляется доказанным данным read-only прогоном. Source audit подтвердил DTO secretConfigured уbackup/EvoBGP, GeoIP только metadata, speedProbeRead безpassword. App config/credentials не менялись, native commands не запрашивались. Собственный reader удалён204. Вспомогательный драйвер сначала ошибся на JSON parsing пустого204cleanup; исправлен на nullable response body, actual removal уже произошёл; финальный прогон successful/cleaned. + +Протокол: [actual reader API](ux-ui/acceptance/reader202-live-api-2026-10-13.json). Это scoped DTO audit10 endpoints, не аудит binary backup/cert export или произвольных embedded credentials в errors. Следующий203: собственная ограниченная PostgreSQL DB с синтетическими заполненными S3/EvoBGP/Telegram secrets, actual compiled handlers/JWT, без send/network probe.12.5 открыта. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 18999ad8..01e8b42d 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,12 +1,12 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-13. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. ## Актуальная точка продолжения — 2026-10-13 -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.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: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index a1b3a93a..4cac06fa 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -38,6 +38,14 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–196 и ограничения ниже. Runtime backend/frontend ux-peak196. | +## 12.5.202 — чтение административных интеграций без раскрытия секретов (2026-10-13) + +На actual deployed ux-lock200 создан собственный Portal reader с mm:servers/alerts/backups/uptime/traffic:read, без writer/admin.10 real GET endpoints: servers, alerts, outbox, backup storage, uptime settings/speed probes, traffic flow settings, GeoIP200; EvoBGP settings/scheduler403. Для тех же10 endpoints безJWT401. Дополнительно server details200 с password пустым. Recursive response check не нашёл непустых password/botToken/token/apiKey/secretAccessKey/privateKey/licenseKey и известных CHR/bot test secrets. Значения credentials в evidence не сохранены. + +Telegram в рабочем приложении действительно настроен и доставлял сообщения201: reader alerts DTO не содержит raw bot token. S3/EvoBGP secrets в текущем стенде не заполнены; их маскирование populated credentials не объявляется доказанным данным read-only прогоном. Source audit подтвердил DTO secretConfigured уbackup/EvoBGP, GeoIP только metadata, speedProbeRead безpassword. App config/credentials не менялись, native commands не запрашивались. Собственный reader удалён204. Вспомогательный драйвер сначала ошибся на JSON parsing пустого204cleanup; исправлен на nullable response body, actual removal уже произошёл; финальный прогон successful/cleaned. + +Протокол: [actual reader API](ux-ui/acceptance/reader202-live-api-2026-10-13.json). Это scoped DTO audit10 endpoints, не аудит binary backup/cert export или произвольных embedded credentials в errors. Следующий203: собственная ограниченная PostgreSQL DB с синтетическими заполненными S3/EvoBGP/Telegram secrets, actual compiled handlers/JWT, без send/network probe.12.5 открыта. + ## 12.5.201 — цельный живой сценарий очереди Telegram (2026-10-13) Обновлён acceptance driver: ограниченный TEST label, request-start counters, safe HTTP status/accepted trace, dispatch outcome и финальная строка очереди; Telegram send pacing1500ms, отрицательные ответы provider не искажаются assertion в unknown. Драйвер не входит вtest:all, явный own DB/chat/duplicate-risk ACK обязательны, число live sends ограничено3 (resume1). Изменение только приёмочного инструмента; продуктовая очередь не менялась. diff --git a/docs/ux-ui-remaining-acceptance.md b/docs/ux-ui-remaining-acceptance.md index 10b0b95f..9b496137 100644 --- a/docs/ux-ui-remaining-acceptance.md +++ b/docs/ux-ui-remaining-acceptance.md @@ -1,8 +1,8 @@ # Оставшаяся внешняя приёмка — 2026-10-13 -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. -Это актуальная матрица после 12.5.201. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. +Это актуальная матрица после 12.5.202. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-lock200`, frontend `ux-portal199`; 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. **202 — reader API secrets:** административные integrations/config endpoints, чтение с реальным reader JWT; проверить masking/permissions без изменения credentials/config. +1. **203 — populated secret DTOs:** собственная DB, синтетические S3/EvoBGP/Telegram credentials, real compiled handlers/JWT; без внешних probe/send или изменений рабочих credentials. 2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания. 3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций. @@ -1372,3 +1372,11 @@ Actual production compiled backend ux-lock200, ограниченная PostgreS Own DB/role/container и Portal reader user удалены, отдельный private bot file удалён; рабочие настройки приложения сохранены. Нативные CHR и runtime images не менялись, дополнительных отправок вне бюджета не было. Полный успешный201 теперь дополняет partial/failed197 и отдельный resume197; исходный failed evidence сохраняется. Точная причина первого сбоя197 не установлена: pacing/новая диагностика не выдаются за доказательство его причины или исправление продуктового дефекта. Controlled receipt loss не является физическим WAN timeout/доказательством exactly-once на стороне Telegram. Протокол: [цельный live тест и подтверждение пользователя](ux-ui/acceptance/telegram201-live-2026-10-13.json). Следующий202 — reader API аудит секретов административных интеграций; широкие публичные IPv6/clientOS/independentWAN/scale/external jobs остаются в матрице.12.5 открыта. + +## 12.5.202 — чтение административных интеграций без раскрытия секретов (2026-10-13) + +На actual deployed ux-lock200 создан собственный Portal reader с mm:servers/alerts/backups/uptime/traffic:read, без writer/admin.10 real GET endpoints: servers, alerts, outbox, backup storage, uptime settings/speed probes, traffic flow settings, GeoIP200; EvoBGP settings/scheduler403. Для тех же10 endpoints безJWT401. Дополнительно server details200 с password пустым. Recursive response check не нашёл непустых password/botToken/token/apiKey/secretAccessKey/privateKey/licenseKey и известных CHR/bot test secrets. Значения credentials в evidence не сохранены. + +Telegram в рабочем приложении действительно настроен и доставлял сообщения201: reader alerts DTO не содержит raw bot token. S3/EvoBGP secrets в текущем стенде не заполнены; их маскирование populated credentials не объявляется доказанным данным read-only прогоном. Source audit подтвердил DTO secretConfigured уbackup/EvoBGP, GeoIP только metadata, speedProbeRead безpassword. App config/credentials не менялись, native commands не запрашивались. Собственный reader удалён204. Вспомогательный драйвер сначала ошибся на JSON parsing пустого204cleanup; исправлен на nullable response body, actual removal уже произошёл; финальный прогон successful/cleaned. + +Протокол: [actual reader API](ux-ui/acceptance/reader202-live-api-2026-10-13.json). Это scoped DTO audit10 endpoints, не аудит binary backup/cert export или произвольных embedded credentials в errors. Следующий203: собственная ограниченная PostgreSQL DB с синтетическими заполненными S3/EvoBGP/Telegram secrets, actual compiled handlers/JWT, без send/network probe.12.5 открыта. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index 52c27656..bf298922 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -3761,3 +3761,11 @@ Actual production compiled backend ux-lock200, ограниченная PostgreS Own DB/role/container и Portal reader user удалены, отдельный private bot file удалён; рабочие настройки приложения сохранены. Нативные CHR и runtime images не менялись, дополнительных отправок вне бюджета не было. Полный успешный201 теперь дополняет partial/failed197 и отдельный resume197; исходный failed evidence сохраняется. Точная причина первого сбоя197 не установлена: pacing/новая диагностика не выдаются за доказательство его причины или исправление продуктового дефекта. Controlled receipt loss не является физическим WAN timeout/доказательством exactly-once на стороне Telegram. Протокол: [цельный live тест и подтверждение пользователя](ux-ui/acceptance/telegram201-live-2026-10-13.json). Следующий202 — reader API аудит секретов административных интеграций; широкие публичные IPv6/clientOS/independentWAN/scale/external jobs остаются в матрице.12.5 открыта. + +## 12.5.202 — чтение административных интеграций без раскрытия секретов (2026-10-13) + +На actual deployed ux-lock200 создан собственный Portal reader с mm:servers/alerts/backups/uptime/traffic:read, без writer/admin.10 real GET endpoints: servers, alerts, outbox, backup storage, uptime settings/speed probes, traffic flow settings, GeoIP200; EvoBGP settings/scheduler403. Для тех же10 endpoints безJWT401. Дополнительно server details200 с password пустым. Recursive response check не нашёл непустых password/botToken/token/apiKey/secretAccessKey/privateKey/licenseKey и известных CHR/bot test secrets. Значения credentials в evidence не сохранены. + +Telegram в рабочем приложении действительно настроен и доставлял сообщения201: reader alerts DTO не содержит raw bot token. S3/EvoBGP secrets в текущем стенде не заполнены; их маскирование populated credentials не объявляется доказанным данным read-only прогоном. Source audit подтвердил DTO secretConfigured уbackup/EvoBGP, GeoIP только metadata, speedProbeRead безpassword. App config/credentials не менялись, native commands не запрашивались. Собственный reader удалён204. Вспомогательный драйвер сначала ошибся на JSON parsing пустого204cleanup; исправлен на nullable response body, actual removal уже произошёл; финальный прогон successful/cleaned. + +Протокол: [actual reader API](ux-ui/acceptance/reader202-live-api-2026-10-13.json). Это scoped DTO audit10 endpoints, не аудит binary backup/cert export или произвольных embedded credentials в errors. Следующий203: собственная ограниченная PostgreSQL DB с синтетическими заполненными S3/EvoBGP/Telegram secrets, actual compiled handlers/JWT, без send/network probe.12.5 открыта. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index 087af65c..b97ff190 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ # Тестовый сервер UX/UI — 2026-10-10 -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. | Параметр | Проверенное состояние | | --- | --- | @@ -708,7 +708,7 @@ flowchart LR ## 12.5.77 — основной блок IPsec (2026-10-09) -Актуальное продолжение 2026-10-13: завершён201 — цельный real Telegram outbox/dedupe/two senders/unknown/no-auto-repeat/manual acknowledged retry passed в одной own DB; пользователь подтвердил1×№1+2×№2.200 collector crash/observed lock-loss fixed/deployed. Backend ux-lock200/frontend ux-portal199/Portal1.3.1. Следующий202 — reader API аудит секретов в административных интеграциях.12.5 открыта. +Актуальное продолжение 2026-10-13:202 reader actual Portal JWT audit10 GET endpoints +server detail passed, secrets absent, admin-only403/noJWT401; fixture удалена.201 цельный Telegram live/human receipt принят;200 collector crash/observed lock-loss fixed/deployed. Runtime backend ux-lock200/frontend ux-portal199. Следующий203 — заполненные S3/EvoBGP/Telegram secrets в own SQL, не рабочие credentials.12.5 открыта. Подробный объём, протоколы, схема и ограничения: [12.5.77 в журнале](ux-ui-progress.md). @@ -2187,3 +2187,11 @@ Actual production compiled backend ux-lock200, ограниченная PostgreS Own DB/role/container и Portal reader user удалены, отдельный private bot file удалён; рабочие настройки приложения сохранены. Нативные CHR и runtime images не менялись, дополнительных отправок вне бюджета не было. Полный успешный201 теперь дополняет partial/failed197 и отдельный resume197; исходный failed evidence сохраняется. Точная причина первого сбоя197 не установлена: pacing/новая диагностика не выдаются за доказательство его причины или исправление продуктового дефекта. Controlled receipt loss не является физическим WAN timeout/доказательством exactly-once на стороне Telegram. Протокол: [цельный live тест и подтверждение пользователя](ux-ui/acceptance/telegram201-live-2026-10-13.json). Следующий202 — reader API аудит секретов административных интеграций; широкие публичные IPv6/clientOS/independentWAN/scale/external jobs остаются в матрице.12.5 открыта. + +## 12.5.202 — чтение административных интеграций без раскрытия секретов (2026-10-13) + +На actual deployed ux-lock200 создан собственный Portal reader с mm:servers/alerts/backups/uptime/traffic:read, без writer/admin.10 real GET endpoints: servers, alerts, outbox, backup storage, uptime settings/speed probes, traffic flow settings, GeoIP200; EvoBGP settings/scheduler403. Для тех же10 endpoints безJWT401. Дополнительно server details200 с password пустым. Recursive response check не нашёл непустых password/botToken/token/apiKey/secretAccessKey/privateKey/licenseKey и известных CHR/bot test secrets. Значения credentials в evidence не сохранены. + +Telegram в рабочем приложении действительно настроен и доставлял сообщения201: reader alerts DTO не содержит raw bot token. S3/EvoBGP secrets в текущем стенде не заполнены; их маскирование populated credentials не объявляется доказанным данным read-only прогоном. Source audit подтвердил DTO secretConfigured уbackup/EvoBGP, GeoIP только metadata, speedProbeRead безpassword. App config/credentials не менялись, native commands не запрашивались. Собственный reader удалён204. Вспомогательный драйвер сначала ошибся на JSON parsing пустого204cleanup; исправлен на nullable response body, actual removal уже произошёл; финальный прогон successful/cleaned. + +Протокол: [actual reader API](ux-ui/acceptance/reader202-live-api-2026-10-13.json). Это scoped DTO audit10 endpoints, не аудит binary backup/cert export или произвольных embedded credentials в errors. Следующий203: собственная ограниченная PostgreSQL DB с синтетическими заполненными S3/EvoBGP/Telegram secrets, actual compiled handlers/JWT, без send/network probe.12.5 открыта. diff --git a/docs/ux-ui/acceptance/reader202-live-api-2026-10-13.json b/docs/ux-ui/acceptance/reader202-live-api-2026-10-13.json new file mode 100644 index 00000000..41b23ece --- /dev/null +++ b/docs/ux-ui/acceptance/reader202-live-api-2026-10-13.json @@ -0,0 +1,106 @@ +{ + "date": "2026-10-13", + "block": "12.5.202", + "runtime": { + "backend": "ux-lock200", + "frontend": "ux-portal199", + "portal": "1.3.1" + }, + "cases": [ + { + "path": "/api/servers", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/servers/:id", + "serverId": 1, + "readerStatus": 200, + "nonemptySecretFields": 0 + }, + { + "path": "/api/servers/:id", + "serverId": 2, + "readerStatus": 200, + "nonemptySecretFields": 0 + }, + { + "path": "/api/alerts", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/alerts/outbox", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/backups/storage", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/uptime/settings", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/uptime/speed-probes", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/traffic/flow/settings", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/geoip", + "readerStatus": 200, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/evobgp/settings", + "readerStatus": 403, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "path": "/api/scheduler/status", + "readerStatus": 403, + "unauthenticatedStatus": 401, + "nonemptySecretFields": 0, + "knownTestSecretsPresent": false + }, + { + "name": "configured Telegram DTO", + "rawBotTokenPresent": false + } + ], + "actualPortalJWT": true, + "appReadOnly": true, + "configurationWrites": 0, + "nativeCallsRequested": 0, + "cleaned": true, + "bounds": [ + "Current configured DTOs only; empty S3/EvoBGP secrets not proof for arbitrary populated credentials", + "Does not audit binary backups/downloads/certificates, embedded credentials in arbitrary error messages, or every application endpoint" + ] +}