观远 BI

权限相关API

创建于 2022-10-25 / 最近更新于 2024-03-22 / 6253
字体: [默认] [大] [更大]

1. 权限相关API 概述

Public API,是指观远数据为系统集成提供的标准化开放接口。系统集成,通常是指将各个分离的设备(如个人电脑)、系统、功能和信息等集成到相互关联的、统一和协调的系统之中,使资源达到充分共享,实现集中、高效、便利的管理。系统集成实现的关键在于解决系统之间的互连和互操作性问题,是一个多厂商、多协议和面向各种应用的体系结构。

观远数据提供一套简便的验证机制,来供私有化部署用户进行外部系统和账户对接集成,实现集中、高效、便利的管理。本文将为您详细介绍观远数据为您提供的与权限相关的 Public API。

2. 权限相关API 列表速览

目前,与权限相关的 Public API 共包含9个,列表如下:

序号接口描述PATH
1获取指定用户能访问的页面列表POST /public-api/user/:uId/get-authorized-pages
2获取指定用户能访问的数据集列表POST /public-api/user/:uId/get-authorized-datasets
3修改指定用户与各个页面的访问及归属关系POST /public-api/user/:uId/modify-authorized-pages
4修改指定用户与各个数据集的访问及归属关系POST /public-api/user/:uId/modify-authorized-datasets
5获取指定用户组能访问的页面列表POST /public-api/user-group/:ugId/get-authorized-pages
6获取指定用户组能访问的数据集列表POST /public-api/user-group/:ugId/get-authorized-datasets
7修改指定用户组与各个页面的访问及归属关系POST /public-api/user-group/:ugId/modify-authorized-pages
8修改指定用户组与各个数据集的访问及归属关系POST /public-api/user-group/:ugId/modify-authorized-datasets
9通用资源权限授权与解除POST /public-api/common-auth/control 

3. 权限相关API 具体说明

3.1 获取指定用户能访问的页面列表 (1019)

请求方式:POST

请求地址:/public-api/user/:uId/get-authorized-pages?pgType=:pgType

3.1.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
pgType指定LARGE_SCREEN则会返回大屏的权限信息,不指定(或者指定PAGE)则返回普通页面权限urlString

以QueryString形式传递参数

POST Body Sample:

{
   "token":"xdjfghfodjgjshgfiw23ehrt43"
}

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "地图卡片",
           "id": "o4f72c9ea74544b52a87931c",
           "isInherit": false,
           "canExport":false // true 表示可以导出,false表示不可以导出
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": false,
           "name": "【T】bug复现",
           "id": "ia8f878c8bc0d4f86b9e676c"
       },
       ……
   ]
}

Response返回的是个json object,其中result表示执行结果,response是返回的内容。response是个json array,每个单项的json对象里面,id是指资源的id(页面或者数据集),name是这个资源的名称,isOwner是个bool值,true表示是此资源的所有者。isInherit是指此资源是否是从用户组那里继承来的,如果是true,则sources里面会记录是从哪个用户组那里继承而来。如果是false,sources里面记录的是自己的用户信息。sources里面id是用户或者用户组的id,name是名字,isSelf是指是否是自己这个用户或者用户组。权限相关的其他API的response返回值的含义,均可参考此处。

3.2 获取指定用户能访问的数据集列表(1020)

请求方式: POST

请求地址:/public-api/user/:uId/get-authorized-datasets

3.2.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得

POST Body Sample:

{
   "token":"p3a369b32444b48caa873411",
}

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "feedtest",
           "id": "c18baf7eaf7f848f881102e6",
           "canExport":false, // true 表示可以导出,false表示不可以导出
           "isInherit": false
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "模拟数据zy",
           "id": "va7e7af8e771247f791bb90f",
           "isInherit": false
       },
      .......
   ]
}

3.3 修改指定用户与各个页面的访问及归属关系(1022)

请求方式:POST

请求地址:/public-api/user/:uId/modify-authorized-pages

