数据源权限 API - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据源权限 API

使用数据源权限 API 启用、禁用、列出、添加和移除数据源的权限。

您可以为用户或团队设置权限。无法为管理员设置权限,因为他们始终可以访问所有内容。

权限字段的权限级别如下:

  • 1 = 查询

注意

要在亚马逊托管 Grafana 工作空间中使用 Grafana API,您必须拥有有效的 Grafana API 令牌。您可以将其包含在 API 请求的Authorization字段中。有关如何创建令牌来验证您的 API 调用的信息,请参阅使用令牌进行身份验证

为数据源启用权限

POST /api/datasources/:id/enable-permissions

为具有给定 ID 的数据源启用权限。在添加允许某些用户或团队查询数据源的权限之前,除组织管理员外,任何人都无法查询数据源。

示例请求

POST /api/datasources/1/enable-permissions Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Datasource permissions enabled"}

状态码:

  • 200 — 已创建

  • 400-无法启用权限,详情请参阅响应正文。

  • 401 — 未经授权

  • 403-访问被拒绝

  • 404-未找到数据源

禁用数据源的权限

POST /api/datasources/:id/disable-permissions

禁用具有给定 ID 的数据源的权限。所有现有权限都将被移除,任何人都可以查询数据源。

示例请求

POST /api/datasources/1/disable-permissions Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk {}

响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Datasource permissions disabled"}

状态码:

  • 200 — 好的

  • 400-无法禁用权限,详情请参阅响应正文。

  • 401 — 未经授权

  • 403-访问被拒绝

  • 404-未找到数据源

获取数据源的权限

GET /api/datasources/:id/permissions

获取给定数据源的所有现有权限id

示例请求

GET /api/datasources/1/permissions HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 551 { "datasourceId": 1, "enabled": true, "permissions": [ { "id": 1, "datasourceId": 1, "userId": 1, "userLogin": "user", "userEmail": "user@test.com", "userAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae", "permission": 1, "permissionName": "Query", "created": "2017-06-20T02:00:00+02:00", "updated": "2017-06-20T02:00:00+02:00", }, { "id": 2, "datasourceId": 1, "teamId": 1, "team": "A Team", "teamAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae", "permission": 1, "permissionName": "Query", "created": "2017-06-20T02:00:00+02:00", "updated": "2017-06-20T02:00:00+02:00", } ] }

状态码:

  • 200 — 好的

  • 401 — 未经授权

  • 403-访问被拒绝

  • 404-未找到数据源

为数据源添加权限

POST /api/datasources/:id/permissions

使用给定的数据源添加用户权限id

添加用户权限的请求示例

POST /api/datasources/1/permissions Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "userId": 1, "permission": 1 }

添加用户权限的响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Datasource permission added"}

添加团队权限的请求示例

POST /api/datasources/1/permissions Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "teamId": 1, "permission": 1 }

添加团队权限的响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Datasource permission added"}

状态码:

  • 200 — 好的

  • 400-无法添加权限,详情请参阅响应正文。

  • 401 — 未经授权

  • 403-访问被拒绝

  • 404-未找到数据源

移除数据源的权限

DELETE /api/datasources/:id/permissions/:permissionId

移除具有给定 permissionId 的数据源的权限。id

示例请求

DELETE /api/datasources/1/permissions/2 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Datasource permission removed"}

状态码:

  • 200 — 好的

  • 401 — 未经授权

  • 403-访问被拒绝

  • 404-未找到数据源或未找到权限