租户设置

本项目是单租户自托管:一次部署服务一个客户环境,应用(appkey)是最外层隔离单位。没有“租户/组织/工作区”对象,也没有跨租户管理接口;需要多租户 SaaS 时应在部署层为每个租户独立实例。

概念​

需求本项目能力建议
业务线隔离应用(appkey)隔离用户/群/消息/配置每个业务线一个应用
组织/成员管理端子账号(全局,不按应用)用 RBAC 子账号分权
计费主体无(自托管)不适用
数据驻留IM_DATA_DIR 单目录/单库按租户独立部署
域名/品牌部署层反向代理与静态资源每租户独立域名
  • 管理 API 的账号与应用列表是部署级全局,不按租户过滤。
  • 没有 tenant/organization/workspace 端点;不要按类似路径接入。
  • 应用之间数据不互通;同一应用内通过用户/群/聊天室再做业务隔离。
不适用项

自托管版没有租户套餐、席位购买、组织计费与跨租户账单;本页只描述隔离模型。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#apps(tab #apps:应用与密钥)。
  • 请求头 X-Admin-Secret 与服务端 IM_ADMIN_SECRET 一致(本地默认 dev-admin)。
  • 已在控制台选中应用;带 {appkey} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 规划隔离边界

    一个客户/业务线一个应用;不要把不相关业务塞进同一 appkey。

  2. 创建应用

    在「应用与密钥」创建并保存 AppSecret;每个应用独立回调/推送/词表配置。

  3. 分配管理权限

    用子账号 + 角色控制谁能访问控制台;注意账号是部署级全局。

  4. 多租户部署

    需要强隔离时按租户独立实例/独立数据目录,而不是在同一实例里模拟租户。

参数表​

能力方法与路径说明
应用列表/创建GET/POST /api/admin/apps部署级;无租户字段
应用详情GET /api/admin/apps/{appkey}含用户/消息/在线计数
管理账号/api/admin/accounts部署级 RBAC,不按应用
数据目录IM_DATA_DIR环境变量(非 API)

示例​

为两个业务线创建独立应用​

Shell
curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"appkey":"tenant-a","name":"租户 A"}'

curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"appkey":"tenant-b","name":"租户 B"}'

curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps" \
  -H 'X-Admin-Secret: dev-admin'

常见问题​

支持多租户 SaaS 吗?​

不支持在同一实例内做租户隔离;请按租户独立部署。

应用之间数据会串吗?​

不会。用户、群、消息、配置都按 appkey 前缀隔离。

子账号能只管理一个应用吗?​

当前 RBAC 是部署级角色,不提供按应用授权。

租户能自己登录控制台吗?​

可以给租户创建子账号,但其可见范围是部署级;强隔离请独立部署。

相关链接​