3.3.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
pages需要更改权限的页面列表BodyString仪表板与大屏对应的ID

POST Body Sample:

{
   "token":"sdjfghfodjgjshgfiw23ehrt43",
   "pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true,"isExportable":true}]
}

pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者,isReadable设为true表示将此用户设为这个页面的访问者,设置为false,则表示去掉用户对这个页面的相应权限;isExportable 表示是否可以导出(true表示可以导出;false表示不可以导出)。

Response Sample:  

返回用户可以访问的所有页面列表。

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "地图卡片",
           "id": "o4f72c9ea74544b52a87931c",
           "isInherit": false
       },
       ……
   ]
}

3.4 修改指定用户与各个数据集的访问及归属关系(1023)

请求方式:POST

请求地址:/public-api/user/:uId/modify-authorized-datasets

3.4.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
datasets需要更改权限的数据集列表BodyString--

POST Body Sample:

{
   "token":"sdjfghfodjgjshgfiw23ehrt43",
   "datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true,"isExportable":true}]
}

datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者,设置为false,则表示去掉用户对这个数据集的相应权限;isExportable 表示是否可以导出(true表明可以导出;false表明不可以导出)。

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "feedtest",
           "id": "c18baf7eaf7f848f881102e6",
           "isInherit": false
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "123",
           "id": "tdf9f50e6aa2945fda15a023",
           "isInherit": false
       },
       ……
   ]
}

3.5 获取指定用户组能访问的页面列表 (1024)

请求方式:POST

请求地址:/public-api/user-group/:ugId/get-authorized-pages?pgType=:pgType

3.5.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
ugId指定用户组的IdurlString--
pgType指定LARGE_SCREEN则会返回大屏的权限信息,不指定则返回普通页面权限urlString--

POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43"
}

Response Sample:

{
"result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "地图卡片",
           "id": "o4f72c9ea74544b52a87931c",
           "canExport":false, // true 表示可以导出,false表示不可以导出
           "isInherit": false
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": false,
           "name": "【T】bug复现",
           "id": "ia8f878c8bc0d4f86b9e676c"
       },
       ……
   ]
}

3.6 获取指定用户组能访问的数据集列表(1025)

请求方式:POST

请求地址:/public-api/user-group/:ugId/get-authorized-datasets

3.6.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得

POST Body Sample:

{
    "token":"sdjfghfodjgjshgfiw23ehrt43"
}

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "feedtest",
           "id": "c18baf7eaf7f848f881102e6",
           "canExport":false, // true 表示可以导出,false表示不可以导出
           "isInherit": false
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "模拟数据zy",
           "id": "va7e7af8e771247f791bb90f",
           "isInherit": false
       },
      .......
   ]
}

3.7 修改指定用户组与各个页面的访问及归属关系(1026)

请求方式:POST

请求地址:/public-api/user-group/:ugId/modify-authorized-pages

3.7.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
ugId指定用户组的IdurlString--
pages需要更改权限的页面列表BodyString--

POST Body Sample:

{
   "token":"sdjfghfodjgjshgfiw23ehrt43",
   "pages":[{"pgId":"p34c5a5029903422298c67de","isOwner":false,"isReadable":true,"isExportable":true}]
}

pages中,pgId一般在观远页面获取,isOwner设为true表示将此用户设为这个页面的所有者;isReadable设为true表示将此用户设为这个页面的访问者,设置为false,则表示去掉用户对这个页面的相应权限;isExportable 表示是否可以导出。 

Response Sample:

{
   "result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "地图卡片",
           "id": "o4f72c9ea74544b52a87931c",
           "isInherit": false
       },
       ……
   ]
}

3.8 修改指定用户组与各个数据集的访问及归属关系(1027)

请求方式: POST

请求地址:POST /public-api/user-group/:ugId/modify-authorized-datasets

3.8.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBodyString在观远平台中获得
uId指定用户的IdurlString--
datasets需要更改权限的数据集列表BodyString--

