АРХ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: правила витрины сервисов и security handoff
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Service Catalog UX Rules
|
||||
|
||||
Актуализировано: 2026-05-12.
|
||||
|
||||
Этот документ фиксирует обязательное правило Launcher-витрины NODE.DC.
|
||||
|
||||
## Главное правило
|
||||
|
||||
Все authenticated users видят карточки всех сервисов, добавленных в каталог Launcher, независимо от текущего app access.
|
||||
|
||||
Видимость карточки сервиса не означает право запуска сервиса.
|
||||
|
||||
## Зачем это нужно
|
||||
|
||||
Launcher — это не только access gate, но и витрина платформы. Пользователь должен видеть, какие приложения существуют в NODE.DC, даже если доступ к конкретному приложению ещё не выдан.
|
||||
|
||||
Это нужно для:
|
||||
|
||||
- демонстрации состава платформы;
|
||||
- ручного запроса доступа;
|
||||
- будущих тарифов и paid access;
|
||||
- понимания, какие модули доступны в экосистеме.
|
||||
|
||||
## Как должен работать UI
|
||||
|
||||
Для сервиса без доступа:
|
||||
|
||||
- карточка сервиса остаётся видимой в нижней/сервисной панели;
|
||||
- описание, медиа и карточка доступны для чтения;
|
||||
- статус/chip показывает отсутствие доступа;
|
||||
- кнопка открытия сервиса disabled или ведёт в controlled request/access flow;
|
||||
- прямой запуск через `/api/services/:serviceSlug/launch` обязан возвращать deny.
|
||||
|
||||
Для сервиса с доступом:
|
||||
|
||||
- карточка сервиса видима;
|
||||
- кнопка открытия активна;
|
||||
- launch идёт только через Launcher BFF, а не прямым trust из UI.
|
||||
|
||||
## Realtime правило
|
||||
|
||||
Изменение доступа должно обновлять состояние карточки без hard refresh:
|
||||
|
||||
- выдали доступ — кнопка открытия становится активной;
|
||||
- сняли доступ — карточка остаётся видимой, но кнопка открытия выключается;
|
||||
- direct launch после снятия доступа остаётся запрещённым server-side.
|
||||
|
||||
Нельзя чинить безопасность через скрытие карточек. Безопасность обеспечивается server-side launch deny, Tasker middleware и internal access enforcement.
|
||||
|
||||
## Что запрещено
|
||||
|
||||
- Фильтровать `/api/apps` только до доступных пользователю приложений, если это ломает витрину.
|
||||
- Убирать карточку сервиса из UI только потому, что у пользователя нет app access.
|
||||
- Считать скрытие карточки security control.
|
||||
- Ломать realtime-переключение кнопки `Открыть` при approve/revoke доступа.
|
||||
|
||||
Reference in New Issue
Block a user