API правил LBAC источников данных

Note

Starting in Grafana 13, /api endpoints are being deprecated in favor of the /apis route. 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 /api routes will no longer be updated.

To learn more refer to the new API structure in Grafana.

Правила LBAC (Label-Based Access Control — управление доступом на основе меток) можно задавать для команд.

Получение правил LBAC для источника данных

GET /api/datasources/uid/:uid/lbac/teams

Возвращает все существующие правила LBAC для источника данных с заданным uid.

Требуемые права

Действие Область
datasources:read datasources:
datasources:uid:

datasources:uid:my_datasource (один источник данных)

Примеры

Пример запроса:

GET /api/datasources/uid/my_datasource/lbac/teams HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

Пример ответа:

http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 131

{
  "rules": [
    {
      "teamUId": "fdnd1pf4m9sxvc",
      "rules": [
        "{ service_name=\"bigquery-sync-mysql\" }"
      ]
    },
    {
      "teamUid": "dfed1p2m9sxvfc",
      "rules": [
        "{ service_name=\"api\" }"
      ]
    }
  ]
}

Обновление правил LBAC для источника данных

PUT /api/datasources/uid/:uid/lbac/teams

Обновляет правила LBAC для команд, связанных с источником данных с заданным uid. Здесь вы отправляете список команд и правила для каждой команды. Удаление команды из списка удалит правила LBAC этой команды. Для обновления необходимо отправить все команды и их правила; чтобы удалить правила команды, нужно отправить текущий список правил без этой команды.

Требуемые права

Действие Область
datasources:write datasources:
datasources:uid:

datasources:uid:my_datasource (один источник данных)
datasources.permissions:write datasources:
datasources:uid:

datasources:uid:my_datasource (один источник данных)

Примеры

Пример запроса:

http
PUT /api/datasources/uid/my_datasource/lbac/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

{
  "rules": [
    {
      "teamUId": "fdnd1pf4m9sxvc",
      "rules": [
        "{ service_name=\"bigquery-sync-mysql\" }"
      ]
    },
    {
      "teamUid": "dfed1p2m9sxvfc",
      "rules": [
        "{ service_name=\"api\" }"
      ]
    }
  ]
}

Пример ответа:

http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{
  "id": 1,
  "message": "Data source LBAC rules updated",
  "name": "loki",
  "rules": [
    {
      "teamUId": "fdnd1pf4m9sxvc",
      "rules": [
        "{ service_name=\"bigquery-sync-mysql\" }"
      ]
    },
    {
      "teamUid": "dfed1p2m9sxvfc",
      "rules": [
        "{ service_name=\"api\" }"
      ]
    }
  ],
  "uid": "ee1nm1t7spog0e",
}