Перейти к содержанию

Протокол

Оглавление

Схема классов

/svg/protos/key/keyapis/access_management/v1/keyapis_access_management_group_v1.proto.svg

keyapis/access_management/v1/keyapis_access_management_group_v1.proto

Сервис реализует функционал управления доступом пользователями к ресурсам

GroupService

Сервис управления доступом пользователей

Название метода Описание Тип запроса Тип ответа
GetGroup Метод получения группы. Метод доступен для: admin, service, bti, seller keyapis.access_management.v1.GetGroupRequest keyapis.access_management.v1.GetGroupResponse
GetGroupList Метод получения списка групп. Метод доступен для: admin, service, bti, seller keyapis.access_management.v1.GetGroupListRequest keyapis.access_management.v1.GetGroupListResponse stream
GetGroupCount Метод получения количества групп. Метод доступен для: admin, service, bti, seller keyapis.access_management.v1.GetGroupCountRequest keyapis.access_management.v1.GetGroupCountResponse
PostGroup Метод сохранения группы. Поддерживает создание и обновление как UPSERT по Group.id. Метод доступен для: admin, service keyapis.access_management.v1.PostGroupRequest keyapis.access_management.v1.PostGroupResponse
DeleteGroup Метод удаления группы. Метод доступен для: admin, service keyapis.access_management.v1.DeleteGroupRequest keyapis.access_management.v1.DeleteGroupResponse
PostGroupByTemplate Метод создания группы по шаблону. Метод доступен для: admin, service, bti, seller keyapis.access_management.v1.PostGroupByTemplateRequest keyapis.access_management.v1.PostGroupByTemplateResponse
PutGroupUserAttach Метод привязки пользователя к группе. Метод доступен для: admin, owner, service, bti, seller keyapis.access_management.v1.PutGroupUserAttachRequest keyapis.access_management.v1.PutGroupUserAttachResponse
PutGroupUserDetach Метод удаления привязки пользователя к группе. Метод доступен для: admin, owner, service, bti, seller keyapis.access_management.v1.PutGroupUserDetachRequest keyapis.access_management.v1.PutGroupUserDetachResponse
GetGroupUserList Метод получения списка связей пользователей и групп. Метод доступен для: admin, owner, service, bti, seller keyapis.access_management.v1.GetGroupUserListRequest keyapis.access_management.v1.GetGroupUserListResponse stream
GetGroupUserCount Метод получения количества связей пользователей и групп. Метод доступен для: admin, owner, service, bti, seller keyapis.access_management.v1.GetGroupUserCountRequest keyapis.access_management.v1.GetGroupUserCountResponse
GetGroupClaimList Метод получения уникальных назначенных атрибутов пользователя. Метод также возвращает группы пользователя в виде атрибута (Claim) {key=GROUP_ID,value=Group.id}. Бизнес-пользователи получают только свои разрешения, поэтому для всех пользователей, кроме admin, owner, service, bti, seller игнорируются GroupClaimFilter.user_id, GroupClaimFilter.user_data, GroupClaimFilter.api_key_hash, а значения для них берутся из токена. Для admin, owner, service, bti, seller при наличии GroupClaimFilter.user_id отдаем разрешения для указанного GroupClaimFilter.user_id и GroupClaimFilter.user_data, при отсутствии GroupClaimFilter.user_id значения берутся из токена. Для admin, service при наличии GroupClaimFilter.api_key_hash возвращаем Claim с учетом только GroupClaimFilter.api_key_hash. Метод доступен для: admin, master, slave, owner, employee, service, bti, seller, external_seller, ltp_first, mrf, manager keyapis.access_management.v1.GetGroupClaimListRequest keyapis.access_management.v1.GetGroupClaimListResponse stream
GetGroupClaimCount Метод получения количества уникальных назначенных атрибутов пользователя. Метод также сосчитает и атрибуты групп {key=GROUP_ID,value=Group.id}. Бизнес-пользователи получают только свои разрешения, поэтому для всех пользователей, кроме admin, owner, service, bti, seller игнорируются GroupClaimFilter.user_id, GroupClaimFilter.user_data, GroupClaimFilter.api_key_hash, а значения для них берутся из токена. Для admin, owner, service, bti, seller при наличии GroupClaimFilter.user_id отдаем разрешения для указанного GroupClaimFilter.user_id и GroupClaimFilter.user_data, при отсутствии GroupClaimFilter.user_id значения берутся из токена. Для admin, service при наличии GroupClaimFilter.api_key_hash возвращаем Claim с учетом только GroupClaimFilter.api_key_hash. Метод доступен для: admin, master, slave, owner, employee, service, bti, seller, external_seller, ltp_first, mrf, manager keyapis.access_management.v1.GetGroupClaimCountRequest keyapis.access_management.v1.GetGroupClaimCountResponse
GetGroupClaimExist Метод проверки наличия назначенных атрибутов пользователя. Метод также проверит и атрибуты групп {key=GROUP_ID,value=Group.id}. Бизнес-пользователи получают только свои разрешения, поэтому для всех пользователей, кроме admin, owner, service, bti, seller игнорируются GroupClaimFilter.user_id, GroupClaimFilter.user_data, GroupClaimFilter.api_key_hash, а значения для них берутся из токена. Для admin, owner, service, bti, seller при наличии GroupClaimFilter.user_id отдаем разрешения для указанного GroupClaimFilter.user_id и GroupClaimFilter.user_data, при отсутствии GroupClaimFilter.user_id значения берутся из токена. Для admin, service при наличии GroupClaimFilter.api_key_hash возвращаем Claim с учетом только GroupClaimFilter.api_key_hash. Метод доступен для: admin, master, slave, owner, employee, service, bti, seller, external_seller, ltp_first, mrf, manager keyapis.access_management.v1.GetGroupClaimExistRequest keyapis.access_management.v1.GetGroupClaimExistResponse
PutGroupApiKeyCreate Метод добавления ключа доступа ApiKey. Метод доступен для: admin keyapis.access_management.v1.PutGroupApiKeyCreateRequest keyapis.access_management.v1.PutGroupApiKeyCreateResponse
PutGroupApiKeyDelete Метод удаления ключей доступа ApiKey. Метод доступен для: admin keyapis.access_management.v1.PutGroupApiKeyDeleteRequest keyapis.access_management.v1.PutGroupApiKeyDeleteResponse

