AI Студия — Permissions
Шесть permission-ключей, специфичных для Photo Studio Service. Все ключи имеют префикс gensvc. и регистрируются в каталоге User Service через миграцию/seed.
Интеграция с ролевой моделью
Каталог ключей
gensvc.access
Описание: Базовый доступ к Photo Studio Service. Привратник первого уровня.
Что открывает:
- Вход в сервис (запросы не отклоняются с 401)
- Просмотр каталога системных пресетов (
GET /api/v1/gensvc/presets) - Просмотр детали пресета
- Управление личными пресетами (создание, список, удаление)
Без этого ключа: все запросы к Photo Studio Service возвращают 401 UNAUTHORIZED.
Кому выдавать: всем сотрудникам, которым нужен доступ к AI Студии — как минимум владельцу точки и контент-менеджерам.
gensvc.photo.create
Описание: Создание новых заданий на генерацию и улучшение.
Что открывает:
POST /api/v1/gensvc/jobs/photo— создание задания «Фото в стиле»POST /api/v1/gensvc/jobs/enhance— создание задания «Улучшение»POST /api/v1/gensvc/jobs/{id}/retry— повтор задания
Зависимость: требует gensvc.access (без него запрос не дойдёт до проверки этого права).
Кому выдавать: сотрудникам, которые активно генерируют контент. Не выдаётся наблюдателям (только смотрят историю).
gensvc.history.read
Описание: Просмотр собственной истории заданий.
Что открывает:
GET /api/v1/gensvc/jobs— список своих заданий (фильтрация поuser_id = me)GET /api/v1/gensvc/jobs/{id}— детали своего заданияGET /api/v1/gensvc/jobs/{id}/stream— SSE-поток статусов своего задания
Без этого ключа: сотрудник может создавать задания, но не видит их результатов.
Кому выдавать: практически всем пользователям с gensvc.photo.create. Отдельный ключ нужен на случай ролей, которые только смотрят историю, но не создают.
gensvc.history.read.all
Описание: Просмотр истории заданий всех сотрудников своей франшизы.
Что открывает:
GET /api/v1/gensvc/jobs— список всех заданий франшизы (без фильтра по user_id)GET /api/v1/gensvc/jobs/{id}— детали любого задания своей франшизы
Важно: изоляция по franchise_id сохраняется. Видеть задания других франшиз невозможно даже с этим правом.
Кому выдавать: владельцам франшизы и управляющим, которым нужна сводная картина по всем контент-менеджерам.
gensvc.delete
Описание: Удаление заданий (и связанных ассетов).
Что открывает:
- Удаление своих заданий — при наличии
gensvc.history.read - Удаление любых заданий франшизы — при наличии
gensvc.history.read.all
Логика удаления
Право на удаление определяется в комбинации с правом на чтение: «удалить можно то, что видишь». Без
gensvc.history.readилиgensvc.history.read.allправоgensvc.deleteне даёт доступа к чужим заданиям.
Кому выдавать: ограниченно — администраторам контента, которым нужна чистка истории.
gensvc.preset.admin
Описание: Управление системными пресетами сервиса.
Что открывает:
GET /api/v1/gensvc/admin/presets— список всех пресетов (включая выключенные)POST /api/v1/gensvc/admin/presets— создание нового пресетаGET /api/v1/gensvc/admin/presets/{id}— детали пресета (admin view)PATCH /api/v1/gensvc/admin/presets/{id}— обновление название/категории/флага enabledPUT /api/v1/gensvc/admin/presets/{id}/reference— замена reference-изображенияDELETE /api/v1/gensvc/admin/presets/{id}— soft delete пресета
Кому выдавать: только доверенным сотрудникам/администраторам бренда, ответственным за библиотеку стилей. Это редкая роль.
Матрица доступа
| Действие | access | photo.create | history.read | history.read.all | delete | preset.admin |
|---|---|---|---|---|---|---|
| Войти / видеть пресеты | ✓ | |||||
| Создать задание | ✓ | ✓ | ||||
| Повторить задание | ✓ | ✓ | ||||
| Видеть свои задания | ✓ | ✓ | ||||
| Видеть задания всех | ✓ | ✓ | ||||
| Удалить своё задание | ✓ | ✓ | ✓ | |||
| Удалить чужое задание | ✓ | ✓ | ✓ | |||
| Управлять пресетами | ✓ | ✓ | ||||
| Загрузить личный пресет | ✓ |
Типичные наборы для ролей
| Роль в бизнесе | Рекомендуемые ключи |
|---|---|
| Контент-менеджер | gensvc.access, gensvc.photo.create, gensvc.history.read |
| Владелец точки | gensvc.access, gensvc.photo.create, gensvc.history.read |
| Управляющий сетью | + gensvc.history.read.all, gensvc.delete |
| Администратор пресетов | + gensvc.preset.admin |
| Администратор (системная роль) | Все 6 ключей |
Bootstrap
При инициализации франшизы системная роль «Администратор» получает все 6 ключей
gensvc.*автоматически — через seed User Service. Владелец франшизы получает полный доступ из коробки.