API прав на источники данных
Note
Starting in Grafana 13,
/apiendpoints are being deprecated in favor of the/apisroute. Note that while Grafana is working on migrating existing APIs, currently there may not be an exact match to the legacy API you’re using.This change doesn’t disrupt or break your current setup. Legacy APIs are not being disabled and remain fully accessible and operative, but
/apiroutes will no longer be updated.To learn more refer to the new API structure in Grafana.
Права на источники данных доступны только в Grafana Enterprise. Подробнее о Grafana Enterprise.
Если вы используете Grafana Enterprise, для некоторых конечных точек потребуются определённые права. Дополнительные сведения см. в разделе Права управления доступом на основе ролей.
Этот API можно использовать для перечисления, добавления и удаления прав на источник данных.
Права можно задавать для пользователя, команды, сервисной учётной записи или базовой роли (Admin, Editor, Viewer).
Необязательный параметр запроса ds_type
Каждая конечная точка этого API принимает необязательный параметр запроса ds_type. Задайте его как тип плагина источника данных (например, prometheus или loki). Используйте ds_type, когда в организации более одного источника данных имеют одинаковый UID, чтобы Grafana могла определить правильный экземпляр.
Получение прав на источник данных
GET /api/access-control/datasources/:uid
Возвращает все существующие права для источника данных с заданным uid.
Добавляйте ?ds_type=<TYPE>, когда нужно устранить неоднозначность UID; см. Необязательный параметр запроса ds_type.
Требуемые права
Пояснения см. в примечании во введении.
Примеры
Пример запроса:
GET /api/access-control/datasources/my_datasource HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример запроса (с ds_type, когда UID не уникален):
GET /api/access-control/datasources/my_datasource?ds_type=prometheus HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 551
[
{
"id": 1,
"roleName": "fixed:datasources:reader",
"isManaged": false,
"isInherited": false,
"isServiceAccount": false,
"userId": 1,
"userLogin": "admin_user",
"userAvatarUrl": "/avatar/admin_user",
"actions": [
"datasources:read",
"datasources:query",
"datasources:read",
"datasources:query",
"datasources:write",
"datasources:delete"
],
"permission": "Edit"
},
{
"id": 2,
"roleName": "managed:teams:1:permissions",
"isManaged": true,
"isInherited": false,
"isServiceAccount": false,
"team": "A team",
"teamId": 1,
"teamAvatarUrl": "/avatar/523d70c8551046f441727d690431858c",
"actions": [
"datasources:read",
"datasources:query"
],
"permission": "Query"
},
{
"id": 3,
"roleName": "basic:admin",
"isManaged": false,
"isInherited": false,
"isServiceAccount": false,
"builtInRole": "Admin",
"actions": [
"datasources:query",
"datasources:read",
"datasources:write",
"datasources:delete"
],
"permission": "Edit"
},
]
Коды состояния:
- 200 — Ok
- 401 — Не авторизован
- 403 — Доступ запрещён
- 500 — Внутренняя ошибка
Предоставление или отзыв доступа к источнику данных для пользователя
POST /api/access-control/datasources/:uid/users/:id
Задаёт права пользователя на источник данных с заданным uid.
Добавляйте ?ds_type=<TYPE>, когда нужно устранить неоднозначность UID; см. Необязательный параметр запроса ds_type.
Чтобы добавить право, задайте поле permission как Query, Edit или Admin.
Чтобы удалить право, задайте поле permission как пустую строку.
Требуемые права
Пояснения см. в примечании во введении.
Примеры
Пример запроса:
POST /api/access-control/datasources/my_datasource/users/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "Query",
}
При предоставлении права Query пользователь также получает доступ на чтение к источнику данных.
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
Пример запроса:
POST /api/access-control/datasources/my_datasource/users/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "",
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
Коды состояния:
- 200 — Ok
- 400 — Право не может быть добавлено, подробности см. в теле ответа
- 401 — Не авторизован
- 403 — Доступ запрещён
Предоставление или отзыв доступа к источнику данных для команды
POST /api/access-control/datasources/:uid/teams/:id
Задаёт права команды на источник данных с заданным uid.
Добавляйте ?ds_type=<TYPE>, когда нужно устранить неоднозначность UID; см. Необязательный параметр запроса ds_type.
Чтобы добавить право, задайте поле permission как Query, Edit или Admin.
Чтобы удалить право, задайте поле permission как пустую строку.
При добавлении прав Query, Edit или Admin пользователь неявно получает доступ Read.
Требуемые права
Пояснения см. в примечании во введении.
Примеры
Пример запроса:
POST /api/access-control/datasources/my_datasource/teams/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "Edit",
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
Пример запроса:
POST /api/access-control/datasources/my_datasource/teams/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "",
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
Коды состояния:
- 200 — Ok
- 400 — Право не может быть добавлено, подробности см. в теле ответа
- 401 — Не авторизован
- 403 — Доступ запрещён
Предоставление или отзыв доступа к источнику данных для базовой роли
POST /api/access-control/datasources/:uid/builtInRoles/:builtinRoleName
Задаёт права на источник данных с заданным uid для всех пользователей, имеющих указанную базовую роль.
Добавляйте ?ds_type=<TYPE>, когда нужно устранить неоднозначность UID; см. Необязательный параметр запроса ds_type.
Вы можете задавать права для следующих базовых ролей: Admin, Editor, Viewer.
Чтобы добавить право, задайте поле permission как Query, Edit или Admin.
Чтобы удалить право, задайте поле permission как пустую строку.
Требуемые права
Пояснения см. в примечании во введении.
Примеры
Пример запроса:
POST /api/access-control/datasources/my_datasource/builtInRoles/Admin
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "Edit",
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
Пример запроса:
POST /api/access-control/datasources/my_datasource/builtInRoles/Viewer
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"permission": "",
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
Коды состояния:
- 200 — Ok
- 400 — Право не может быть добавлено, подробности см. в теле ответа
- 401 — Не авторизован
- 403 — Доступ запрещён