# Решение: demo UI режим для showcase Дата: 2026-04-12 09:57 MSK Агент: GitHub Copilot (GPT-5.4) ## Контекст Нужно показать заказчику два сценария на одном стенде: 1. Быстрый demo-вход без подготовки. 2. Реальный пользовательский вход по настоящему Nubes token. До изменения UI принимал только реальный JWT и при этом использовал admin handlers слишком широко, из-за чего demo-сценарий был неудобным, а UI-поведение было ближе к admin console, чем к пользовательской витрине. ## Решение Принят временный showcase-режим: - добавить публичный UI demo token `demo-ui-shared-sqs-ngcloud-2026`; - привязать его к уже существующему seeded demo tenant `t-demo-shared-sqs-ngcloud`; - сохранить реальный JWT flow без изменений; - ограничить UI API текущим tenant-ом; - запретить создание и удаление tenant-а через UI. ## Почему так - Это позволяет быстро показать сервис без подготовки аккаунта. - Это сохраняет реальный пользовательский сценарий: заказчик может ввести настоящий token и попасть в свой tenant. - Это убирает из demo UI лишний обзор всей системы и снижает риск случайной демонстрации чужих данных. - Это минимальное изменение, которое можно позже убрать без ломки основной JWT-модели. ## Границы решения - Решение предназначено для demo/showcase, не для production security model. - В production demo token должен быть удалён вместе с seeded demo tenant. - Основным постоянным сценарием остаётся вход по реальному Nubes JWT. ## Что удалить перед production без demo user - Ветку `authenticateUIDemoToken` и связанные demo-константы в [app/admin/admin.go](/home/naeel/remote_dev/SQS-service/app/admin/admin.go) - Demo token и demo-подсказки из [app/ui/index.html](/home/naeel/remote_dev/SQS-service/app/ui/index.html) - Seed demo tenant и его тестовые очереди/сообщения - Публичные demo credentials из пользовательских README/инструкций ## Что лучше, если demo path может жить дольше Если demo-режим понадобится и после первой презентации, лучший следующий шаг — не держать его как "просто ещё один путь", а вынести под отдельный явный feature flag с default=off для production. Тогда риски забыть demo bypass в боевом окружении будут существенно ниже.