API прав на папки

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.

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

Права с folderId=-1 — это права по умолчанию для пользователей с ролями «Наблюдатель» и «Редактор». Права можно задавать для пользователя, команды или роли (Viewer или Editor). Права нельзя задать для администраторов — у них всегда есть доступ ко всему.

Уровни прав для поля permission:

  • 1 = View
  • 2 = Edit
  • 4 = Admin

Если вы используете Grafana Enterprise, для некоторых конечных точек потребуются определённые права. Дополнительные сведения см. в разделе Права управления доступом на основе ролей.

Получение прав на папку

GET /api/folders/:uid/permissions

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

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

Пояснения см. в примечании во введении.

Действие Область
folders.permissions:read folders:*

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

http
GET /api/folders/nErXDvCkzz/permissions 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: 551

[
  {
    "id": 1,
    "folderId": -1,
    "created": "2017-06-20T02:00:00+02:00",
    "updated": "2017-06-20T02:00:00+02:00",
    "userId": 0,
    "userLogin": "",
    "userEmail": "",
    "teamId": 0,
    "team": "",
    "role": "Viewer",
    "permission": 1,
    "permissionName": "View",
    "uid": "nErXDvCkzz",
    "title": "",
    "slug": "",
    "isFolder": false,
    "url": ""
  },
  {
    "id": 2,
    "dashboardId": -1,
    "created": "2017-06-20T02:00:00+02:00",
    "updated": "2017-06-20T02:00:00+02:00",
    "userId": 0,
    "userLogin": "",
    "userEmail": "",
    "teamId": 0,
    "team": "",
    "role": "Editor",
    "permission": 2,
    "permissionName": "Edit",
    "uid": "",
    "title": "",
    "slug": "",
    "isFolder": false,
    "url": ""
  }
]

Коды состояния:

  • 200 — Ok
  • 401 — Не авторизован
  • 403 — Доступ запрещён
  • 404 — Папка не найдена

Обновление прав на папку

POST /api/folders/:uid/permissions

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

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

Пояснения см. в примечании во введении.

Действие Область
folders.permissions:write folders:*

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

http
POST /api/folders/nErXDvCkzz/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
  "items": [
    {
      "role": "Viewer",
      "permission": 1
    },
    {
      "role": "Editor",
      "permission": 2
    },
    {
      "teamId": 1,
      "permission": 1
    },
    {
      "userId": 11,
      "permission": 4
    }
  ]
}

Схема тела JSON:

  • items — элементы прав для добавления или обновления. Элементы, пропущенные в списке, будут удалены.

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

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

{"message":"Folder permissions updated","id":1,"title":"Department ABC"}

Коды состояния:

  • 200 — Ok
  • 401 — Не авторизован
  • 403 — Доступ запрещён
  • 404 — Дашборд не найден