Claim

Атрибут пользователя

Поле Описание Тип Признак
key Ключ атрибута string REQUIRED
value Значение атрибута string

DeleteGroupRequest

Запрос удаления группы

Поле Описание Тип Признак
id Идентификатор группы. # Тип: Guid string REQUIRED

DeleteGroupResponse

Ответ на запрос удаления группы

GetGroupClaimCountRequest

Запрос получения количества уникальных назначенных атрибутов пользователя

Поле Описание Тип Признак
filter Фильтр атрибутов пользователя keyapis.access_management.v1.GroupClaimFilter

GetGroupClaimCountResponse

Ответ на запрос получения количества уникальных назначенных атрибутов пользователя

Поле Описание Тип Признак
data Всего уникальных атрибутов пользователя optional int32

GetGroupClaimExistRequest

Запрос проверки назначенных атрибутов пользователя

Поле Описание Тип Признак
filter Фильтр атрибутов пользователя keyapis.access_management.v1.GroupClaimFilter

GetGroupClaimExistResponse

Ответ на запрос проверки назначенных атрибутов пользователя

Поле Описание Тип Признак
data Флаг наличия optional bool
error Ошибка optional keyapis.access_management.v1.GetGroupClaimExistResponse.Error

GetGroupClaimExistResponse.Error

Ошибка запроса

Поле Описание Тип Признак
claim_filter_empty Ошибка пустого фильтра по атрибутам пользователя optional keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError

GetGroupClaimExistResponse.Error.ClaimFilterEmptyError

Ошибка пустого фильтра по атрибутам пользователя

GetGroupClaimListRequest

Запрос уникального списка назначенных атрибутов пользователя

Поле Описание Тип Признак
filter Фильтр атрибутов пользователя keyapis.access_management.v1.GroupClaimFilter
paging Пагинация по атрибутам пользователя optional keyapis.access_management.v1.GroupClaimPaging

GetGroupClaimListResponse

Ответ на запрос уникального списка назначенных атрибутов пользователя

Поле Описание Тип Признак
data Атрибут пользователя optional keyapis.access_management.v1.Claim

GetGroupCountRequest

Запрос получения количества групп

Поле Описание Тип Признак
filter Фильтр keyapis.access_management.v1.GroupFilter

GetGroupCountResponse

Ответ на запрос получения количества групп

Поле Описание Тип Признак
data Всего групп optional int32
error Ошибка optional keyapis.access_management.v1.GetGroupCountResponse.Error

GetGroupCountResponse.Error

Ошибка запроса получения количества групп

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.access_management.v1.ValidationError

GetGroupListRequest

