知识库
知识库模块是企智通的内部文档协作平台,提供分类树、文档管理、版本历史以及基于 WebSocket 的实时协同编辑能力。适合团队编写技术文档、产品规格、SOP 流程、培训材料等。
核心能力
| 能力 | 说明 |
|---|---|
| 分类树 | 多级分类,支持无限层级嵌套 |
| 富文本文档 | HTML 内容编辑,支持图文混排 |
| 实时协同 | 多人同时编辑同一文档,基于 WebSocket 广播变更 |
| 版本历史 | 每次保存自动生成版本快照,支持回滚 |
| 发布管理 | 草稿 / 已发布状态控制 |
分类管理
知识库采用树形分类组织文档,结构清晰、层级分明。
| 属性 | 说明 |
|---|---|
| 分类名称 | 可读的分类标题 |
| 父分类 | 支持无限层级嵌套(parent_id) |
| 排序 | 同级分类的显示顺序 |
| 状态 | 启用 / 停用 |
典型分类示例:
技术文档
├── 架构设计
├── API 规范
└── 运维手册
产品文档
├── 需求规格
└── 版本说明
制度流程
├── 人事制度
└── 财务流程
文档管理
| 属性 | 说明 |
|---|---|
| 标题 | 文档标题 |
| 所属分类 | 关联分类树节点 |
| 正文 | HTML 富文本内容 |
| 状态 | 草稿 / 已发布 |
| 创建人 | 文档创建者 |
| 最后编辑人 | 最近一次保存的用户 |
| 浏览次数 | 阅读量统计 |
实时协同编辑
知识库支持多人同时编辑同一篇文档,基于 WebSocket 实现变更同步:
用户A 编辑文档 ──┐
├──▶ WebSocket Hub ──▶ 广播给所有在线编辑者
用户B 编辑文档 ──┘
工作原理
- 用户打开文档编辑器时,前端通过
GET /kb/documents/:id/collab?token=<JWT>建立 WebSocket 连接; - 所有打开同一文档的连接构成一个「编辑房间」;
- 用户输入的内容变更以二进制增量更新广播给房间内其他用户;
- 任意用户保存时,服务端同步更新文档正文快照并生成新版本。
鉴权方式
WebSocket 连接无法使用常规 HTTP Header 鉴权,因此通过 ?token= 查询参数传递 JWT,服务端在升级连接前独立校验。
版本历史
每次保存文档都会自动创建一个版本快照,形成完整的编辑历史:
| 字段 | 说明 |
|---|---|
| 版本号 | 自动递增 |
| 内容快照 | 保存时刻的完整正文 |
| 编辑人 | 执行保存的用户 |
| 版本备注 | 可选的修改说明 |
版本回滚
任意历史版本可一键恢复为当前版本——这不会删除中间的版本记录,而是在版本链上追加一个新版本,内容来自被恢复的历史版本。版本历史不可删除,满足审计追溯要求。
与其他模块的联动
| 联动模块 | 联动场景 |
|---|---|
| 系统管理 | 文档权限基于 Casbin RBAC |
| OA | 新文档发布可推送站内消息通知 |