1. 租户
1.1. 租户说明
1.1.1. 租户的定义
hengshi系统内的租户。
租户结构说明
字段 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | LONG | 否 | id |
tenantName | STRING | 是 | 企业名称 |
code | STRING | 是 | 企业 ID |
enable | BOOLEAN | 否 | 是否启用 |
source | STRING | 是 | 租户来源 |
config | JSON | 否 | 租户属性 |
platformConfig | JSON | 否 | 存储平台方为租户设置的全局属性值 |
createdAt | DATETIME | 否 | 创建的时间 |
createdBy | INTEGER | 否 | 创建用户的 id |
updatedAt | DATETIME | 否 | 最后更新的时间 |
updatedBy | INTEGER | 否 | 最后修改用户的 id |
loginName | STRING | 是 | 租户管理员登录名 |
STRING | 是 | 租户管理员邮箱 | |
userName | STRING | 是 | 租户管理员显示名 |
resetPassword | BOOLEAN | 是 | 租户管理员第一次登录是否需要重置密码 |
engineResourceQuota | INTEGER | 否 | 租户使用引擎资源的资源数,当打开租户引擎开关的时候,才需要设置,所有开启引擎的租户的资源数总和不能超过总资源数 |
engineEnable | BOOLEAN | 否 | 租户是否开启引擎功能 |
engineDiskQuota | INTEGER | 否 | 租户允许使用引擎空间的上限,当打开租户引擎开关的时候,才需要设置,单位为兆字节(MB) |
engineTotalDisk | NUMBER | 否 | 租户当前已经使用的引擎空间,单位为兆字节(MB) |
allocatedEngineResourceQuota | INTEGER | 否 | 已经分配给租户的资源数总和 |
remainEngineResourceQuota | INTEGER | 否 | 剩余总资源数 |
limitation | JSON | 否 | 租户有效期和用户数量限制 |
limitation.expiredAt | Date | 否 | 租户有效期 |
limitation.userNumLimit | INTEGER | 否 | 租户用户数量限制 |
1.2. 接口说明
1.2.1. 创建租户
创建租户。
请求URL
POST /api/v1/tenants
请求参数
URL 参数
无
request body 参数
说明
- 租户属性需要放在
config
字段中传递 - 平台方为租户设置作用范围为
GLOBAL
的全局用户属性值时,需通过platformConfig
传递
返回对象的格式说明
接口示例1: 创建租户(完整信息)
POST /api/v1/tenants
{
"tenantName": "租户 api",
"code": "abc123",
"loginName": "admin",
"email": "admin@hengshi.com",
"userName": "租户管理员名称",
"password": "fbp08rVODAurEhdGAJelNFR1oS5BQuBo8CK+J5UwiHUFFnNCL7tdlbScnHLfIsJbyStGvKmOBKtoreolwXgI5w==",
"uuid": "0040212d-5699-4b2e-84e4-b2fbf6a3427a",
"resetPassword": true,
"platformConfig": {
"global_string": "test",
"global_num": 1
},
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
返回
{
"version":"",
"code":0,
"msg":"success",
"data":{
"id":10005,
"tenantName":"租户api",
"code":"abc123",
"createdBy":1,
"createdAt":"2021-01-14 17:37:56",
"updatedBy":1,
"updatedAt":"2021-01-14 17:37:56",
"source":"internal",
"loginName":"admin",
"email":"admin@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
接口示例2: 创建租户(必要信息)
POST /api/v1/tenants
{
"tenantName": "租户 api",
"code": "abc123",
"loginName": "admin"
}
返回
{
"version":"",
"code":0,
"msg":"success",
"data":{
"id":10005,
"tenantName":"租户 api",
"code":"abc123",
"createdBy":1,
"createdAt":"2021-01-14 17:37:56",
"updatedBy":1,
"updatedAt":"2021-01-14 17:37:56",
"source":"internal",
"loginName":"admin",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
1.2.2. 修改租户
修改租户。
请求URL
PUT /api/v1/tenants/{tenantId}
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 修改用户的 id |
request body 参数
说明
租户属性需要放在config
字段中传递。
该接口4.1版本以后不再支持修改租户管理员密码,请使用接口修改租户管理员密码和重置租户管理员角色
该接口4.3版本以后该接口不再支持启用/禁用租户,可调用启用/禁用租户
返回对象的格式说明
修改租户属性说明
若在更新租户时通过config修改用户属性,则需要传被修改用户的全量属性,该修改为直接覆盖,没有传的属性都会被置空
接口示例1: 修改租户
PUT /api/v1/tenants/{tenantId}
{
"code":"abc123",
"tenantName":"租户api2",
"loginName":"admin",
"email":"admin@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
返回
{
"version":"",
"code":0,
"msg":"success",
"data":{
"id":10005,
"code":"abc123",
"tenantName":"租户api2",
"loginName":"admin",
"email":"admin@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
1.2.3. 修改租户管理员密码
修改租户管理员密码。通过loginName,或email查找用户,并修改该用户的密码。 loginName,email 有一个不为空即可。
请求URL
PUT /api/v1/tenants/{tenantId}/reset-password
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 修改用户的 id |
request body 参数
租户结构说明 密码加密 loginName,email 有一个不为空即可。
说明
修改租户管理员密码。
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
接口示例1: 修改租户管理员密码
PUT /api/v1/tenants/{tenantId}/reset-password
{
"loginName":"admin",
"email":"admin@hengshi.com",
"password":"OL6dVL4wz/v48VN/s0g79DNx9tabvRnQwpxXN5oamD6I44Ql60tTumwlgNlvil/WLnICVDjmQpQxZuVv+OskGA==",
"uuid":"ba084f85-2ebf-4489-8adf-2e010d09602a"
}
返回
{
"version":"",
"code":0,
"msg":"success"
}
1.2.4. 重置租户管理员角色
重置租户管理员角色,通过loginName,或者email将该用户设置为系统管理员,如果该用户是禁用状态,会自动启用该用户。 loginName,email 有一个不为空即可。
请求URL
PUT /api/v1/tenants/{tenantId}/reset-admin
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 修改用户的 id |
request body 参数
租户结构说明 loginName,email 有一个不为空即可。
说明
重置租户管理员。
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
接口示例1: 修改租户管理员密码
PUT /api/v1/tenants/{tenantId}/reset-admin
{
"loginName":"admin",
"email":"admin@hengshi.com"
}
返回
{
"version":"",
"code":0,
"msg":"success"
}
1.2.5. 启用/禁用租户
启用/禁用租户。
请求URL
PUT /api/v1/tenants/enable
请求参数
URL 参数
无
request body 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenants | JSON | 是 | 启用/禁用租户的 id 数组 |
tenants.id | LONG | 是 | 启用/禁用租户的 id |
enable | BOOLEAN | 是 | 启用/禁用 |
说明
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
接口示例: 禁用租户
PUT /api/v1/tenants/enable
{
"tenants":[
{
"id":10005
}
],
"enable":false
}
返回
{
"version":"",
"code":0,
"msg":"success"
}
1.2.6. 租户列表
查看租户列表。
请求URL
GET /api/v1/tenants
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
q | STRING | 否 | 租户的企业名称或者企业 ID,不区分大小写 |
request body 参数
无
说明
返回对象的格式说明
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
data.totalHits | INTEGER | 总行数 |
data.offset | INTEGER | 开始行数 |
data.data.statusStr | STRING | 租户状态 : 正常,试用,已到期,已禁用 |
接口示例: 租户列表
GET /api/v1/tenants?q=tenant
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"offset": 0,
"totalHits": 1,
"data": [
{
"id": 10004,
"tenantName": "tenant",
"code": "tenant",
"createdBy": 2,
"createdAt": "2021-08-02 16:32:36",
"updatedBy": 2,
"updatedAt": "2021-08-02 16:32:36",
"enable": true,
"source": "internal",
"config": {
},
"platformConfig": {
},
"loginName": "tenant",
"email": "tenant@hengshi.com",
"statusStr": "试用",
"resetPassword": true,
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
]
}
}
1.2.7. 根据id查询租户
根据id查询租户。
请求URL
GET /api/v1/tenants/{tenantId}
请求参数
无
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 租户id |
request body 参数
无
说明
返回对象的格式说明
接口示例: 根据id查询租户
GET /api/v1/tenants/10001
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"id": 10001,
"tenantName": "tenant",
"code": "tenant",
"createdBy": 2,
"createdAt": "2021-10-13 16:35:10",
"updatedBy": 2,
"updatedAt": "2021-10-13 16:37:03",
"enable": true,
"source": "internal",
"config": {},
"platformConfig": {},
"loginName": "tenant",
"email": "tenant@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
1.2.8. 根据企业编码查询租户
根据企业编码查询租户。
请求URL
POST /api/v1/tenants/get-by-code
请求参数
无
URL 参数
无
request body 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
code | STRING | 是 | 租户企业编码 |
说明
返回对象的格式说明
接口示例: 根据企业编码查询租户。
POST /api/v1/tenants/get-by-code
{
"code": "xxx"
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"id": 10001,
"tenantName": "tenant",
"code": "tenant",
"createdBy": 2,
"createdAt": "2021-10-13 16:35:10",
"updatedBy": 2,
"updatedAt": "2021-10-13 16:37:03",
"enable": true,
"source": "internal",
"config": {},
"platformConfig": {},
"loginName": "tenant",
"email": "tenant@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
1.2.9. 根据企业名称查询租户
根据企业名称查询租户。
请求URL
POST /api/v1/tenants/get-by-name
请求参数
无
URL 参数
无
request body 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantName | STRING | 是 | 租户企业名称 |
说明
返回对象的格式说明
接口示例: 根据企业名称查询租户。
POST /api/v1/tenants/get-by-name
{
"tenantName": "xxx"
}
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": {
"id": 10001,
"tenantName": "tenant",
"code": "tenant",
"createdBy": 2,
"createdAt": "2021-10-13 16:35:10",
"updatedBy": 2,
"updatedAt": "2021-10-13 16:37:03",
"enable": true,
"source": "internal",
"config": {},
"platformConfig": {},
"loginName": "tenant",
"email": "tenant@hengshi.com",
"limitation":{
"userNumLimit":2,
"expiredAt":"2023-04-09"
}
}
}
1.2.10. 获取租户引擎设置
请求URL
GET /api/tenants/{tenantId}/engine-config
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 租户id |
request body 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
返回对象的格式说明
租户结构说明中的engineResourceQuota,engineEnable,allocatedEngineResourceQuota,remainEngineResourceQuota四个字段
接口示例:
GET /api/tenants/{tenantId}/engine-config
返回
{
"version":"",
"code":0,
"msg":"success",
"data":{
"engineResourceQuota":10,
"engineEnable":true,
"allocatedEngineResourceQuota":40,
"remainEngineResourceQuota":9960
}
}
1.2.11. 修改租户引擎设置
请求URL
PUT /api/tenants/{tenantId}/engine-config
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 租户id |
request body 参数
租户结构说明中的engineResourceQuota,engineEnable两个字段
返回对象的格式说明
租户结构说明中的engineResourceQuota,engineEnable,allocatedEngineResourceQuota,remainEngineResourceQuota四个字段
接口示例:
PUT /api/tenants/{tenantId}/engine-config
{
"engineResourceQuota":30,
"engineEnable":true
}
返回
{
"version":"",
"code":0,
"msg":"success",
"data":{
"engineResourceQuota":30,
"engineEnable":true,
"allocatedEngineResourceQuota":60,
"remainEngineResourceQuota":9940
}
}
1.2.12. 查询租户下用户信息
请求URL
GET /api/tenants/{tenantId}/users
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
tenantId | LONG | 是 | 租户 id |
request 查询参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
roleNames | STRING | 否 | 角色名称集合,拥有该角色集合中任意一个角色的用户都会被返回。角色名称中包含空格,需要 url 编码 |
角色名称说明中的name。其中租户没有API 管理员角色
返回对象的格式说明
用户结构说明中的id,name,loginName,roles。
接口示例:
GET /api/tenants/{tenantId}/users?roleNames=data%20analyst&roleNames=data%20viewer
返回
{
"version": "",
"code": 0,
"msg": "success",
"data": [
{
"id": 11,
"name": "test1",
"loginName": "test1",
"roles": [
{
"id": 3,
"name": "data analyst",
"description": "data analyst"
}
]
},
{
"id": 12,
"name": "test2",
"loginName": "test2",
"roles": [
{
"id": 3,
"name": "data analyst",
"description": "data analyst"
},
{
"id": 4,
"name": "data viewer",
"description": "data viewer"
}
]
}
]
}