Управление настройками через GraphQL API
Этот раздел посвящен различным запросам, позволяющим просматривать и изменять настройки TDG.
Все запросы на просмотр и изменение настроек TDG передаются по протоколу HTTP в формате GraphQL. При этом они должны иметь соответствующий заголовок для авторизации.
GraphQL-запросы от клиентов (за исключением встроенного веб клиента GraphiQL) необходимо направлять на соответствующие адреса (endpoints):
/graphql(без указания схемы или с указанием в заголовке схемыdefault) - используется для запросов к пользовательским данным, хранящимся в TDG. Подробнее смотрите Раздел про GraphQL-запросы к данным./graphql(с указанием в заголовке схемыadmin) - используется для основных настроек TDG./admin/api- используется для изменения топологии кластера и других настроек Tarantool Cartridge.
Данные по аргументам вызова функций и возвращаемым результатам не приводятся, исходя из того, что GraphQL обладает встроенными механизмами обмена этой информацией с клиентским программным обеспечением, выполняющим запросы. Описания параметров и аргументов приведены в исключительном порядке для отдельных случаев, требующих пояснения.
Для выполнения запроса направьте его по протоколу HTTP на HTTP-порт
экземпляра кластера с ролью connector с указанием адреса ресурса
(endpoint) /graphql и заголовком admin, а также данными авторизации.
Пример выполнения запроса при помощи утилиты curl:
curl –request POST \–url http://172.19.0.2:8080/graphql \–header 'Authorization: Bearer 2fc136cf-8cae-4655-a431-7c318967263d' \–header 'schema: admin' \–data '{"query":"query{ user{ list{ username } } } "}'
Далее приведены все типы запросов на чтение или изменение основных настроек TDG. Для некоторых запросов дополнительно указаны возвращаемые значения и пояснения к ним.
Пример запроса на получение названия роли по ее id
(access_role.get):
query {access_role {get(id: 1) {name}}}
Пример запроса на изменение настроек требований к сложности паролей пользователей (password_generator.config):
mutation {password_generator {config(lower: true, digits: true, symbols: false, min_length: 6)}}
Для выполнения запроса, его необходимо направить по протоколу HTTP на
HTTP порт любого экземпляра кластера с указанием адреса ресурса
(endpoint) /admin/api, а также данными авторизации.
Пример выполнения запроса при помощи утилиты curl:
curl –request POST \–url http://172.19.0.2:8080/admin/api \–header 'Authorization: Bearer 2fc136cf-8cae-4655-a431-7c318967263d' \–header 'content-type: application/json' \–data '{"query":"query{\n cluster{\n known_roles{\n name\n dependencies\n }\n }\n}"}'
Далее приведены все типы запросов на чтение или изменение основных настроек Tarantool Cartridge. Для некоторых запросов дополнительно указаны возвращаемые значения и пояснения к ним.
Пример запроса на получение информации о пользователе по его имени (cluster.users):
query {cluster {users { username }}}
Пример запроса на изменение настроек автоматического восстановления (cluster.failover):
mutation {cluster {failover(enabled: false)}}
edit_server- редактирование основных параметров сервера. Устаревшая функция. Оставлена для обратной совместимости. Используйтеcluster/edit_topologyвместо данной функции.probe_server- проверяет, доступен ли экземпляр по указанному адресу для подключения его к кластеру.edit_replicaset- редактирование основных параметров набора реплик. Устаревшая функция. Оставлена для обратной совместимости. Используйтеcluster/edit_topologyвместо данной функции.join_server- подключение нового экземпляра к существующему набору реплик. Устаревшая функция. Оставлена для обратной совместимости. Используйтеcluster/edit_topologyвместо данной функции.bootstrap_vshard- при вызове происходит распределение данных по серверам (См. bootsrap_vshard).expel_server- необратимое удаление сервера из кластера. Устаревшая функция. Оставлена для обратной совместимости. Используйтеcluster/edit_topologyвместо данной функции.