Запрос получения списка групп

Поле Описание Тип Признак
filter Фильтр keyapis.access_management.v1.GroupFilter
paging Пагинация optional keyapis.access_management.v1.GroupPaging

GetGroupListResponse

Ответ на запрос получения списка групп

Поле Описание Тип Признак
data Группа optional keyapis.access_management.v1.Group
error Ошибка optional keyapis.access_management.v1.GetGroupListResponse.Error

GetGroupListResponse.Error

Ошибка запроса получения списка групп

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.access_management.v1.ValidationError

GetGroupRequest

Запрос получения группы

Поле Описание Тип Признак
id Идентификатор группы. # Тип: Guid string REQUIRED

GetGroupResponse

Ответ на запрос получения группы

Поле Описание Тип Признак
data Группа optional keyapis.access_management.v1.Group
error Ошибка optional keyapis.access_management.v1.GetGroupResponse.Error

GetGroupResponse.Error

Ошибка запроса получения группы

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.access_management.v1.ValidationError

GetGroupUserCountRequest

Запрос получения количества связей пользователей и групп

Поле Описание Тип Признак
filter Фильтр связей пользователей и групп keyapis.access_management.v1.GroupUserFilter

GetGroupUserCountResponse

Ответ на запрос получения количества связей пользователей и групп

Поле Описание Тип Признак
data Всего связей пользователей и групп optional int32

GetGroupUserListRequest

Запрос получения списка связей пользователей и групп

Поле Описание Тип Признак
filter Фильтр связей пользователей и групп keyapis.access_management.v1.GroupUserFilter
paging Пагинация optional keyapis.access_management.v1.GroupUserPaging

GetGroupUserListResponse

Ответ на запрос получения списка связей пользователей и групп

Поле Описание Тип Признак
data Связь пользователя и группы optional keyapis.access_management.v1.UserGroup

Group

Группа атрибутов пользователя

Поле Описание Тип Признак
id Идентификатор группы. # Тип: Guid string
title Наименование. # Диапазон: 3..256 string REQUIRED
description Описание. # Диапазон: 3..256 string
claims Массив атрибутов группы. Эти атрибуты назначены пользователям, которые принадлежат группе. # Диапазон: 0..100 repeated keyapis.access_management.v1.Claim
requirements Требования, означающие принадлежность пользователя к данной группе. Пользователь принадлежит группе, если все атрибуты требований группы присутствуют у пользователя и имеют те же значения. # Диапазон: 0..10 repeated keyapis.access_management.v1.Claim
deleted_at Дата удаления группы из использования. Группа не участвует в определении разрешений пользователя, если дата deleted_at непустая и уже в прошлом google.protobuf.Timestamp
tags Теги группы. # Диапазон: 0..10 repeated string

GroupClaimFilter

Фильтр атрибутов пользователя

Поле Описание Тип Признак
user_id По идентификатору пользователя. Соответствует subject, sub, client_id из JWT. Для пользователя Ключа это user_id Ключа google.protobuf.StringValue
claims По назначенным атрибутам пользователя. Фильтр ограничивает возвращаемые атрибуты данным списком. Возвращаем атрибуты групп, у которых Claim.key=claims[n].key И (Claim.value=claims[n].value ИЛИ claims[n].value пустой). При пустом GroupClaimFilter.claims не ограничиваем выдачу, отдаем все Claims, назначенные пользователю repeated keyapis.access_management.v1.GroupClaimFilter.ClaimsEntry
user_data По условию принадлежности к группе. Пользователь принадлежит группе, если user_data полностью удовлетворяет требованиям группы, то есть user_data содержит в себе Group.requirements целиком keyapis.access_management.v1.GroupClaimFilter.UserData
api_key_hash Хешированное SHA256 значение ключа доступа ApiKey string

GroupClaimFilter.ClaimsEntry

Поле Описание Тип Признак
key string
value string

GroupClaimFilter.UserData

Условие принадлежности к группе

Поле Описание Тип Признак
claims Атрибуты пользователя, claims которого мы хотим получить repeated keyapis.access_management.v1.GroupClaimFilter.UserData.ClaimsEntry

GroupClaimFilter.UserData.ClaimsEntry

Поле Описание Тип Признак
key string
value string

GroupClaimPaging

Пагинация атрибутов пользователя

Поле Описание Тип Признак
order_by_type Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: KEY keyapis.access_management.v1.GroupClaimPaging.OrderByType
direction_type Тип направления сортировки. # По умолчанию: DESC keyapis.access_management.v1.GroupClaimPaging.DirectionType
limit Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 int32
offset Сдвиг. # Диапазон: 0..2147483647 int32

