Files
im_server/docs/IM-未实现后续增强项.md
T

36 KiB
Raw Blame History

IM 第一至十一章后续增强项

更新日期:2026-08-25 核对依据:docs/IM-前后端对接文档.md、server/main.go 当前 /v1/im/* 路由、server/im_http.go 当前 handler。 范围:第一章登录注册与安全、第二章消息首页/导航/系统通知、第三章单聊关系、第四章消息输入/转发/检索、第五章通讯录/好友/黑名单、第六章群聊创建/资料/治理、第七章文件/收藏/聊天记录检索、第八章实时语音与视频通话、第九章企业工作台与组织架构、第十章个人设置与客户端能力、第十一章反诈安全/举报/反馈。 用途:记录当前代码基线之外仍需排期的增强项。已经落地的 P0/P1 不再作为待办保留;已经抽入专项开发文档的项目,在本文中仅保留来源和现状说明,不再作为未分流待办处理。

0. 本次核对结论

0.1 已从待办移入基线

  1. 注册、找回密码和敏感操作验证码在短信未接入时均可用固定测试码 123456 完成联调;真实短信通道仍是后续增强项。
  2. GET /v1/im/bootstrap 已返回 entries、entry_badges、modules、message_policy、system_topic、security 和 limits.max_file_size/max_text_length/max_forward_targets。
  3. GET /v1/im/forward-targets 已新增,返回文件助手和可转发 P2P/群会话目标。
  4. 总经理信箱配置与提交的 500 已修复,GET /v1/im/executive-mailbox/config、POST /v1/im/executive-mailbox/submissions 已可联调。
  5. 举报原因 500 已修复,GET /v1/im/reports/abuse/reasons 已按 items 返回。
  6. 群文件和群公告路径已从群详情兜底中拆出,群文件基础接口已落地,未实现的子路径会返回明确错误。
  7. 注册数据模型已改为 im_users.username、im_users.phone、im_user_profiles.email,不再依赖用户 tags 保存手机号/邮箱。
  8. 邀请码主数据在 HotGo 库,注册使用明细在 IM 租户库;邀请码可多人复用,不再“核销”。
  9. 用户搜索、用户主页、用户二维码已支持 user_id/username/public_account 作为 identifier。
  10. 第一批增强中的群文件列表/登记/删除、群邀请外部接受、实名更正申诉、组织全局成员接口、月报 reopen 已落地。
  11. 第一批增强中的主动创建/获取 P2P 会话、会话设置、多端云草稿已落地。

0.2 当前仍明确缺口及分流状态

优先级 缺口 对接文档位置 当前代码状态 分流状态
P0 真实短信供应商发送、失败重试、发送审计 1.4、1.7、1.10 当前测试码 123456 可联调,但生产短信未完成 依赖第三方,暂留后续增强池
P0 消息转发落地接口 4.18、4.19、4.20 仅 forward-targets 已实现,POST /v1/im/messages/forward、GET /v1/im/forward-bundles/{id} 未实现 已抽入 IM-增强项第一批开发.md
P0 登出与会话撤销 10.7 POST /v1/im/auth/logout、DELETE /v1/im/security/sessions/{id} 未见路由 已抽入 IM-增强项第一批开发.md

0.3 已抽入第一批开发的项目

以下项目已经从本文档的普通后续增强池中抽出,形成专项开发文档 docs/IM-增强项第一批开发.md。其中已落地项已移入各章“当前已完成基线”;仍未完全落地的项目继续以第一批开发文档作为实现、验收和同步更新依据。

  1. 仍待落地:登出与指定会话撤销。
  2. 仍待落地:普通消息转发。
  3. 仍待落地:合并转发 Bundle 详情。
  4. 已落地:群文件列表、登记和删除。
  5. 已落地:主动创建/获取 P2P 会话。
  6. 已落地:会话设置。
  7. 已落地:多端云草稿。
  8. 已落地:群邀请外部接受。
  9. 已落地:实名更正申诉。
  10. 已落地:组织全局成员接口。
  11. 已落地:月报 reopen。
  12. 仍待统一回归:列表 has_more 统一。
  13. 仍待落地:风控 token 单次消费接入业务接口。

1. 第一章:登录、注册与安全

1.1 当前已完成基线

  1. 企业码解析、租户状态校验和公开租户配置返回。
  2. WebSocket hi 租户绑定、basic 登录和 {acc user:new} 注册已具备。
  3. 注册支持用户名/手机号二选一;手机号注册写入 im_users.phone,用户名写入 im_users.username。
  4. 用户名格式校验、手机号规范化、服务端随机用户名生成规则已具备。
  5. 注册验证码发码、校验、一次性 verification_token 消费已具备。
  6. 找回密码挑战验证与重置确认已具备。
  7. 敏感操作二次验证挑战和 action_token 签发已具备。
  8. 短信未接入时注册、找回密码、敏感操作均可用测试码 123456 联调。
  9. 邀请码主数据在 HotGo 控制库,注册明细在 IM 租户库,支持可复用邀请码。
  10. Token 绑定 auth_version,密码重置后旧 Token 失效。
  11. 实名状态查询与提交已具备,证件信息脱敏/保护存储。
  12. 独立密码设置与验证已具备,包含弱密码规则和失败锁定。
  13. 产品 HTTP 已统一校验 API Key、Schema 和 Request ID。
  14. 登录态写接口已接入租户库幂等记录,支持请求摘要冲突检测和首次响应重放。
  15. 风险确认可生成安全事件和系统通知。
  16. 实名更正申诉 POST /v1/im/security/realname/appeals 已具备,申诉记录进入 pending 状态。

1.2 后续增强项

优先级 增强项 说明 建议验收点
P0 真实短信供应商发送通道 当前为测试码联调模式;生产必须接短信服务商、模板、签名、失败重试和发送审计。 真实手机号收到验证码;供应商失败返回稳定 JSON,告警可观测。
P0 验证码多维限频 需要按租户、手机号、IP、设备、场景组合限频,并接 Redis 或落库。 高频请求返回 VERIFICATION_RATE_LIMITED,不同场景互不误伤。
P0 登出与会话撤销 对接文档已有 POST /v1/im/auth/logout 和 DELETE /v1/im/security/sessions/{id},代码未见路由。 当前设备退出不影响其他设备;删除指定 session 后该设备 token 立即失效。
P1 实名后台审核流转 当前支持实名提交、状态查询和申诉提交,后续需要后台审核、驳回原因、通过状态变更和申诉处理工单。 审核通过后 realname.status=verified;驳回可再次提交;申诉有处理状态。
P1 安全事件通知覆盖扩展 风险确认已接入通知;密码重置、实名审核、独立密码变更、新设备登录仍需补齐。 /v1/im/system-notifications 可看到对应事件且重试不重复入箱。
P1 API Key 轮换策略 当前 API Key 校验兼容现有逻辑,尚未实现最低可接受序号或撤销表。 旧序号 Key 可按配置禁用,新 Key 不影响正常客户端。
P2 风控与反诈策略接入登录注册 安全动作后续应接入风险评分、反诈弹窗和二次确认策略。 高风险注册/登录/改密触发二次验证或反诈提示。

2. 第二章:消息首页、全局导航与系统通知

2.1 当前已完成基线

  1. GET /v1/im/bootstrap 返回首页菜单、能力开关、权限、入口、红点和 message_policy。
  2. bootstrap.limits 已返回 max_file_size、max_text_length、max_forward_targets。
  3. GET /v1/im/search/conversations 支持会话搜索和基础分页。
  4. WebSocket 发消息支持 Head["x-im-client-mid"] 幂等,重连重发不重复落库/广播。
  5. 消息 Header 已按产品协议校验 x-im-schema、x-im-type、x-im-client-mid,并兼容旧 type。
  6. 普通用户禁止发布 sys Topic,且禁止伪造 system/system_event。
  7. GET /v1/im/topics/{topic}/messages/{seq}/receipts 返回群消息送达/已读基础列表。
  8. 撤回、编辑接口已具备,并接入幂等与 Outbox。
  9. GET /v1/im/system-notifications 和 POST /v1/im/system-notifications/{id}/read 已具备。
  10. 好友、群、会议和安全模块已可信生产系统通知。

2.2 后续增强项

优先级 增强项 说明 建议验收点
P0 消息变更查询占位策略 已撤回消息在普通拉取中应返回撤回占位,而不是仅靠客户端本地事件。 新设备登录拉历史时能看到撤回占位和版本。
P0 万人大群离线提醒与重连补偿 离线只走极光 Push 提醒,客户端重连后按 Topic seq 拉取补偿。 离线用户收到极光提醒;重连后按 seq 补齐且不丢不重。
P0 系统通知未读聚合实时化 bootstrap.entry_badges.system_unread_count 已有,后续需确认真源与增量事件。 读通知后 bootstrap 和 WS badge 均一致。
P1 列表 has_more 统一 部分接口仍只返回 items,next_cursor,对接文档要求可统一补 has_more。 前端所有列表分页逻辑可复用同一协议。
P1 群回执隐私和角色策略 当前返回基础 read/recv 列表,后续需按租户策略、群规模、角色裁剪。 普通成员/管理员在不同策略下看到不同粒度回执。
P1 message_policy 租户配置化 当前 recall/edit 窗口和菜单能力是固定值,后续需要来自租户配置。 不同租户可配置不同撤回/编辑时限和菜单能力。
P1 系统通知 action 白名单 action.type 和参数需要统一注册、校验和版本化。 非白名单 action 写入失败;客户端只收到可识别跳转。
P1 会话搜索排序与类型过滤 当前按订阅数据过滤,后续需支持会话类型、置顶、免打扰、最近活跃排序。 搜索结果与消息首页排序、筛选规则一致。
P1 群成员分页快照深度优化 当前已接入 Redis 短 TTL 响应快照,后续大群需要 sorted set、稳定游标和成员变更主动失效。 万人大群成员翻页不重复不漏,角色/昵称/退群变更后缓存能及时失效。
P1 未读数 Redis 深度优化 当前已接入用户总未读 Redis 热缓存,后续需要 Topic 维度未读计数、bootstrap 聚合缓存和主动失效事件。 首页红点、会话未读和多端 read/recv 后的未读数实时一致。
P2 离线重连恢复编排测试 需要端到端覆盖 hi -> token login -> sub me -> 恢复 Topic -> get data。 断网重连后未丢消息、未重复消息、未错乱回执。

3. 第三章:单聊关系、权限与会话上下文

3.1 当前已完成基线

  1. GET /v1/im/conversations/{topic}/context 返回双方关系、发送能力、对端公开资料和 P2P Topic。
  2. P2P 发送路径接入好友关系校验,非好友、拉黑状态下禁止直接发送。
  3. 好友申请、通过、拒绝、删除好友与单聊关系状态联动。
  4. 拉黑/解除拉黑后关系上下文即时反映 blocked_by_me、blocked_by_peer 等状态。
  5. 好友申请、通过/拒绝、删除、拉黑/解除和备注已生成稳定关系事件,相关对端通知可去重。
  6. 非好友资料查询已执行 profile_visibility。
  7. 主动创建/获取 P2P 会话 POST /v1/im/conversations/p2p 已具备。
  8. 会话设置 GET/PATCH /v1/im/conversations/{topic}/settings 已具备。
  9. 多端云草稿 GET/PUT /v1/im/topics/{topic}/draft 已具备。

3.2 后续增强项

优先级 增强项 说明 建议验收点
P0 P2P 策略统一入口 当前核心路径已校验好友/黑名单,后续需要把发消息、通话、名片、文件、历史查看统一收敛到同一策略服务。 任一 P2P 业务入口对同一关系状态返回一致权限。
P1 会话策略与草稿联调回归 P2P 会话、会话设置和云草稿接口已具备,仍需覆盖多端、冲突、非好友/黑名单状态下的联调回归。 多端草稿同步、版本冲突和权限拒绝都符合协议。
P1 Pending 会话体验增强 待处理好友申请对应单聊页应携带申请摘要、来源、过期时间和快速处理入口。 进入 pending 会话可直接通过/拒绝。
P1 黑名单历史消息策略 需明确拉黑后历史消息、资料、文件和已读回执可见范围。 被拉黑人在不同策略下看到一致的历史与资料裁剪结果。
P1 好友关系审计 删除、拉黑、解除拉黑、申请处理等敏感关系操作写审计日志。 后台可按租户、操作者、目标用户查询操作流水。

4. 第四章:消息输入、媒体内容、转发与检索

4.1 当前已完成基线

  1. 群 @ 消息头部字段校验,支持 mentioned_user_ids、mention_all 等基础结构。
  2. 群 @ 权限接入成员 ACL,管理员/群主才具备 @ 全体能力。
  3. 群成员列表支持基础分页、搜索和 mentionable 过滤。
  4. GET /v1/im/forward-targets 已具备,返回文件助手和可转发的会话目标。
  5. 消息撤回、编辑、回执、搜索、上下文定位、媒体列表接口已挂在 /v1/im/topics/ 下。
  6. 收藏入口与收藏转发基础接口已具备。

4.2 后续增强项

优先级 增强项 说明 建议验收点
P0 消息转发接口 对接文档有 POST /v1/im/messages/forward,当前未见路由;收藏转发不等同普通消息转发。 单条/多条消息可分别转发到好友、群和文件助手。
P0 合并转发 Bundle 对接文档有 GET /v1/im/forward-bundles/{id},当前未见路由。 合并转发卡片可分页查看,权限隔离原会话。
P0 @ 实时通知与离线 Push 当前消息元数据已落库,后续需要对被 @ 成员生成高优先级提醒和离线 Push。 被 @ 用户在线、离线、多端场景均收到一次提醒。
P0 离线 Push Kafka 化 im.message.push 已纳入 Kafka 方案,但本轮暂不实现;离线提醒仍按后续极光 Push 统一接入。 消息、@、通话、系统通知等离线场景统一投递 Kafka Push 任务,失败可重试和补偿。
P0 @ 全体频控 @ 全体需要按租户、群、角色、时间窗口限频。 超限返回稳定错误码,管理员可配置限额。
P1 群成员稳定游标分页 当前成员列表以基础 cursor 分页,后续应使用稳定游标避免成员变动跳页。 成员入群/退群时翻页不重复、不漏主要数据。
P1 @ 候选排序优化 @ 面板候选应支持拼音首字母、最近互动、角色优先和本地缓存协同。 大群搜索响应稳定,候选排序符合产品规则。
P1 消息检索稳定游标 搜索和媒体列表需要稳定游标,避免新消息插入造成跳页。 搜索期间新增消息不影响当前翻页结果。

5. 第五章:通讯录、好友关系与黑名单

5.1 当前已完成基线

  1. 好友列表支持查询、首字母、分页,返回备注、头像、显示名来源和会话 Topic。
  2. 新朋友列表、好友申请、通过、拒绝链路已具备。
  3. 用户搜索支持账号、精准账号和手机号类型,返回公开资料、关系和 action。
  4. 添加好友二维码支持短期签名 Token 生成与解析。
  5. 个人主页支持 user_id/username/public_account identifier,返回关系、资料和操作能力。
  6. 群内非好友个人主页返回群角色、关系、资料和操作能力。
  7. 好友备注更新、删除好友、拉黑/解除拉黑已具备。
  8. 黑名单列表和批量移出黑名单已具备。
  9. 好友/黑名单写操作已统一接入 HTTP 幂等、关系事件和必要的对端系统通知。
  10. 用户搜索和好友申请已执行 add_me_methods,手机号搜索不会返回禁止该方式的非好友。
  11. 用户搜索已改用昵称、公开账号、登录账号和 im_users.phone 等结构化字段,不再依赖用户标签。

5.2 后续增强项

优先级 增强项 说明 建议验收点
P1 用户搜索租户策略扩展 个人添加方式已执行,后续还需增加租户级 allow_user_search、通讯录授权和存在性防探测策略。 租户关闭搜索或未授权通讯录时,客户端无法绕过且不泄露用户存在性。
P1 二维码吊销与扫码审计 当前二维码是短期签名 Token,主动失效、刷新覆盖、扫码审计需要落库或接 Redis。 用户刷新二维码后旧码按策略失效;后台可查询扫码记录。
P1 好友资料字段精细裁剪 基础可见性已执行,后续需按群关系、黑名单、实名/青少年等规则裁剪到字段级。 不同入口返回字段符合隐私矩阵。
P1 通讯录排序与拼音索引 当前支持基础 initial,后续需维护昵称/备注拼音、特殊字符分组和本地增量同步。 好友列表与客户端通讯录排序一致。
P1 黑名单占位资料 资料删除、离职或不可见时,黑名单列表仍需返回可解除的受控占位用户。 黑名单中失效用户可展示占位并成功移出。
P1 好友申请防骚扰 需要按目标用户、申请人、IP、设备、来源和群来源限频,并支持拒收策略。 高频申请被限制;群来源申请校验双方仍在群内。
P1 关系操作审计 添加、删除、拉黑、解除和二维码解析仍需独立审计流水。 后台可按租户、操作者和目标用户追溯。

6. 第六章:群聊创建、资料维护与成员治理

6.1 当前已完成基线

  1. 群列表、创建群、群资料查询与更新、群头像和群简介保存接口已具备。
  2. 群设置、个人群设置、退出群、群昵称接口已具备。
  3. 群二维码生成与扫码解析支持 join_group 场景。
  4. 群内邀请、进群申请、申请列表、同意/拒绝、群 summary 申请计数已具备。
  5. 群公告最新查询、发布/更新、详情和已读接口已具备。
  6. 群治理配置 GET/PATCH /governance 已具备。
  7. 管理员候选、管理员上限、批量添加管理员、删除管理员和群主转让接口已具备。
  8. 禁言候选、批量禁言、禁言列表和解除禁言接口已具备。
  9. 群写操作已使用 im_group_idempotency 和 im_group_events_outbox,提交后通过 Hub 派发,失败保留 pending 重试。
  10. WebSocket 群消息发布已校验成员禁言和全员禁言,支持过期恢复及管理员豁免。
  11. 群文件列表、登记和删除接口 GET/POST/DELETE /v1/im/groups/{topic}/files 已具备。
  12. 群邀请外部接受 POST /v1/im/group-invitations/{id}/accept 已具备。

6.2 后续增强项

优先级 增强项 说明 建议验收点
P0 群文件权限与下载闭环 群文件基础接口已具备,后续需与文件 ACL、退群后下载阻断、审核状态、OSS 短链失效联动。 群文件列表可搜索/分页,上传登记和删除权限正确,退群后不可下载旧 URL。
P1 群邀请外部接受体验回归 外部接受接口已具备,仍需覆盖邀请卡、多端重复接受、过期和审批模式切换。 被邀请人可通过邀请卡入群或进入审批;重复接受幂等返回稳定结果。
P1 进群申请隐私与限频 申请入口需要按群治理、租户策略、用户状态、来源、IP/设备限频。 高频申请被限制;普通成员不可看到敏感申请人信息。
P1 管理员/群主角色层级策略 管理员互相操作、管理员禁言、群主转让二次认证等需要完整策略矩阵。 群主、管理员、普通成员在每个治理动作上的权限稳定一致。
P1 群解散与二维码吊销 群解散、二维码撤销、邀请失效需要状态联动和权限回收。 解散后 Topic、二维码、邀请、文件新增权限全部失效。
P1 群成员 user_id 完整性回归 测试报告曾发现 owner 成员 user_id 为空,需要专门回归确认。 群成员列表所有成员均返回稳定 usr...。
P2 大群性能与稳定分页 成员、申请、公告、禁言、文件列表都需要稳定游标和大群压测。 大群场景下分页不重复不漏,接口延迟达标。

7. 第七章:文件下载、收藏管理与聊天记录检索

7.1 当前已完成基线

  1. 收藏创建、列表、详情和删除接口已具备,支持文本、文件、语音、链接等类型。
  2. 收藏批量创建、批量删除和收藏转发接口已具备。
  3. 转发目标列表 GET /v1/im/forward-targets 已具备。
  4. Topic 消息关键词搜索、文件/图片/视频等媒体类型检索接口已具备。
  5. 消息上下文定位接口可围绕指定 seq 返回前后消息。
  6. 文件访问已接入用户与 Topic 权限校验,下载前可判断资源可见性。
  7. 收藏等登录态 HTTP 写接口已接入全局幂等响应重放。

7.2 后续增强项

优先级 增强项 说明 建议验收点
P0 普通消息转发与合并转发 /favorites/forward 已有,但 /messages/forward、/forward-bundles/{id} 未实现。 普通消息可单条/多条/合并转发,Bundle 可分页查看。
P0 收藏分享权限二次校验 收藏文件或消息分享给好友/群时,需要重新校验接收方是否可访问原资源或生成受控副本。 无权限接收方不能通过收藏分享拿到原会话附件。
P0 文件下载短时签名 URL 当前权限判断已具备,后续应生成短时下载 URL,并记录下载审计。 URL 过期不可访问;退群/拉黑后旧 URL 失效或受策略限制。
P0 文件安全扫描与 MIME 校验 上传后的文件需要扩展名、MIME、内容嗅探、病毒扫描和图片/视频解码安全检查。 高风险文件不可下载或转发,客户端收到稳定错误码。
P1 收藏业务去重策略 使用不同幂等键重复收藏同一消息、文件或链接时,仍需业务唯一性策略。 重复点击收藏不会产生重复记录,并返回已有收藏 ID。
P1 收藏分类与全文索引 收藏列表需要按类型、来源、时间、关键词、发送人等维度检索。 大量收藏下搜索响应稳定,类型筛选结果准确。
P1 历史消息权限快照策略 用户退群、删除好友、拉黑后,历史消息和附件的可见范围需要统一规则。 各入口对同一历史资源权限判断一致。
P1 下载状态与断点续传 大文件下载需要断点续传、失败重试、进度状态和下载完成事件。 网络中断后可续传;下载完成状态可跨端同步或按端隔离。

8. 第八章:实时语音与视频通话

8.1 当前已完成基线

  1. 通话 invite、accept、offer、answer、ice-candidate、hang-up 等事件沿用 Tinode call event 链路。
  2. 通话记录表 im_call_records 已具备,记录 call_id、Topic、seq、主叫/被叫、类型、状态、时长和结束原因。
  3. 通话记录创建、接听和结束状态更新已接入 store/adapter。
  4. 通话记录查询接口已具备:全局 GET /v1/im/calls 与 Topic 内 GET /v1/im/topics/{topic}/calls。
  5. 查询结果返回对端用户、方向、通话类型、状态、时长和关键时间点,客户端可先完成通话记录页对接。

8.2 后续增强项

优先级 增强项 说明 建议验收点
P0 跨设备抢答状态机 同一账号多端收到来电时,需要一个设备接听后自动取消其他端待接状态。 A 手机接听后,A 平板和 Web 端立即变为已在其他设备接听。
P0 通话状态强一致与幂等 invite、accept、hang-up 等事件需要幂等键或事件序号,避免乱序/重复导致状态回退。 重复 hang-up 不改变最终状态;迟到 accept 不会覆盖已结束通话。
P0 通话事件 Outbox 与离线 Push 来电、未接、挂断、忙线等需要可信事件和 Push,DB 状态与通知通过 Outbox 衔接。 离线用户收到一次来电/未接提醒,失败可补偿。
P0 TURN/STUN 配置与媒体准入 服务端应按租户/区域返回可用 ICE 配置,并限制未授权用户创建媒体会话。 客户端拉取到有效 TURN;无权限通话被服务端拒绝。
P1 结束原因标准化 需要统一 missed、declined、busy、timeout、network_error 等原因和客户端展示文案。 不同端同一结束原因展示一致,统计口径一致。
P1 通话质量指标 需要采集建立耗时、ICE 成功率、丢包、抖动、断连等指标。 后台可按租户和版本查看通话质量趋势。
P1 群通话/会议房间拆分 群音视频不宜复用 P2P call,需要会议房间、参与人状态和 SFU 接入。 群通话有独立 room_id、成员列表和退出/重进状态。
P1 通话权限统一策略 通话入口应复用 P2P/群关系策略、黑名单、禁言、青少年模式和企业策略。 被拉黑、非好友或受限制用户无法发起通话。

9. 第九章:企业工作台与办公协同

9.1 当前已完成基线

  1. 工作台接口 GET /v1/im/workbench 已具备,返回模块、布局版本和企业功能开关。
  2. GET /v1/im/bootstrap 已返回工作台总未读 entry_badges.workbench_total_unread。
  3. 工作台模块表 im_workbench_apps 已具备,默认包含组织架构、会议通知、日报、月报、总经理信箱入口。
  4. 服务端对工作台 route 做内部白名单过滤,避免客户端执行任意服务端 URL。
  5. 组织架构部门表 im_org_departments 和成员表 im_org_members 已具备。
  6. 部门列表、部门成员、组织搜索已具备。
  7. 会议通知创建、列表、详情、更新、取消、提醒、参会回应已具备基线。
  8. 日报/月报草稿、提交、详情、列表、统计与提醒基线已具备。
  9. 总经理信箱配置与提交接口已具备,包含匿名策略、文案版本和幂等键。
  10. 会议创建、变更、取消、提醒和参会回应已生成在线事件与系统通知,关键变更在事务内写 Outbox。
  11. 组织全局成员接口 GET /v1/im/organization/members 已具备。
  12. 月报 reopen POST /v1/im/reports/monthly/{id}/reopen 已具备。
  13. 组织架构可见范围已按账号来源裁剪:邀请码注册默认仅本人,手机号注册默认本人和好友组织路径,上架测试账号可通过 im_org_visibility_overrides.visibility_scope=all 放开全量。

9.2 后续增强项

优先级 增强项 说明 建议验收点
P0 工作台权限与功能开关配置化 当前模块基线可返回,后续需要按租户、部门、角色、后台配置动态裁剪。 不同用户登录同一租户看到不同授权模块。
P0 工作台未读角标实时事件 workbench_total_unread 已有,后续需要模块未读聚合和 workbench.badge.updated 增量事件。 会议、日报、信箱未读变化后工作台角标实时更新。
P0 组织数据后台维护链路 当前前台读接口和表已具备,后续需要后台导入、增删改部门、调整成员和离职状态。 后台修改组织后前台接口版本变化,客户端可刷新。
P0 组织字段级隐私策略 组织架构范围裁剪已具备,成员手机号、邮箱、职位等字段后续仍需按组织角色、隐私和企业策略进一步细化。 普通员工和管理员看到的成员字段不同且不可绕过。
P1 组织全局成员接口深度联调 GET /v1/im/organization/members 已具备,仍需按部门、关键词、权限和分页做测试环境回归。 前端可直接分页查询并按部门过滤,字段裁剪符合权限。
P1 会议列表完整联调 对接文档标注 GET /v1/im/meetings?cursor= 待补列表;代码有 serveIMMeetings,仍需用测试数据确认返回结构。 会议列表、详情、响应、取消端到端一致。
P1 月报 reopen 审计与权限扩展 reopen 接口已具备,后续需要后台权限、原因记录、审计和通知闭环。 已提交月报可按权限退回草稿并保留审计。
P1 日报/月报后台统计口径 当前基础统计可用,后续需要按部门、周期、迟交、补交、未读等维度扩展。 管理员看板与业务口径一致。
P1 总经理信箱后台流转 当前前台配置/提交已具备,后续需要后台处理、回复、转派、归档和通知。 信件全生命周期可追踪,匿名身份受保护。
P1 办公协同审计 组织查询、会议变更、报告查看、信箱提交等敏感动作需要审计。 后台可按租户、用户、对象查询办公操作流水。

10. 第十章:个人设置与客户端能力

10.1 当前已完成基线

  1. 个人资料 GET/PATCH /v1/im/me/profile、个人页 GET /v1/im/me 已具备。
  2. 隐私设置 GET/PATCH /v1/im/me/privacy 已具备,支持版本冲突控制。
  3. 最新版本检查 GET /v1/im/app/releases/latest 已具备,支持未登录按租户解析调用。
  4. 青少年模式查询、开启、关闭接口已具备,复用敏感操作 action_token 和独立密码校验链路。
  5. 设备 Push Token 覆盖写入 PUT /v1/im/devices/{device_id}/push-token 已具备。
  6. FCM 已优先使用产品 im_device_push_tokens 数据源,并支持通过环境变量注入 Firebase 凭据。
  7. 用户搜索/加好友、个人资料、消息回执及 Tinode P2P 最后在线输出已执行对应隐私设置。

10.2 后续增强项

优先级 增强项 说明 建议验收点
P0 精准登出与会话撤销 auth/logout 与 security/sessions/{id} 未见路由,现有 token 主要靠 auth_version 批量失效。 当前设备退出不影响其他设备;删除指定 session 后该设备 token 立即失效。
P0 个人资料变更实时同步 资料、头像、隐私变更后需要向多端推送 profile.updated、privacy.updated。 同账号多端无需重登即可刷新设置。
P0 青少年模式策略配置化 当前返回默认 restrictions,后续需要后台按租户配置可用时段、内容限制、消费保护等规则。 不同租户返回不同限制策略且能热更新。
P0 Push Token 生命周期 当前可覆盖写入,后续需要 token 失效回收、设备解绑、平台厂商错误码处理。 推送失败后自动禁用无效 token,重新登录可恢复。
P1 版本灰度发布 当前按 platform/channel 查最新版本,后续需要按租户、用户、灰度比例、最低版本强制升级。 灰度用户收到新版本,非灰度用户保持稳定版本。
P1 隐私策略入口扩展 组织架构字段、文件、通话和青少年模式仍需纳入统一策略。 非授权用户无法通过任一业务入口绕过隐私配置。
P2 客户端能力上报 后续增加设备能力、通知权限、厂商通道状态和前台活跃状态上报。 后台可定位推送不可达和版本兼容问题。

11. 第十一章:反诈安全、举报与意见反馈

11.1 当前已完成基线

  1. URL 安全检查 POST /v1/im/security/urls/check 已接入风控 challenge 创建。
  2. 风控确认 POST /v1/im/security/risk-challenges/{id}/confirm 已具备,continue 返回短时 risk_action_token。
  3. 举报原因 GET /v1/im/reports/abuse/reasons 已具备,默认覆盖用户、群、消息目标。
  4. 举报提交 POST /v1/im/reports/abuse 已具备,支持幂等键、证据文件 ID、目标基础可见性校验和审核快照。
  5. 意见反馈配置 GET /v1/im/feedback/config、提交 POST /v1/im/feedback 已具备,支持附件规则、诊断授权和幂等键。
  6. 风险确认结果已生成稳定 security.risk.* 事件和用户可见系统通知。

11.2 后续增强项

优先级 增强项 说明 建议验收点
P0 风控策略引擎 当前 URL 检查仅基础规则,后续需要按动作、关系、内容、设备、频率和租户策略综合判定。 高风险发消息、加好友、打开链接等动作统一返回风控 challenge。
P0 风控 token 消费接入业务接口 当前确认可签发 risk_action_token,后续需要原业务接口校验并单次消费该 token。 二次确认后只允许重试原动作一次,重复使用返回 Token 已消费。
P0 举报目标完整权限校验 当前做基础可见性校验,后续需要结合用户侧删除、撤回、退群、黑名单、文件 ACL 和审核状态。 无权限目标无法提交举报,也不泄露目标存在性。
P0 审核后台流转 举报和反馈当前仅 received,后续需要后台分派、处理、关闭、回复和通知。 处理状态可追踪,举报人按策略收到处理结果。
P1 证据文件安全与保留期 证据文件需要 abuse_evidence 专用 ACL、病毒扫描、不可转发和保留期策略。 证据只能审核链路访问,过期按政策清理。
P1 主动反诈风险提示 风险确认通知已由服务端可信生产;低风险主动提示、通知文案策略和 Push 优先级仍需扩展。 普通用户无法伪造反诈弹窗,客户端只信任系统事件。
P1 举报合并与限频 重复举报需要合并、返回原受理号或限频错误,避免刷单。 短时间重复举报同一目标不会生成大量工单。
P2 反馈诊断包脱敏 诊断包需统一脱敏、大小限制、客户端日志授权和服务端下载审计。 未同意时没有诊断包,同意后包内不含明文 token/手机号。

12. 统一处理建议

  1. 第一优先级处理生产可用性 P0:真实短信、登出/会话撤销、普通消息转发/合并转发、文件安全、通话强状态机、工作台权限、风控 token 消费。
  2. 第二优先级补齐已落地接口的联调闭环:P2P 会话、会话设置、云草稿、群文件、群邀请外部接受、实名申诉、组织全局成员、月报 reopen。
  3. 第三优先级统一协议和治理能力:所有列表补齐 has_more、稳定游标、审计流水、字段级隐私矩阵、租户配置化策略。
  4. 万人大群未实现增强项仅保留离线能力:离线只走极光 Push 提醒,客户端重连后按 Topic seq 拉取补偿;实时推送能力归入 IM-Redis三层数据分层改造方案.md 后续直接实现。
  5. Redis 读性能深度优化继续保留:群成员分页 sorted set/稳定游标/主动失效、Topic 维度未读计数、bootstrap 聚合缓存和主动失效事件。
  6. 每个增强项落地后同步更新本文档、IM-系统设计文档.md、IM-前后端对接文档.md 和接口审核报告,避免已完成项继续出现在待办清单。

13. Kafka 联调后续增强项

来源:IM-Kafka接入联调测试文档.md 10.2。本轮已完成后端 Kafka 主链路联调,但端到端页面与真实客户端仍需专项补测;同时 Kafka 断线恢复暴露出进程稳定性问题。

优先级 增强项 说明 建议验收点
P0 Admin Kafka 断线自动恢复 本地联调中停止 Kafka 后,Admin consumer 报 client has run out of available brokers 并 fatal 退出。 Kafka 停止/恢复期间 Admin 进程不退出,consumer 退避重连,恢复后继续消费积压消息。
P0 IM Kafka consumer 自动恢复 Kafka 恢复后 IM 仍 healthy,但 consumer 未立即消费新事件,重启 IM 后才补偿消费。 Kafka broker 重启后无需重启 IM,im.admin.command、im.message.persist、im.cache.invalidate 等 Topic 自动恢复消费。
P1 Admin 前端页面人工验收 后端接口、Kafka、数据库状态已测;仍需在浏览器逐个菜单验收操作单、死信、审计和状态流转展示。 后台页面可展示 pending/running/succeeded/failed/dead,死信可查询、忽略、解决、重放,审计列表与详情可查看。
P1 真实 C 端 WebSocket 联调 后台命令已生成业务事件/系统通知;仍需真实客户端在线观察 WS 实时刷新。 在线客户端收到群治理、用户治理、工作台、系统通知等事件;断线重连后可按 seq/bootstrap 补偿。