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 租户管理员登录名
email 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 租户用户数量限制
statusStr STRING 租户状态国际化显示 : 正常,已到期,已禁用 (根据状态计算出的租户状态)
status STRING 租户状态 : NORMAL, EXPIRED, DISABLED (根据状态计算出的租户状态)
options.appMartTabOrders JSON 租户标签页配置
options.appMartTabOrders.visible BOOLEAN 是否显示
options.appMartTabOrders.title STRING 标题
options.appMartTabOrders.key STRING 租户应用集市标签页标识,可选值为:system_portal(公共空间),app_mart(我的空间),vendor_area(平台空间)

1.2. 接口说明

1.2.1. 创建租户

创建租户。

请求URL

POST /api/v1/tenants

请求参数

URL 参数

request body 参数

租户结构说明
密码加密

说明

  1. 租户属性需要放在config字段中传递
  2. 平台方为租户设置作用范围为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. 删除租户

删除租户。

请求URL

DELETE /api/v1/tenants/{tenantId}

请求参数

URL 参数
字段 类型 是否必须 说明
tenantId LONG 租户的 id
request body 参数

说明

该接口彻底删除租户及相关资源,无法恢复。

返回对象的格式说明

接口示例1: 删除租户

DELETE /api/v1/tenants/{tenantId}

返回

{
    "version":"",
    "code":0,
    "msg":"success"
}

1.2.4. 修改租户管理员密码

修改租户管理员密码。通过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.5. 重置租户管理员角色

重置租户管理员角色,通过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.6. 启用/禁用租户

启用/禁用租户。

请求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.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. 管理员根据id查询租户

管理员根据id查询租户,包含租户内用户数,平台全局属性和引擎使用情况。

请求URL

GET /api/v1/tenants/admin/{tenantId}

请求参数

URL Path 参数
字段 类型 是否必须 说明
tenantId LONG 租户id
request body 参数

说明

返回对象的格式说明

租户结构说明

接口示例: 根据id查询租户

GET /api/v1/tenants/admin/{tenantId}

返回

{
  "version": "4.5-SNAPSHOT@44d6adc#96545aa",
  "code": 0,
  "msg": "success",
  "data": {
    "id": 10039,
    "tenantName": "租户wangdun",
    "code": "10039",
    "createdBy": 11527,
    "createdAt": "2020-11-11 08:52:27",
    "updatedBy": 28115,
    "updatedAt": "2023-08-01 17:40:02",
    "enable": true,
    "source": "internal",
    "config": {},
    "platformConfig": {
      "地区": {
        "scope": "GLOBAL",
        "value": "北京",
        "type": "string",
        "defaultValue": "北京",
        "customized": false
      }
    },
    "options": {
      "appMartTabOrders": [
        {
          "visible": true,
          "title": "公共空间",
          "key": "system_portal"
        },
        {
          "visible": true,
          "title": "我的空间",
          "key": "app_mart"
        },
        {
          "visible": true,
          "title": "平台空间",
          "key": "vendor_area"
        }
      ]
    },
    "loginName": "tenant",
    "email": "tenant@1.com",
    "engineResourceQuota": 10,
    "engineEnable": true,
    "engineDiskQuota": 30,
    "limitation": {
      "userNumLimit": 50,
      "expiredAt": "2025-12-31"
    },
    "statusStr": "正常",
    "status": "NORMAL",
    "resetPassword": true,
    "engineTotalDisk": 0.0,
    "remainingDays": 875,
    "enableUserNum": 33,
    "delete": false
  }
}

1.2.9. 根据企业编码查询租户

根据企业编码查询租户。

请求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.10. 根据企业名称查询租户

根据企业名称查询租户。

请求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.11. 租户列表

查看租户列表。

请求URL

GET /api/v1/tenants

请求参数

URL Query参数
字段 类型 是否必须 说明
q STRING 租户的企业名称或者企业 ID,不区分大小写
forAuth BOOLEAN 是否权限授权模块使用,为true,则返回结果包含ALL_TENANTS的虚拟租户
request body 参数

说明

返回对象的格式说明

字段 类型 说明
data.data JSON 租户结构说明
data.totalHits INTEGER 总行数
data.offset INTEGER 开始行数

接口示例: 租户列表

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.12. 租户列表(启用状态并且未过期的租户)

租户列表(启用状态切未过期的租户)。

请求URL

GET /api/v1/tenants/list-active

请求参数

说明

返回对象的格式说明

租户结构说明

接口示例: 租户列表(启用状态切未过期的租户)

GET /api/v1/tenants/list-active

返回

{
  "version": "",
  "code": 0,
  "msg": "success",
  "data": {
    "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",
        "limitation":{
          "userNumLimit":2,
          "expiredAt":"2023-04-09"
        }
      }
    ]
  }
}

1.2.13. 租户列表(仅包含简要信息)

租户列表(仅包含简要信息)。

请求URL

GET /api/v1/tenants/simplify

请求参数

说明

返回对象的格式说明

租户结构说明

接口示例: 租户列表(仅包含简要信息)

GET /api/v1/tenants/simplify

返回

{
  "version": "",
  "code": 0,
  "msg": "success",
  "data": {
    "data": [
      {
        "id": 10004,
        "tenantName": "tenant"
      }
    ]
  }
}

1.2.14. 获取租户引擎设置

请求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.15. 修改租户引擎设置

请求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.16. 查询租户下用户信息

请求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"
        }
      ]
    }
  ]
}

results matching ""

    No results matching ""

    用户属性 组织架构