10 KiB
10 KiB
Krona Control Center — UX Спецификация
1. Архитектура и Назначение
Krona Control Center (KCC) — изолированный закрытый инженерный пульт владельца платформы Krona и дежурной инженерно-эксплуатационной команды.
Ключевые архитектурные принципы
- Изоляция контура: KCC полностью отделён от административного кабинета клиентской организации (
/app/*) и публичных страниц (/,/demo). Доступ организован в отдельном пространстве путей/control/*. - Защита шлюзом: Доступ закрыт через
ControlRouteGuardи PIN-гейт (/control/gate), требующий подтверждения операторского доступа (сессионный токенkcc_gate_pass+operator_session). - Строгая модель ролей (RBAC): 6 специализированных инженерных ролей с гранулярными правами доступа (
control_center:read,control_center:write,control_center:billing_manage,control_center:node_evacuate,control_center:incident_manage,control_center:rollout_manage,control_center:operator_audit). - Неизменяемый журнал аудита: Любое опасное или мутирующее действие требует модального подтверждения с обязательным указанием причины (минимум 5 символов), фиксацией затронутых сущностей и записью в криптографически связанный SHA-256 хеш-блокчейн в IndexedDB (
krona_control_center_db). - Устойчивость к сбоям инфраструктуры (Circuit Breaker): Поддержка offline-first и degraded режимов с кэшированием последнего снимка состояния в IndexedDB при недоступности внешних мониторов или сетевых сбоях.
2. Навигация и Визуальная Иерархия
Навигационное древо
- Обзор платформы (
/control/overview):- Верхний статус-бар: Режим среды (Production), активная инженерная роль, индикатор синхронизации IndexedDB, кнопка аварийного режима (Maintenance), экстренный выход.
- Сводные KPI-метрики: активные организации, совокупный MRR, здоровье узлов кластера, активные инциденты и предупреждения.
- Виджеты оперативного контроля: критические алерты, статус rollout-конвейера, географическое распределение нагрузок.
- Организации и 360° Инспектор (
/control/organizations):- Таблица тенантов с фильтрацией по тарифным планам (
enterprise,business,starter), статусам (active,past_due,frozen,trial) и быстрому поиску по названию/ИНН/домену. - Вызов контекстного 360° инспектора (Drawer) без потери контекста таблицы.
- Таблица тенантов с фильтрацией по тарифным планам (
- Биллинг и Подписки (
/control/billing):- Фильтры истекающих подписок (окно 7 дней, просроченные платежи).
- Сводка по Minor Units (копейки) с форматированием без плавающей точки.
- История платежей, выставление счетов, ручное продление trial.
- Инсталляции и Терминалы (
/control/installations):- Учёт парка POS/Android/Desktop терминалов и мобильных приложений.
- Мониторинг устаревших версий (flag
outdated), времени последнего пинга и принудительный отзыв токенов сессий (Revoke Token).
- Инфраструктура и Узлы (
/control/nodes):- Мониторинг кластерных нод (CPU, RAM, Disk IO, p99 latency).
- Действие вывода ноды из ротации (
Drain / Evacuate Node). - Имитация сбоя сервера мониторинга для верификации Circuit Breaker.
- Rollout и Каталог модулей (
/control/modules):- Управление версиями модулей платформы.
- Фазы конвейера:
Canary (10%),Pilot (30%),Staged (50%),GA (100%). - Оперативные действия:
Start Rollout,Pause,Resume,Rollback.
- Инциденты и Алерты (
/control/incidents):- Матрица тяжести:
P1 Critical,P2 Major,P3 Warning,P4 Info. - Эскалация, назначение дежурного инженера, перевод в
In Progress,Mitigated,Resolved.
- Матрица тяжести:
- Системные рассылки (
/control/broadcasts):- Таргетинг по тарифам и модулям тенантов.
- Уровни важности:
info,warning,critical_maintenance.
- Журнал аудита (
/control/audit):- Хронологический реестр операций с проверкой валидности SHA-256 хеш-цепочки.
- Экспорт в CSV/JSON.
3. Контекстный 360° Инспектор (Drawer)
Шторка детального инспектирования вызывается с правой стороны экрана (600px на десктопе, 100% на мобильных экранах):
- Вкладка «Обзор»: Карточка организации, ИНН, домен, дата создания, активный SLA, текущий баланс и лимиты пользователей.
- Вкладка «Модули»: Список подключенных сервисных модулей с версиями и статусами работоспособности.
- Вкладка «Инсталляции»: Привязанные терминалы и кассы с версиями клиента.
- Вкладка «Биллинг»: График выставления счетов, статус продления и скидки.
- Панель быстрых действий оператора:
Выдать Trial +14 дней(требует подтверждения с фиксацией причины).Заморозить доступ/Разморозить(критическая операция).Сбросить 2FA администраторов(операция безопасности).Экспорт данных тенанта(GDPR/152-ФЗ compliance).
4. Паттерн подтверждения опасных операций (ConfirmOperatorAction)
Любое деструктивное или влияющее на клиентов действие открывает диалоговое окно ConfirmOperatorAction:
- Предупреждение о последствиях: Четкое перечисление затрагиваемых сущностей (например, «Будет заблокирован доступ 120 пользователей»).
- Обязательное обоснование (
action-reason-input): Поле ввода причины выполнения с валидацией минимальной длины (не менее 5 символов). - Кнопка подтверждения с семантическим цветом: Красный (
bg-red-600) для необратимых/блокирующих действий, янтарный (bg-amber-600) для сервисных операций. - Хеширование записи аудита: Запись немедленно хешируется с предыдущим хешем по схеме:
hash = SHA-256(prevHash + timestamp + operatorRole + actionType + entityId + reason)и сохраняется в локальное постоянное хранилище IndexedDB.
5. Дизайн-система: Темная инженерная тема
Интерфейс спроектирован по канонам современных Mission-Control дашбордов:
- Цветовая палитра: Глубокий slate/zinc фон (
bg-zinc-950,bg-zinc-900), контрастные границы (border-zinc-800), четкая типографика (text-zinc-100,text-zinc-400). - Семантические акценты:
Зеленый (Emerald): Нормальная работа узла, активная подписка, GA-статус.Янтарный (Amber): Предупреждение, истекающий trial, пауза раскатки.Красный (Rose/Red): P1 инцидент, отказ узла, заблокированная организация.Синий/Фиолетовый (Indigo/Violet): Канареечные релизы, системные оповещения.
- Адаптивность (Zero Horizontal Overflow):
- Desktop (1440×900+): Полноразмерный сайдбар, многоколоночные таблицы, плавающий Drawer 600px.
- Tablet (768×1024): Сворачиваемый сайдбар, горизонтальная прокрутка таблиц внутри изолированных контейнеров.
- Mobile (390×844): Компактный мобильный заголовок, off-canvas навигация, карточный вид для таблиц.