GroupFilter

Фильтр групп

Поле Описание Тип Признак
text По тексту. Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Наименование string
requirements По requirements группы. Возвращаем группы, у которых Group.requirements.key=GroupFilter.requirements[n].key И Group.requirements.value=GroupFilter.requirements[n].value. При пустом GroupFilter.requirements[n].value возвращаем все группы, у которых Group.requirements.key=GroupFilter.requirements[n].key. При передаче нескольких элементов map они работают в выборке через И repeated keyapis.access_management.v1.GroupFilter.RequirementsEntry
claims По claims группы. Возвращаем группы, у которых Group.claim.key=GroupFilter.claims[n].key И Group.claims.value=GroupFilter.claims[n].value. При пустом GroupFilter.claims[n].value возвращаем все группы, у которых Group.claims.key=GroupFilter.claims[n].key. При передаче нескольких элементов map они работают в выборке через И repeated keyapis.access_management.v1.GroupFilter.ClaimsEntry
tags По тегам. # Диапазон: 0..10 repeated string
hide_deleted Скрывать удалённые элементы. Если значение — true, возвращаются только записи, у которых deleted_at = null или deleted_at > текущего времени. Если значение — false или не задано, возвращаются все записи, включая удалённые google.protobuf.BoolValue

GroupFilter.ClaimsEntry

Поле Описание Тип Признак
key string
value string

GroupFilter.RequirementsEntry

Поле Описание Тип Признак
key string
value string

GroupPaging

Пагинация групп

Поле Описание Тип Признак
order_by_type Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: ID keyapis.access_management.v1.GroupPaging.OrderByType
direction_type Тип направления сортировки. # По умолчанию: DESC keyapis.access_management.v1.GroupPaging.DirectionType
limit Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 int32
offset Сдвиг. # Диапазон: 0..2147483647 int32

GroupTemplateNotFoundError

Ошибки создания группы по шаблону

Поле Описание Тип Признак
group_template_id Идентификатор шаблона группы, который не найден string REQUIRED
message Сообщение string REQUIRED

GroupUserFilter

Фильтр для запроса связей пользователей и групп. При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ. При передаче нескольких разных параметров фильтра они работают в выборке через И

Поле Описание Тип Признак
group_ids По Идентификаторам группы repeated string
user_ids По Идентификаторам пользователя repeated string

GroupUserPaging

Пагинация связей пользователей и групп

Поле Описание Тип Признак
order_by_type Тип значения сортировки. По умолчанию: ID keyapis.access_management.v1.GroupUserPaging.OrderByType
direction_type Тип направления сортировки. По умолчанию: DESC keyapis.access_management.v1.GroupUserPaging.DirectionType
limit Количество записей на страницу. Минимальное значение: 1. Максимальное значение: 100. По умолчанию: 20. Если значение 0 (не передано), то выставляем значение по умолчанию int32
offset Сдвиг. По умолчанию: 0 int32

PostGroupByTemplateRequest

Запрос создания группы по шаблону

Поле Описание Тип Признак
group_template_id Идентификатор шаблона группы. # Тип: Guid string REQUIRED
group_title Наименование создаваемой по шаблону группы. В наименование группы будет добавлен суффикс GroupTemplate.group_title_suffix. # Диапазон: 3..256 string REQUIRED
group_requirements Специфичные для создаваемой по шаблону группы Claim requirements, они будут добавлены к requirements создаваемой по шаблону группы. # Диапазон: 0..10 repeated keyapis.access_management.v1.Claim

PostGroupByTemplateResponse

Ответ на запрос создания группы по шаблону

Поле Описание Тип Признак
data Группа optional keyapis.access_management.v1.Group
error Ошибка optional keyapis.access_management.v1.PostGroupByTemplateResponse.Error

PostGroupByTemplateResponse.Error

Ошибка запроса создания группы

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.access_management.v1.ValidationError
group_template_not_found_error Шаблон не найден optional keyapis.access_management.v1.GroupTemplateNotFoundError

PostGroupRequest

Запрос сохранения группы

Поле Описание Тип Признак
data Группа keyapis.access_management.v1.Group REQUIRED

PostGroupResponse

Ответ на запрос сохранения группы

Поле Описание Тип Признак
data Группа optional keyapis.access_management.v1.Group
error Ошибка optional keyapis.access_management.v1.PostGroupResponse.Error

PostGroupResponse.Error

