31 KiB
IM 后台需求文档
编写日期:2026-08-12 依据文档:
IM-产品需求服务端改造分析报告.md、IM-服务端多租户改造方案.md、IM-多租户第5至12章代码改造与测试方案.md、IM-前后端对接文档.md、IM-系统设计文档.md目标读者:后台产品、后端、管理端前端、测试
1. 文档目的
本文从现有 IM 产品与服务端设计文档中提取“后台管理端”需求,用于后续后台系统开发。本文只描述后台能力,不重复普通移动端聊天、通讯录、消息收发等客户端功能。
后台系统分为两类:
| 后台 | 使用对象 | 数据范围 |
|---|---|---|
| 平台运营后台 | 平台管理员、运维、安全负责人 | 可管理全部租户,但跨租户操作必须二次验证和审计 |
| 企业管理后台 | 租户负责人、企业管理员、安全审计员、组织管理员 | 只能管理当前租户内的数据 |
所有后台能力必须建立在多租户隔离之上:后台 Token 必须包含可信 tenant_id、uid、角色、权限版本;平台后台的跨租户操作必须走独立后台 API,禁止通过普通 WebSocket AsUser 任意代操作用户。
2. 后台角色与权限
2.1 角色
| 角色 | 作用域 | 说明 |
|---|---|---|
platform_admin |
平台级 | 租户生命周期、平台配置、运维诊断、跨租户审计 |
tenant_owner |
租户级 | 企业最高管理员,拥有本租户全部管理权限 |
tenant_admin |
租户级 | 组织、用户、群、安全策略和工作台配置 |
security_auditor |
租户级 | 实名、举报、反馈、审计读取和安全处置 |
org_admin |
租户级或部门级 | 部门、成员、岗位、组织数据范围 |
report_admin |
部门级 | 日报、月报、会议统计与提醒 |
group_admin |
群级 | 群成员、公告、禁言、群文件等群治理 |
2.2 权限原则
- 平台管理员可以选择租户上下文进行运维,但所有跨租户读取、导出、代操作必须记录审计。
- 企业管理员只能访问自己租户的数据,不能通过 URL、Header、Body 指定其他
tenant_id。 - 后台菜单和按钮由服务端返回权限裁剪结果,前端隐藏只是体验优化,服务端仍必须二次鉴权。
- 敏感操作必须支持二次认证、幂等键、版本号或
If-Match,并写入审计。 - 普通租户管理员不能修改或删除审计日志。
3. 后台功能总览
| 模块 | 平台后台 | 企业后台 | 优先级 |
|---|---|---|---|
| 租户管理 | 是 | 否 | P0 |
| 租户配置与配额 | 是 | 部分只读或申请变更 | P0 |
| 管理员与角色权限 | 是 | 是 | P0 |
| 用户与账号安全 | 支持跨租户运维 | 是 | P0 |
| 组织架构 | 否 | 是 | P1 |
| 群治理 | 运维只读/处置 | 是 | P1 |
| 工作台应用配置 | 平台模板 | 租户配置 | P2 |
| 会议、日报、月报 | 否 | 是 | P2 |
| 总经理信箱 | 否 | 是 | P2 |
| 实名认证审核 | 平台可审计 | 是 | P2 |
| 反诈与内容审核 | 平台策略/插件 | 租户策略/处置 | P2 |
| 举报与反馈工单 | 平台可审计 | 是 | P2 |
| 文件与存储治理 | 平台运维 | 租户范围 | P1 |
| Push、短信、TURN、对象存储配置 | 是 | 租户专属配置 | P1 |
| 审计日志 | 是 | 只读本租户 | P0 |
| Outbox 与后台任务 | 是 | 租户任务可见 | P1 |
4. 平台后台需求
4.1 租户管理
后台需要支持租户的创建、查看、编辑、停用、恢复、删除前置检查和删除归档。
租户状态:
| 状态 | 登录 | 读消息 | 写业务 | 管理操作 |
|---|---|---|---|---|
provisioning |
禁止 | 禁止 | 禁止 | 平台管理员可配置 |
active |
允许 | 允许 | 允许 | 按角色允许 |
suspended |
禁止新登录 | 可配置只读 | 禁止 | 平台管理员可恢复或导出 |
deleting |
禁止 | 禁止 | 禁止 | 只允许删除任务 |
deleted |
禁止 | 禁止 | 禁止 | 只保留审计 |
核心字段:
| 字段 | 说明 |
|---|---|
id |
内部租户 ID,普通客户端不返回 |
code |
企业码,全局唯一,最长 64 字符 |
name |
企业名称 |
tenant_desc |
企业说明 |
state |
租户状态 |
created_by/updated_by |
操作人 |
created_at/updated_at |
时间 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenants |
租户列表,支持状态、企业码、名称过滤 |
POST |
/admin/v1/tenants |
创建租户 |
GET |
/admin/v1/tenants/{tenant_id} |
租户详情 |
PATCH |
/admin/v1/tenants/{tenant_id} |
修改名称、说明等基础资料 |
POST |
/admin/v1/tenants/{tenant_id}/suspend |
停用租户 |
POST |
/admin/v1/tenants/{tenant_id}/restore |
恢复租户 |
POST |
/admin/v1/tenants/{tenant_id}/deletion-check |
删除前检查 |
DELETE |
/admin/v1/tenants/{tenant_id} |
进入删除流程 |
验收点:
- 租户
code全局唯一。 - 停用后旧 Token、WS 登录、HTTP 产品接口均拒绝。
- 删除必须进入异步任务,不允许直接硬删业务表。
- 所有状态变更写平台审计。
4.2 租户配置与配额
首期配置真源是 im_tenant_config。
| 配置 | 说明 | 默认 |
|---|---|---|
max_users |
有效用户数上限 | 0 表示不限 |
max_groups |
有效群数量上限 | 0 表示不限 |
max_group_members |
单群有效成员上限 | 0 表示不限 |
后续可扩展配置:
| 配置域 | 示例 |
|---|---|
| 功能开关 | 加好友、建群、用户搜索、音视频、群文件、日报月报 |
| 安全策略 | 实名要求、青少年限制、风控模式、数据保留期 |
| 消息策略 | 文本长度、媒体类型、消息频控、撤回时限、编辑时限 |
| 文件策略 | 单文件大小、总存储配额、允许 MIME、病毒扫描 |
| Push 配置 | APNS/FCM 凭证、模板、锁屏隐私 |
| 外部服务 | 短信、REST 认证、TURN、对象存储、审核插件 |
| 企业品牌 | Logo、主题色、企业描述、客户端下载地址 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenants/{tenant_id}/config |
查询租户配置 |
PATCH |
/admin/v1/tenants/{tenant_id}/config |
修改配额和策略 |
GET |
/admin/v1/tenants/{tenant_id}/usage |
查询用户数、群数、文件容量、消息量 |
GET |
/admin/v1/tenants/{tenant_id}/features |
查询功能开关 |
PATCH |
/admin/v1/tenants/{tenant_id}/features |
修改功能开关 |
验收点:
- 注册、创建群、入群审批必须在事务内校验配额。
- 超限返回稳定错误码,并记录当前用量、限制值、租户和操作。
- 修改配置只影响当前租户,不能污染全平台缓存。
4.3 平台管理员管理
需求:
- 创建、停用、恢复平台管理员。
- 分配平台角色和权限。
- 平台管理员登录、二次认证、Token 撤销。
- 查看平台管理员操作审计。
敏感操作:
| 操作 | 要求 |
|---|---|
| 创建平台管理员 | 二次确认和审计 |
授权 platform_admin |
二次认证 |
| 跨租户代操作 | 必须填写原因,记录目标租户和目标对象 |
| 导出数据 | 审批或二次认证,记录导出范围 |
4.4 平台运维与任务
需求:
- 查看运行节点、数据库版本、Adapter 类型和多租户能力。
- 非 MySQL 或未完成租户能力的 Adapter 在产品模式下必须拒绝启动。
- 查看 Outbox 事件积压、失败、死信和重试。
- 查看文件垃圾回收、搜索索引任务、Push 投递、外部审核调用状态。
- 支持按租户维度查看任务,但避免 Prometheus 高基数标签。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/system/health |
系统健康 |
GET |
/admin/v1/system/nodes |
节点列表 |
GET |
/admin/v1/system/outbox-events |
Outbox 查询 |
POST |
/admin/v1/system/outbox-events/{id}/retry |
重试事件 |
POST |
/admin/v1/system/outbox-events/{id}/dead-letter |
标记死信 |
GET |
/admin/v1/system/audit-logs |
平台审计 |
5. 企业后台需求
5.1 企业管理员与角色权限
企业后台需要支持本租户内管理员管理。
角色:
| 角色 | 权限 |
|---|---|
tenant_owner |
全部租户管理权限 |
tenant_admin |
用户、组织、群、安全、工作台配置 |
security_auditor |
实名、举报、反馈、审计读取 |
org_admin |
组织架构和成员维护 |
report_admin |
日报、月报、会议统计 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/admins |
企业管理员列表 |
POST |
/admin/v1/tenant/admins |
添加管理员 |
PATCH |
/admin/v1/tenant/admins/{user_id} |
修改角色 |
DELETE |
/admin/v1/tenant/admins/{user_id} |
移除管理员 |
GET |
/admin/v1/tenant/roles |
可用角色和权限点 |
验收点:
- Tenant Admin 只能管理当前租户。
- 授权、移除、代操作必须审计。
- 不允许最后一个
tenant_owner被删除或停用。
5.2 用户与账号安全管理
需求:
- 用户列表、搜索、详情。
- 创建、启用、停用、离职、恢复用户。
- 重置密码、撤销 Token、踢下线。
- 查看登录设备、登录 Session、安全事件。
- 查看用户实名状态、青少年状态、隐私设置摘要。
- 支持同手机号在不同租户独立存在,本租户后台只看到本租户用户。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/users |
用户列表 |
POST |
/admin/v1/tenant/users |
创建用户 |
GET |
/admin/v1/tenant/users/{user_id} |
用户详情 |
PATCH |
/admin/v1/tenant/users/{user_id} |
修改资料或状态 |
POST |
/admin/v1/tenant/users/{user_id}/reset-password |
重置密码 |
POST |
/admin/v1/tenant/users/{user_id}/revoke-sessions |
撤销会话和 Token |
GET |
/admin/v1/tenant/users/{user_id}/devices |
登录设备 |
GET |
/admin/v1/tenant/users/{user_id}/security-events |
安全事件 |
验收点:
- 停用用户不影响其他租户相同手机号或相同设备用户。
- 重置密码必须递增
auth_version并撤销旧 Token。 - 查看敏感信息必须脱敏,证件号、手机号、Token 不写日志。
5.3 组织架构管理
需求:
- 部门树管理:新增、编辑、移动、删除部门。
- 部门成员管理:添加、移除、调岗、设置负责人。
- 组织搜索:按部门、用户、岗位搜索。
- 离职用户处理:不可联系或从结果移除。
- 组织数据权限:管理员只能管理权限范围内部门。
建议数据表:
| 表 | 说明 |
|---|---|
im_org_units |
部门树 |
im_org_members |
部门成员、岗位、负责人 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/org/departments |
部门树 |
POST |
/admin/v1/tenant/org/departments |
创建部门 |
PATCH |
/admin/v1/tenant/org/departments/{id} |
修改或移动部门 |
DELETE |
/admin/v1/tenant/org/departments/{id} |
删除部门 |
GET |
/admin/v1/tenant/org/departments/{id}/members |
部门成员 |
POST |
/admin/v1/tenant/org/departments/{id}/members |
添加成员 |
DELETE |
/admin/v1/tenant/org/departments/{id}/members/{user_id} |
移除成员 |
GET |
/admin/v1/tenant/org/search |
组织搜索 |
验收点:
- 部门
parent_id、负责人、成员必须同租户。 - 移动部门不能形成环。
- 删除部门需要校验子部门和成员处理策略。
5.4 群治理管理
企业后台和群主/群管理员都需要群治理能力。后台侧侧重全租户范围查询、策略配置、违规处置和审计。
需求:
- 群列表、群详情、群成员列表。
- 群资料编辑:名称、头像、简介。
- 群治理配置:入群审批、全员禁言、成员上传文件、成员私聊、成员邀请。
- 群管理员管理:添加、删除管理员,管理员数量限制。
- 禁言管理:添加、解除、过期自动失效。
- 群主转让、解散群聊。
- 群二维码管理:生成、撤销、过期。
- 群文件管理:列表、搜索、删除、下载权限。
- 群操作日志:角色变化、禁言、公告、解散。
建议数据表:
| 表 | 说明 |
|---|---|
im_group_settings |
群治理配置 |
im_group_members |
群成员和角色真源 |
im_group_join_requests |
入群申请 |
im_group_announcements |
群公告 |
im_group_mutes |
禁言记录 |
im_group_admin_logs |
群管理日志 |
im_group_files |
群文件索引 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/groups |
群列表 |
GET |
/admin/v1/tenant/groups/{topic} |
群详情 |
PATCH |
/admin/v1/tenant/groups/{topic} |
修改群资料 |
GET/PATCH |
/admin/v1/tenant/groups/{topic}/governance |
群治理配置 |
GET |
/admin/v1/tenant/groups/{topic}/members |
成员列表 |
POST |
/admin/v1/tenant/groups/{topic}/admins/batch |
添加管理员 |
DELETE |
/admin/v1/tenant/groups/{topic}/admins/{user_id} |
删除管理员 |
POST |
/admin/v1/tenant/groups/{topic}/mutes/batch |
添加禁言 |
DELETE |
/admin/v1/tenant/groups/{topic}/mutes/{user_id} |
解除禁言 |
POST |
/admin/v1/tenant/groups/{topic}/owner-transfer |
群主转让 |
DELETE |
/admin/v1/tenant/groups/{topic} |
解散群 |
GET |
/admin/v1/tenant/groups/{topic}/files |
群文件 |
DELETE |
/admin/v1/tenant/groups/{topic}/files/{group_file_id} |
删除群文件 |
验收点:
- 群业务真源与 Topic/Subscription/ACL 投影必须在同一事务内更新。
- 管理员不能越级操作群主,普通管理员之间操作规则由治理策略决定。
- 解散群必须撤销 Topic、二维码、邀请和文件新增权限。
5.5 工作台应用配置
需求:
- 工作台模块配置:启用、禁用、排序、图标、名称、路由。
- 根据组织角色、权限和功能开关裁剪用户可见模块。
- 维护会议、日报、月报、总经理信箱等入口。
- 工作台未读角标由系统事件更新。
建议数据表:
| 表 | 说明 |
|---|---|
im_workbench_apps |
租户工作台应用配置 |
im_workbench_user_apps |
用户或角色级工作台配置 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/workbench/apps |
应用列表 |
POST |
/admin/v1/tenant/workbench/apps |
新增应用 |
PATCH |
/admin/v1/tenant/workbench/apps/{code} |
修改应用 |
DELETE |
/admin/v1/tenant/workbench/apps/{code} |
删除或禁用应用 |
POST |
/admin/v1/tenant/workbench/apps/reorder |
排序 |
验收点:
- 客户端只接受白名单内部
route。 - 禁用模块后普通用户不可通过直接 URL 访问。
5.6 会议管理
需求:
- 创建、编辑、取消会议。
- 管理参会人、提醒未响应者。
- 查看参会响应:
pending、accepted、declined、tentative。 - 会议过期后只读展示。
- 生成系统通知和 Push。
建议数据表:
| 表 | 说明 |
|---|---|
im_meetings |
会议主表 |
im_meeting_participants |
参会人响应 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/meetings |
会议列表 |
POST |
/admin/v1/tenant/meetings |
创建会议 |
GET |
/admin/v1/tenant/meetings/{id} |
会议详情 |
PATCH |
/admin/v1/tenant/meetings/{id} |
更新会议 |
POST |
/admin/v1/tenant/meetings/{id}/cancel |
取消会议 |
POST |
/admin/v1/tenant/meetings/{id}/reminders |
提醒未响应者 |
5.7 日报与月报管理
需求:
- 日报/月报模板和校验规则配置。
- 普通用户草稿、提交、修订。
- 管理员按部门查看统计和明细。
- 提醒未提交人员。
- 查看详情时记录已读状态。
- 附件使用文件 ACL,不能通过旧 URL 越权下载。
建议数据表:
| 表 | 说明 |
|---|---|
im_reports |
日报/月报统一表 |
im_report_read_states |
阅读状态 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/reports/daily/statistics |
日报统计 |
GET |
/admin/v1/tenant/reports/daily |
日报列表 |
GET |
/admin/v1/tenant/reports/daily/{id} |
日报详情 |
POST |
/admin/v1/tenant/reports/daily/reminders |
日报提醒 |
GET |
/admin/v1/tenant/reports/monthly/statistics |
月报统计 |
GET |
/admin/v1/tenant/reports/monthly |
月报列表 |
GET |
/admin/v1/tenant/reports/monthly/{id} |
月报详情 |
POST |
/admin/v1/tenant/reports/monthly/reminders |
月报提醒 |
验收点:
- 管理员只能看组织权限范围内成员。
- 并发保存必须使用版本号,冲突返回当前最新版本。
- 提醒接口需要限流并返回逐项结果。
5.8 总经理信箱
需求:
- 配置是否启用、是否允许匿名、必填字段、附件策略、提示文案。
- 用户提交意见或建议。
- 后台查看、分派、处理、回复和关闭。
- 匿名模式下业务接收方不可见提交人;安全审计是否保留内部追踪由企业政策决定。
- 文案变更后,客户端提交时可要求重新确认。
建议数据表:
| 表 | 说明 |
|---|---|
im_manager_mailbox |
信箱提交和处理记录 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/executive-mailbox/config |
查询配置 |
PATCH |
/admin/v1/tenant/executive-mailbox/config |
修改配置 |
GET |
/admin/v1/tenant/executive-mailbox/submissions |
提交列表 |
GET |
/admin/v1/tenant/executive-mailbox/submissions/{id} |
提交详情 |
POST |
/admin/v1/tenant/executive-mailbox/submissions/{id}/assign |
分派 |
POST |
/admin/v1/tenant/executive-mailbox/submissions/{id}/reply |
回复 |
POST |
/admin/v1/tenant/executive-mailbox/submissions/{id}/close |
关闭 |
6. 安全、审核与工单后台
6.1 实名认证审核
需求:
- 查看实名认证列表:未认证、待审核、已通过、已拒绝、申诉中。
- 查看脱敏信息,具备权限时按流程查看敏感原文。
- 审核通过、拒绝、要求补充材料。
- 实名策略配置:是否强制实名、允许跳过、提醒周期、重复身份策略。
- 审核结果通过系统事件通知用户。
建议数据表:
| 表 | 说明 |
|---|---|
im_realname_verifications |
实名信息、审核状态、脱敏展示 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/security/realname/submissions |
实名审核列表 |
GET |
/admin/v1/tenant/security/realname/submissions/{id} |
审核详情 |
POST |
/admin/v1/tenant/security/realname/submissions/{id}/approve |
通过 |
POST |
/admin/v1/tenant/security/realname/submissions/{id}/reject |
拒绝 |
GET/PATCH |
/admin/v1/tenant/security/realname/policy |
实名策略 |
验收点:
- 姓名、证件号加密存储,普通日志不出现原文。
- 审核操作必须审计。
- 普通管理员无权读取敏感原文。
6.2 青少年模式策略
需求:
- 配置青少年模式默认策略和限制范围。
- 查看用户青少年模式状态。
- 处理用户忘记独立密码后的重置流程。
限制范围首期建议包括:
- 添加好友。
- 加群和创建群。
- 文件传输。
- 音视频通话。
- 工作台外部链接。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET/PATCH |
/admin/v1/tenant/security/youth-mode/policy |
青少年策略 |
GET |
/admin/v1/tenant/security/youth-mode/users |
用户状态列表 |
POST |
/admin/v1/tenant/security/youth-mode/users/{user_id}/reset-pin |
重置独立密码 |
6.3 反诈与内容审核
需求:
- 风控策略配置:高风险动作、提示文案、二次确认、阻断策略。
- 审核插件配置:平台统一审核服务或租户专属审核服务。
- 审核模式配置:
sync_block、async_hold、async_post_audit。 - 查看风险事件、确认、取消、过期、阻断记录。
- 对已发布违规消息执行系统撤回。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET/PATCH |
/admin/v1/tenant/security/risk-policy |
风控策略 |
GET/PATCH |
/admin/v1/tenant/security/moderation-policy |
内容审核策略 |
GET |
/admin/v1/tenant/security/risk-events |
风险事件 |
GET |
/admin/v1/tenant/security/moderation-tasks |
审核任务 |
POST |
/admin/v1/tenant/security/moderation-tasks/{id}/approve |
审核通过 |
POST |
/admin/v1/tenant/security/moderation-tasks/{id}/reject |
审核拒绝 |
POST |
/admin/v1/tenant/messages/{message_id}/recall-by-review |
审核撤回 |
验收点:
- 客户端提交的审核状态一律忽略。
- 插件返回
REPLACE或RESPOND时不能修改 TenantID。 - 风控确认 Token 单次、短期、绑定原动作。
6.4 举报工单
需求:
- 配置举报原因,按目标类型区分用户、群、消息。
- 举报列表、详情、证据、目标快照。
- 工单状态:
received、processing、resolved、rejected、closed。 - 处置动作:警告、禁言、封禁用户、解散群、撤回消息、标记无效。
- 重复举报合并策略。
- 处理结果通知举报人,必要时通知被处置对象。
建议数据表:
| 表 | 说明 |
|---|---|
im_abuse_reports |
举报工单 |
im_evidence_files |
证据文件 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET/PATCH |
/admin/v1/tenant/reports-abuse/reasons |
举报原因配置 |
GET |
/admin/v1/tenant/reports-abuse |
举报列表 |
GET |
/admin/v1/tenant/reports-abuse/{id} |
举报详情 |
POST |
/admin/v1/tenant/reports-abuse/{id}/assign |
分派 |
POST |
/admin/v1/tenant/reports-abuse/{id}/resolve |
处置 |
POST |
/admin/v1/tenant/reports-abuse/{id}/close |
关闭 |
验收点:
- 举报人必须能看到被举报目标,后台详情使用提交时固化快照。
- 证据文件使用独立 ACL 和保留期。
- 原消息删除或撤回后,举报证据仍可处理。
6.5 意见反馈工单
需求:
- 配置反馈类别、最大正文、附件规则、是否允许联系方式、日志授权说明。
- 反馈列表、详情、附件、设备和版本信息。
- 分派、回复、关闭、标记重复。
- 处理结果通过系统通知或客户端查询展示。
建议数据表:
| 表 | 说明 |
|---|---|
im_feedbacks |
反馈工单 |
im_evidence_files |
反馈附件 |
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET/PATCH |
/admin/v1/tenant/feedback/config |
反馈配置 |
GET |
/admin/v1/tenant/feedbacks |
反馈列表 |
GET |
/admin/v1/tenant/feedbacks/{id} |
反馈详情 |
POST |
/admin/v1/tenant/feedbacks/{id}/assign |
分派 |
POST |
/admin/v1/tenant/feedbacks/{id}/reply |
回复 |
POST |
/admin/v1/tenant/feedbacks/{id}/close |
关闭 |
7. 文件、搜索与数据治理后台
7.1 文件治理
需求:
- 按租户查看文件用量、文件列表、状态和业务用途。
- 支持群文件、收藏文件、举报证据、反馈附件、日报/月报附件分类管理。
- 文件下载审计。
- 清理未关联文件、过期文件和违规文件。
- 配置文件大小、MIME、总存储配额、保留期。
文件状态建议:
pending -> uploaded -> ready
pending/uploaded -> failed
uploaded(超时且无引用) -> orphaned -> deleted
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/files |
文件列表 |
GET |
/admin/v1/tenant/files/{file_id} |
文件详情 |
POST |
/admin/v1/tenant/files/{file_id}/quarantine |
隔离文件 |
DELETE |
/admin/v1/tenant/files/{file_id} |
删除文件 |
GET/PATCH |
/admin/v1/tenant/files/policy |
文件策略 |
验收点:
- 文件下载不能只靠 FileID,必须校验上传者或关联消息/Topic 读取权限。
- 后台删除文件必须审计,并处理消息、收藏、举报等引用。
7.2 搜索治理
需求:
- 消息索引状态查看。
- 重建指定租户、Topic 或时间段索引。
- 搜索敏感内容审计。
- 查看搜索性能和失败任务。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/search/index-status |
索引状态 |
POST |
/admin/v1/tenant/search/reindex |
重建索引 |
GET |
/admin/v1/tenant/search/audit-logs |
搜索审计 |
验收点:
- 搜索索引不是授权来源,返回前仍需 Topic Read ACL 二次校验。
- 用户退群或权限变化后必须立即阻断搜索结果。
8. 通知、Push 与外部服务后台
8.1 系统消息模板
需求:
- 管理系统事件类型和模板版本。
- 配置账号安全、好友、群、文件、通话、工作台、安全等通知模板。
- Outbox 事件驱动系统消息、Push、索引和定时任务。
首期事件:
| 业务 | 事件 |
|---|---|
| 账号安全 | 新设备登录、密码修改、实名提醒 |
| 好友 | 新申请、通过、拒绝、删除 |
| 群 | 邀请、申请、审批、公告、禁言、管理员变更、群主转让、解散 |
| 文件 | 群文件上传、文件失效 |
| 通话 | 未接、拒绝、取消、忙线、通话结束 |
| 工作台 | 会议通知、会议变更、日报提醒、月报提醒、信箱处理 |
| 安全 | 反诈提示、举报受理、反馈受理 |
8.2 Push、短信、TURN、对象存储
需求:
- 租户级 Push 模板、App 包名、APNS/FCM 凭证引用。
- 短信服务配置和模板。
- TURN 配置。
- 对象存储 Bucket、Prefix、签名策略。
- 外部 REST 认证服务配置。
- 外部审核和风控插件配置。
验收点:
- 租户没有配置时按明确策略失败,不得静默使用其他租户配置。
- 密钥只保存引用,不把明文 Secret 放入普通业务 JSON。
- 外部回调必须校验服务端签名的 TenantContext 和 nonce。
9. 审计与日志后台
9.1 审计范围
以下操作必须写审计:
- 租户创建、停用、恢复、删除。
- 平台管理员和租户管理员授权、移除、代操作。
- 用户停用、离职、密码重置、数据导出。
- 群主转让、管理员变更、禁言、解散群。
- 实名审核、举报处置、反馈处理、匿名信箱读取。
- 文件下载、删除、批量导出、搜索敏感内容。
- 反诈二次确认、内容审核处置。
- 外部服务配置修改。
9.2 审计字段
| 字段 | 说明 |
|---|---|
tenant_id |
租户 |
actor_uid |
操作人 |
actor_role |
操作角色 |
action |
操作类型 |
target_type |
目标类型 |
target_id |
目标 ID |
before_snapshot |
变更前摘要 |
after_snapshot |
变更后摘要 |
reason |
操作原因 |
request_id |
请求 ID |
ip |
操作 IP,必要时脱敏 |
user_agent |
操作客户端 |
created_at |
操作时间 |
审计表只允许追加,不允许普通管理员修改或删除。
建议接口:
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/v1/tenant/audit-logs |
租户审计 |
GET |
/admin/v1/audit-logs |
平台审计 |
POST |
/admin/v1/audit-logs/export |
审计导出 |
10. 后台公共能力
10.1 认证与会话
- 后台登录必须使用独立后台入口,不与普通 App 登录混用权限。
- 后台 Token 包含
tenant_id、uid、角色、权限版本、auth_version。 - 支持刷新、撤销、踢下线、登录设备管理。
- 高危操作需要二次认证或
X-Action-Token。
10.2 API 规范
后台 API 建议统一使用 /admin/v1/*。
成功响应:
{
"code": 0,
"data": {},
"request_id": "01K...",
"server_time": "2026-08-12T05:30:00.000Z"
}
失败响应:
{
"code": 30001,
"reason": "FORBIDDEN",
"message": "permission denied",
"details": {},
"request_id": "01K...",
"server_time": "2026-08-12T05:30:00.000Z"
}
公共要求:
- 写操作必须带
Idempotency-Key。 - 更新操作必须带版本号或
If-Match。 - 列表统一使用
limit + cursor。 - 请求必须带
X-Request-ID。 - 不能从请求 Body、URL Query 或普通 Header 信任客户端自报
tenant_id。 - 手机号、证件号、验证码、Token、设备 Token、文件签名不写日志。
10.3 数据表公共规则
- 新业务表统一使用
im_前缀。 - 租户业务表必须包含
tenant_id BIGINT NOT NULL。 - 唯一索引优先使用
(tenant_id, business_key)。 - 子表外键优先使用
(tenant_id, parent_id)。 - 更新、删除、聚合、清理任务必须带
tenant_id。 - 平台级表和租户根表例外,但必须在 DDL 评审中说明作用域。
11. 开发优先级建议
P0:后台地基
/admin/v1认证中间件、RBAC、租户 Principal。- 平台租户管理:创建、停用、恢复、配置配额。
- 企业管理员与角色权限。
- 用户管理:停用、重置密码、撤销 Session。
- 审计日志基础表和查询。
- Outbox 查询与重试基础能力。
P1:企业治理
- 组织架构管理。
- 群治理后台:群列表、群成员、管理员、禁言、解散、群文件。
- 文件策略、文件列表、文件审计。
- 外部服务配置:Push、短信、对象存储、TURN。
- 功能开关和配额用量面板。
P2:办公与安全业务
- 工作台配置。
- 会议管理。
- 日报、月报统计和提醒。
- 总经理信箱。
- 实名认证审核。
- 青少年策略。
- 反诈、内容审核、举报、反馈工单。
12. 验收清单
- 平台后台与企业后台权限边界清晰,跨租户操作必须审计。
- 所有后台列表、详情、更新、删除都按租户隔离。
- 租户停用后普通用户登录和 HTTP 产品接口拒绝。
- 用户停用、重置密码、撤销 Token 不影响其他租户同手机号用户。
- 创建用户、建群、入群审批配额在事务内强制执行。
- 群主转让、禁言、管理员变更、解散群写审计并同步系统消息。
- 实名、举报、反馈、信箱等敏感数据脱敏展示并按权限读取。
- 文件下载、删除、导出均有资源级授权和审计。
- 外部服务密钥只保存引用,不写普通日志。
- Outbox 事件可查询、重试、死信处理,重复执行不产生重复副作用。
- 审计表只允许追加,普通管理员不可修改或删除。