AI Студия — Permissions

Шесть permission-ключей, специфичных для Photo Studio Service. Все ключи имеют префикс gensvc. и регистрируются в каталоге User Service через миграцию/seed.

Интеграция с ролевой моделью

Ключи gensvc.* работают в рамках единой permission-based модели (BR 1.4.4). Они назначаются permissions-ролям в Админке Франшизы и передаются в JWT-ответе через validate.

Каталог ключей

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} — обновление название/категории/флага enabled
  • PUT /api/v1/gensvc/admin/presets/{id}/reference — замена reference-изображения
  • DELETE /api/v1/gensvc/admin/presets/{id} — soft delete пресета

Кому выдавать: только доверенным сотрудникам/администраторам бренда, ответственным за библиотеку стилей. Это редкая роль.


Матрица доступа

Действиеaccessphoto.createhistory.readhistory.read.alldeletepreset.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. Владелец франшизы получает полный доступ из коробки.

Ссылки