Ошибка запроса сохранения группы

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.access_management.v1.ValidationError

PutGroupApiKeyCreateRequest

Запрос на добавления группе ключа доступа ApiKey

Поле Описание Тип Признак
group_id Идентификатор группы. # Тип: Guid string REQUIRED

PutGroupApiKeyCreateResponse

Ответ на запрос на добавления группе ключа доступа ApiKey

Поле Описание Тип Признак
data Значение ключа доступа ApiKey. # Тип: Guid optional string

PutGroupApiKeyDeleteRequest

Запрос на удаление ключей доступа ApiKey

Поле Описание Тип Признак
group_id Идентификатор группы. # Тип: Guid string REQUIRED

PutGroupApiKeyDeleteResponse

Ответ на запрос на удаление ключей доступа ApiKey

PutGroupUserAttachRequest

Запрос на добавление связи пользователя и группы

Поле Описание Тип Признак
user_group Связь пользователя и группы keyapis.access_management.v1.UserGroup REQUIRED

PutGroupUserAttachResponse

Ответ на добавление связи пользователя и группы

PutGroupUserDetachRequest

Запрос на удаление связи пользователя и группы

Поле Описание Тип Признак
user_group Связь пользователя и группы keyapis.access_management.v1.UserGroup REQUIRED

PutGroupUserDetachResponse

Ответ на запрос удаления точки доступа в профиль

UserGroup

Связка пользователя с группой

Поле Описание Тип Признак
user_id Идентификатор пользователя. Соответствует subject, sub, client_id из JWT. # Диапазон: 3..256 string REQUIRED
group_id Идентификатор группы. # Тип: Guid string REQUIRED

ValidationError

Ошибки валидации. Эти проверки выполняются до обращения в базу данных

Поле Описание Тип Признак
path Путь к полю в формате наименования protobuf string REQUIRED
message Валидационное сообщение string REQUIRED

GroupClaimPaging.DirectionType

Справочник типов направлений сортировки.

Тип: byte

Номер Тип Название
0 DIRECTION_TYPE_UNKNOWN Значение не указано
1 DESC От большего к меньшему
2 ASC От меньшего к большему

GroupClaimPaging.OrderByType

Справочник типов значений сортировки.

Тип: byte

Номер Тип Название
0 ORDER_BY_TYPE_UNKNOWN Значение не указано
1 KEY По ключу атрибута
2 VALUE По значению атрибута

GroupPaging.DirectionType

Справочник типов направлений сортировки.

Тип: byte

Номер Тип Название
0 DIRECTION_TYPE_UNKNOWN Значение не указано
1 DESC От большего к меньшему
2 ASC От меньшего к большему

GroupPaging.OrderByType

Справочник типов значений сортировки.

Тип: byte

Номер Тип Название
0 ORDER_BY_TYPE_UNKNOWN Значение не указано
1 ID По идентификатору
2 TITLE По наименованию

GroupUserPaging.DirectionType

Справочник типов направлений сортировки

Номер Тип Название
0 DIRECTION_TYPE_UNKNOWN Значение не указано
1 DESC От большего к меньшему
2 ASC От меньшего к большему

GroupUserPaging.OrderByType

Справочник типов сортировки

Номер Тип Название
0 ORDER_BY_TYPE_UNKNOWN Значение не указано
1 GROUP_ID По Идентификатору группы
2 USER_ID По Идентификатору пользователя

Скалярные типы значений

.proto Type Примечание Python Go Ruby C# C++ Java PHP
double float float64 Float double double double float
float float float32 Float float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int int32 Bignum or Fixnum (as required) int int32 int integer
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long int64 Bignum long int64 long integer/string
uint32 Uses variable-length encoding. int/long uint32 Bignum or Fixnum (as required) uint uint32 int integer
uint64 Uses variable-length encoding. int/long uint64 Bignum or Fixnum (as required) ulong uint64 long integer/string
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int int32 Bignum or Fixnum (as required) int int32 int integer
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long int64 Bignum long int64 long integer/string
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int uint32 Bignum or Fixnum (as required) uint uint32 int integer
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long uint64 Bignum ulong uint64 long integer/string
sfixed32 Always four bytes. int int32 Bignum or Fixnum (as required) int int32 int integer
sfixed64 Always eight bytes. int/long int64 Bignum long int64 long integer/string
bool boolean bool TrueClass/FalseClass bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode string String (UTF-8) string string String string
bytes May contain any arbitrary sequence of bytes. str []byte String (ASCII-8BIT) ByteString string ByteString string