POST Body Sample:

{
   "token":"sdjfghfodjgjshgfiw23ehrt43",
   "datasets":[{"dsId":"q0138226af8ea46d6825e043","isOwner":false,"isReadable":true,"isExportable":true}]
}

datasets中,dsId一般在观远页面获取表示数据集Id,isOwner设为true表示将此用户设为这个数据集的所有者,isReadable设为true表示将此用户设为这个数据集的访问者。设置为false,则表示去掉用户对这个数据集的相应权限;isExportable 表示是否可以导出。 

Response Sample:

{
"result": "ok",
   "response": [
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "feedtest",
           "id": "c18baf7eaf7f848f881102e6",
           "isInherit": false
       },
       {
           "sources": [
               {
                   "isSelf": true,
                   "id": "u969b654d7cd14610b0b246f",
                   "name": null
               }
           ],
           "isOwner": true,
           "name": "123",
           "id": "tdf9f50e6aa2945fda15a023",
           "isInherit": false
       },
       ……
   ]
}

3.9  通用资源权限授权与解除

3.9.1 接口简介

请求方式:POST

请求地址:/public-api/common-auth/control

特别说明:

  • 该接口目前仅支持以下资源类型:数据账户、仪表板文件夹、移动轻应用、桌面应用(6.3 版本开始支持)

  • 该接口支持批量设置账号ID与资源ID,但数量不宜过多,一般建议少于100

3.9.2 参数说明

参数名参数值说明Location类型是否必填备注
token应用TokenBODYString在观远平台中获得
domId域IDBODYString默认guanbi
operatorLoginId操作者登录IDBODYString如果不填写,默认以管理员名义进行权限的操作;审计
operations权限策略BODYString数组
op权限操作类型BODYString

删除权限 RemoveAuthOp

添加权限 AddAuthOp

subjectTye操作对象账号类型BODYString

外部用户组ID ExternalUserGroups

内部用户组ID InternalUserGroups

用户登录账号 LoginUsers

内部用户ID InternalUsers

subjectIds操作对象账号BODYString数组支持放入多个账号
resourceType资源类型BODYString

据账户 ACCOUNT

文件夹 DIRECTORY

移动轻应用 CUSTOM_APP

桌面应 WEB_PORTAL_APP

directoryType文件夹类型BODYString当资源类型为【文件夹】时,需要设置文件夹类型。目前仅支持页面(PAGE)的文件夹。
resourceIds资源IDBODYString数组支持放入多个资源ID
aclType权限类型BODYString

所有者 RESOURCE_MANAGER

访问者

RESOURCE_USER

导出者RESOURCE_EXPORTER

3.9.3 请求与响应示例

POST Body Sample:

{
 "domId": "guanbi",
 "operatorLoginId": "a@abc.com",
"operations": [
  {
     "op": "AddAuthOp",
     "subjectIds": ["b@abc.com", "c@abc.com", "d@abc.com"],
     "subjectType": "LoginUsers",
     "aclType": "RESOURCE_MANAGER",
     "resourceIds": ["r1", "r2", "r3"],
     "resourceType": "ACCOUNT"
   }
 ]
}

{
 "domId": "guanbi",
 "operatorLoginId": "a@abc.com",
"operations": [
  {
     "op": "AddAuthOp",
     "subjectIds": ["b@abc.com", "c@abc.com", "d@abc.com"],
     "subjectType": "LoginUsers",
     "aclType": "RESOURCE_MANAGER",
     "resourceIds": ["r1", "r2", "r3"],
     "resourceType": "DIRECTORY",
     "directoryType": "PAGE"
   }
 ]
}

Response Sample:

{
 "res": [
   { "succeed": true },
 ]
}

{
 "res": [
   { "succedd": false, "msg": "xxx" }
 ]
}

返回体中包含一个数组,分别对应请求里不同处理要求的结果。 

3 人点赞过