Files
SQS-service/doc/decisions/demo-ui-showcase-2026-04-12.md
T
Naeel 1272388673 feat: billing — usage tracking per SQS operation in PostgreSQL
- New package app/billing: Init/RecordUsage/Close with auto-migrate
- Integration in actionHandler: record tenant_id, operation, msg_count, msg_bytes
- Helm chart: billing section in values.yaml, secret-billing.yaml, env vars in deployment
- Optional: billing disabled by default (BILLING_PG_HOST not set = no-op)
- Table: sqs_usage_records with index on (tenant_id, recorded_at)
2026-04-12 11:51:27 +03:00

3.3 KiB
Raw Blame History

Решение: 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
  • Demo token и demo-подсказки из app/ui/index.html
  • Seed demo tenant и его тестовые очереди/сообщения
  • Публичные demo credentials из пользовательских README/инструкций

Что лучше, если demo path может жить дольше

Если demo-режим понадобится и после первой презентации, лучший следующий шаг — не держать его как "просто ещё один путь", а вынести под отдельный явный feature flag с default=off для production. Тогда риски забыть demo bypass в боевом окружении будут существенно ниже.