菜单
Enterprise 开源

组织 API

组织 HTTP API 分为两个资源,/api/org(当前组织)和 /api/orgs(管理员组织)。两者之间一个很大的区别是,管理所有组织的 API 仅支持基本认证,详情请参阅 管理员组织 API

如果你正在运行 Grafana Enterprise,某些端点需要特定的权限。详情请参阅 基于角色的访问控制权限

当前组织 API

获取当前组织

GET /api/org/

所需权限

请参阅 介绍 中的说明。

操作Scope
orgs:readN/A

请求示例:

http
GET /api/org/ HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "name":"Main Org."
}

获取当前组织内的所有用户

GET /api/org/users

返回当前组织内的所有组织用户。组织管理员角色用户可访问。

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:readusers:*

请求示例:

http
GET /api/org/users HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "orgId": 1,
    "userId": 1,
    "email": "admin@localhost",
    "avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56",
    "login": "admin",
    "role": "Admin",
    "lastSeenAt": "2019-08-09T11:02:49+02:00",
    "lastSeenAtAge": "< 1m"
  }
]

获取当前组织内的所有用户(查找)

GET /api/org/users/lookup

返回当前组织内的所有组织用户,但信息较少。组织管理员、任何文件夹的管理员或任何团队的管理员用户均可访问。主要由 Grafana UI 在添加团队成员以及编辑文件夹/仪表盘权限时用于提供用户列表。

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:readusers:*

请求示例:

http
GET /api/org/users/lookup HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "userId": 1,
    "login": "admin",
    "avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
  }
]

更新指定用户

PATCH /api/org/users/:userId

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:writeusers:*

请求示例:

http
PATCH /api/org/users/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "role": "Viewer",
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"Organization user updated"}

删除当前组织内的用户

DELETE /api/org/users/:userId

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:removeusers:*

请求示例:

http
DELETE /api/org/users/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"User removed from organization"}

更新当前组织

PUT /api/org

所需权限

请参阅 介绍 中的说明。

操作Scope
orgs:writeN/A

请求示例:

http
PUT /api/org HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "name":"Main Org."
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"Organization updated"}

添加新用户到当前组织

POST /api/org/users

将全局用户添加到当前组织。

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:addusers:*

请求示例:

http
POST /api/org/users HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "role": "Admin",
  "loginOrEmail": "admin"
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"User added to organization","userId":1}

管理员组织 API

注意

你无法使用服务账号令牌来验证 Admin Organizations HTTP API。服务账号仅限于一个组织和一个组织角色。它们无法被授予 Grafana 服务器管理员权限

要使用这些 API 端点,你必须使用基本认证,并且 Grafana 用户必须拥有 Grafana 服务器管理员权限。

默认配置的 admin 用户拥有使用这些 API 端点的权限。

按 Id 获取组织

GET /api/orgs/:orgId

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
orgs:readN/A

请求示例:

http
GET /api/orgs/1 HTTP/1.1
Accept: application/json
Content-Type: application/json

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "name":"Main Org.",
  "address":{
    "address1":"",
    "address2":"",
    "city":"",
    "zipCode":"",
    "state":"",
    "country":""
  }
}

按名称获取组织

GET /api/orgs/name/:orgName

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope注意
orgs:readN/A需要全局分配。

请求示例:

http
GET /api/orgs/name/Main%20Org%2E HTTP/1.1
Accept: application/json
Content-Type: application/json

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "name":"Main Org.",
  "address":{
    "address1":"",
    "address2":"",
    "city":"",
    "zipCode":"",
    "state":"",
    "country":""
  }
}

创建组织

POST /api/orgs

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope注意
orgs:createN/A需要全局分配。

请求示例:

http
POST /api/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "name":"New Org."
}

注意:此 API 可以通过以下两种方式工作

  1. 需要设置 GF_USERS_ALLOW_ORG_CREATE=true
  2. 在 ini 文件中将配置值 users.allow_org_create 设置为 true

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{
  "orgId":"1",
  "message":"Organization created"
}

搜索所有组织

GET /api/orgs?perpage=10&page=1

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope注意
orgs:readN/A需要全局分配。

请求示例:

http
GET /api/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json

注意:此 API 仅在请求 HTTP URL 中传递管理员用户名和密码时有效,例如 http://admin:admin@localhost:3000/api/orgs

perpage 参数的默认值为 1000page 参数的默认值为 0

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "id":1,
    "name":"Main Org."
  }
]

更新组织

PUT /api/orgs/:orgId

更新组织,字段 *地址 1*、*地址 2*、*城市* 尚未实现。仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
orgs:writeN/A

请求示例:

http
PUT /api/orgs/1 HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "name":"Main Org 2."
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"Organization updated"}

删除组织

DELETE /api/orgs/:orgId

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
orgs:deleteN/A

请求示例:

http
DELETE /api/orgs/1 HTTP/1.1
Accept: application/json

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"Organization deleted"}

获取组织中的用户

GET /api/orgs/:orgId/users

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:readusers:*

请求示例:

http
GET /api/orgs/1/users HTTP/1.1
Accept: application/json
Content-Type: application/json

注意:此 API 仅在请求 HTTP URL 中传递管理员用户名和密码时有效,例如 http://admin:admin@localhost:3000/api/orgs/1/users

响应示例:

http
HTTP/1.1 200
Content-Type: application/json
[
  {
    "orgId":1,
    "userId":1,
    "email":"admin@mygraf.com",
    "login":"admin",
    "role":"Admin"
  }
]

在组织中添加用户

POST /api/orgs/:orgId/users

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:addusers:*

请求示例:

http
POST /api/orgs/1/users HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "loginOrEmail":"user",
  "role":"Viewer"
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"User added to organization", "userId": 1}

更新组织中的用户

PATCH /api/orgs/:orgId/users/:userId

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:writeusers:*

请求示例:

http
PATCH /api/orgs/1/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "role":"Admin"
}

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"Organization user updated"}

删除组织中的用户

DELETE /api/orgs/:orgId/users/:userId

仅支持基本认证(用户名和密码),详见 介绍

所需权限

请参阅 介绍 中的说明。

操作Scope
org.users:removeusers:*

请求示例:

http
DELETE /api/orgs/1/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json

响应示例:

http
HTTP/1.1 200
Content-Type: application/json

{"message":"User removed from organization"}