Перейти к содержимому
Последнее обновление

Авторизация

Management API использует ролевую модель управления доступом с двумя областями: рабочее пространство и проект.

Аутентификация

Все запросы к Management API требуют ключ управления в заголовке X-Api-Key:

curl -X GET https://mgmt.vilna.app/workspaces/{workspace_id}/members \
  -H "X-Api-Key: vilna_mgt_..."

Ключи управления привязаны к рабочему пространству и используют префикс vilna_mgt_.

Роли рабочего пространства

РольОписание
Владелец (Owner)Полный контроль над рабочим пространством. Ровно один на рабочее пространство. Не может быть удалён.
Администратор (Admin)Управление участниками, проектами и ключами. Не может удалить рабочее пространство.
Участник (Member)Доступ только на чтение на уровне рабочего пространства. Видит только назначенные проекты.

Роли проекта

РольОписание
Редактор (Editor)Чтение и запись ресурсов проекта.
Наблюдатель (Viewer)Доступ только на чтение ресурсов проекта.

Наследование

  • Владельцы и администраторы рабочего пространства автоматически получают управленческий доступ ко всем проектам.
  • Участники рабочего пространства не наследуют доступ к проектам — им необходимо явно назначить роль editor или viewer.
  • При удалении участника из рабочего пространства все его назначения на уровне проектов отзываются.

Видимость проектов

  • Владельцы и администраторы видят все проекты рабочего пространства.
  • Участники видят только проекты, к которым они явно назначены.

Разрешения

Разрешения следуют формату mgt:{resource}:{action}. Действия: read, write и delete.

Разрешения управления

РазрешениеОписание
mgt:workspace:readПросмотр сведений о рабочем пространстве
mgt:workspace:writeИзменение настроек рабочего пространства
mgt:workspace:deleteУдаление рабочего пространства
mgt:member:readПросмотр участников рабочего пространства
mgt:member:writeПриглашение участников, изменение ролей
mgt:member:deleteУдаление участников
mgt:project:readПросмотр списка проектов
mgt:project:writeСоздание и изменение проектов
mgt:project:deleteУдаление проектов
mgt:api_key:readПросмотр API-ключей
mgt:api_key:writeСоздание API-ключей
mgt:rpc_key:readПросмотр RPC-ключей
mgt:rpc_key:writeСоздание RPC-ключей
mgt:mgt_key:readПросмотр ключей управления
mgt:mgt_key:writeСоздание ключей управления

Матрица ролей и разрешений

РазрешениеВладелец (Owner)Администратор (Admin)Участник (Member)
mgt:workspace:readдадада
mgt:workspace:writeда
mgt:workspace:deleteда
mgt:member:readдада
mgt:member:writeдада
mgt:member:deleteдада
mgt:project:readдадатолько назначенные
mgt:project:writeдада
mgt:project:deleteдада
mgt:api_key:readдада
mgt:api_key:writeдада
mgt:rpc_key:readдада
mgt:rpc_key:writeдада
mgt:mgt_key:readдада
mgt:mgt_key:writeдада

Программная проверка разрешений

Каждый ключ управления содержит список предоставленных разрешений. Чтобы проверить наличие конкретного разрешения у ключа, выполните точное сравнение строк со списком:

function hasPermission(granted: string[], required: string): boolean {
  return granted.includes(required);
}

// Example: check if the API key can create projects
const canCreateProject = hasPermission(permissions, "mgt:project:write");

Информацию об эндпоинтах управления ключами (создание, просмотр и отзыв ключей управления) вы найдёте в справочнике Management API.

Приглашения

Приглашения в рабочее пространство отправляются по электронной почте и поддерживают только роли admin и member.

Жизненный цикл приглашения: pendingaccepted | declined | revoked

  • Членство создаётся только после принятия приглашения.
  • Ожидающие приглашения могут быть отозваны администраторами и владельцами рабочего пространства.

Дальнейшие шаги

Готовы настроить рабочее пространство? Ознакомьтесь с руководством по началу работы, чтобы узнать о подключении и настройке доступа.