대시보드 권한 API

대시보드 권한 API

이 API는 대시보드의 권한을 갱신하거나 조회하는 데 사용할 수 있어요.

⚠️ Grafana 13부터 /api 엔드포인트가 /apis 라우트로 대체되어 더 이상 사용되지 않게(deprecated) 되고 있어요. Grafana가 기존 API를 마이그레이션하는 동안 현재 사용 중인 레거시 API와 정확히 일치하지 않을 수 있어요. 이 변경으로 현재 설정이 중단되거나 깨지지는 않아요. 레거시 API는 비활성화되지 않으며 완전히 접근·사용 가능하지만, /api 라우트는 더 이상 업데이트되지 않아요. 자세한 내용은 "Grafana의 새 API 구조" 문서를 참조해요.

dashboardId=-1인 권한은 Viewer 및 Editor 역할을 가진 사용자의 기본 권한이에요. 권한은 사용자, 팀 또는 역할(Viewer 또는 Editor)에 대해 설정할 수 있어요. Admin에는 권한을 설정할 수 없어요 — 관리자는 항상 모든 것에 접근할 수 있기 때문이에요.

permission 필드의 권한 수준:

1 = View 2 = Edit 4 = Admin

Grafana Enterprise를 사용 중이라면 일부 엔드포인트에 특정 권한이 필요해요. 자세한 내용은 "Role-based access control permissions" 문서를 참조해요.

출처: 문서

본문

대시보드 권한 가져오기

GET /api/dashboards/uid/:uid/permissions

주어진 uid를 가진 대시보드의 모든 기존 권한을 가져와요.

필요한 권한 — 서문의 참고를 참조해요.

Action Scope
dashboards.permissions:read dashboards:*dashboards:uid:*folders:*folders:uid:*

예제 요청:

GET /api/dashboards/uid/dHEquNzGz/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...>

예제 응답:

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

[
  {
    "id": 1,
    "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": "Viewer",
    "permission": 1,
    "permissionName": "View",
    "uid": "dHEquNzGz",
    "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": "dHEquNzGz",
    "title": "",
    "slug": "",
    "isFolder": false,
    "url": ""
  }
]

상태 코드:

  • 200 - Ok
  • 401 - Unauthorized
  • 403 - Access denied
  • 404 - Dashboard not found

대시보드 권한 업데이트하기

POST /api/dashboards/uid/:uid/permissions

대시보드의 권한을 업데이트해요. 이 작업은 요청에 포함되지 않은 기존 권한을 제거해요.

필요한 권한 — 서문의 참고를 참조해요.

Action Scope
dashboards.permissions:write dashboards:*dashboards:uid:*folders:*folders:uid:*

예제 요청:

POST /api/dashboards/uid/dHEquNzGz/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>

{
  "items": [
    {
      "role": "Viewer",
      "permission": 1
    },
    {
      "role": "Editor",
      "permission": 2
    },
    {
      "teamId": 1,
      "permission": 1
    },
    {
      "userId": 11,
      "permission": 4
    }
  ]
}

JSON body 스키마:

  • items - 추가/업데이트할 권한 항목. 목록에서 생략된 항목은 제거돼요.

예제 응답:

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

{"message":"Dashboard permissions updated"}

상태 코드:

  • 200 - Ok
  • 401 - Unauthorized
  • 403 - Access denied
  • 404 - Dashboard not found

더 알아보기 (Learn more)

  • 대시보드 관리 API
  • 접근 제어 및 역할 기반 권한
  • Grafana의 새 API 구조