组织 API
组织 HTTP API 分为两个资源,/api/org
(当前组织)和 /api/orgs
(管理员组织)。两者之间一个很大的区别是,管理所有组织的 API 仅支持基本认证,详情请参阅 管理员组织 API。
如果你正在运行 Grafana Enterprise,某些端点需要特定的权限。详情请参阅 基于角色的访问控制权限。
当前组织 API
获取当前组织
GET /api/org/
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
orgs:read | N/A |
请求示例:
GET /api/org/ HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
HTTP/1.1 200
Content-Type: application/json
{
"id":1,
"name":"Main Org."
}
获取当前组织内的所有用户
GET /api/org/users
返回当前组织内的所有组织用户。组织管理员角色用户可访问。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:read | users:* |
请求示例:
GET /api/org/users HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
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:read | users:* |
请求示例:
GET /api/org/users/lookup HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
HTTP/1.1 200
Content-Type: application/json
[
{
"userId": 1,
"login": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
]
更新指定用户
PATCH /api/org/users/:userId
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:write | users:* |
请求示例:
PATCH /api/org/users/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"role": "Viewer",
}
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"Organization user updated"}
删除当前组织内的用户
DELETE /api/org/users/:userId
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:remove | users:* |
请求示例:
DELETE /api/org/users/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"User removed from organization"}
更新当前组织
PUT /api/org
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
orgs:write | N/A |
请求示例:
PUT /api/org HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"name":"Main Org."
}
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"Organization updated"}
添加新用户到当前组织
POST /api/org/users
将全局用户添加到当前组织。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:add | users:* |
请求示例:
POST /api/org/users HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"role": "Admin",
"loginOrEmail": "admin"
}
响应示例:
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:read | N/A |
请求示例:
GET /api/orgs/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
响应示例:
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:read | N/A | 需要全局分配。 |
请求示例:
GET /api/orgs/name/Main%20Org%2E HTTP/1.1
Accept: application/json
Content-Type: application/json
响应示例:
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:create | N/A | 需要全局分配。 |
请求示例:
POST /api/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"name":"New Org."
}
注意:此 API 可以通过以下两种方式工作
- 需要设置 GF_USERS_ALLOW_ORG_CREATE=true
- 在 ini 文件中将配置值 users.allow_org_create 设置为 true
响应示例:
HTTP/1.1 200
Content-Type: application/json
{
"orgId":"1",
"message":"Organization created"
}
搜索所有组织
GET /api/orgs?perpage=10&page=1
仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope | 注意 |
---|---|---|
orgs:read | N/A | 需要全局分配。 |
请求示例:
GET /api/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json
注意:此 API 仅在请求 HTTP URL 中传递管理员用户名和密码时有效,例如 http://admin:admin@localhost:3000/api/orgs
perpage
参数的默认值为 1000
,page
参数的默认值为 0
。
响应示例:
HTTP/1.1 200
Content-Type: application/json
[
{
"id":1,
"name":"Main Org."
}
]
更新组织
PUT /api/orgs/:orgId
更新组织,字段 *地址 1*、*地址 2*、*城市* 尚未实现。仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
orgs:write | N/A |
请求示例:
PUT /api/orgs/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"name":"Main Org 2."
}
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"Organization updated"}
删除组织
DELETE /api/orgs/:orgId
仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
orgs:delete | N/A |
请求示例:
DELETE /api/orgs/1 HTTP/1.1
Accept: application/json
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"Organization deleted"}
获取组织中的用户
GET /api/orgs/:orgId/users
仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:read | users:* |
请求示例:
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/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:add | users:* |
请求示例:
POST /api/orgs/1/users HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"loginOrEmail":"user",
"role":"Viewer"
}
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"User added to organization", "userId": 1}
更新组织中的用户
PATCH /api/orgs/:orgId/users/:userId
仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:write | users:* |
请求示例:
PATCH /api/orgs/1/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"role":"Admin"
}
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"Organization user updated"}
删除组织中的用户
DELETE /api/orgs/:orgId/users/:userId
仅支持基本认证(用户名和密码),详见 介绍。
所需权限
请参阅 介绍 中的说明。
操作 | Scope |
---|---|
org.users:remove | users:* |
请求示例:
DELETE /api/orgs/1/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
响应示例:
HTTP/1.1 200
Content-Type: application/json
{"message":"User removed from organization"}