Files
rainblogweb/docs/ticket-system-roadmap.md
T

59 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RainWeb 工单系统后续完善计划
## 当前定位
RainWeb 当前已具备登录用户提交和跟踪、管理员队列处理、状态/优先级/负责人、公开回复、内部备注、基础事件时间线、筛选搜索和分页,定位为可用 MVP。
本计划只覆盖审查后确认的后续增强,不影响当前 Bug 修复批次。
## 阶段一:运营上线前(P0
目标:控制滥用风险,保护工单隐私,保证管理员团队可以稳定协作。
| 项目 | 主要内容 | 复杂度 | 依赖 |
| --- | --- | --- | --- |
| 工单反滥用 | 按 IP/用户限流、未关闭工单配额、重复提交幂等键、必要时验证码 | 中 | 现有 tickets、captcha |
| 私有附件 | 工单附件关联表、引用对象校验、私有下载鉴权、配额、孤儿清理、下载审计 | 中高 | upload、权限模型 |
| 通知闭环 | 创建确认、公开回复、状态/负责人变化通知;投递记录、失败重试和管理员告警 | 中 | email、异步任务 |
| 最小权限模型 | 客服、主管、只读审计角色;按队列/分类限制访问范围 | 中高 | 用户角色、工单分类 |
| 自动化测试 | 越权访问、内部备注隔离、状态流转、并发更新、限流、附件访问、迁移兼容 | 中 | 以上后端能力 |
## 阶段二:处理效率(P1
目标:让工单处理可衡量、可搜索、可协作。
- SLA 策略:按优先级/分类设置首次响应和解决目标。
- SLA 计时:支持工作时间、节假日,并在“等待用户”时暂停。
- 超时处理:临界提醒、违约标记、自动升级和主管队列。
- 全文搜索:搜索回复、用户、负责人、来源和日期;数据量增长后接入 SQLite FTS5。
- 工单协作:快捷回复模板、标签、合并/关联工单、重复反馈识别。
- 用户体验:通知偏好、未读数、满意度评价、前台完整分页。
- 完整审计:操作者、IP、请求 ID、前后值、后台查询和导出。
## 阶段三:规模化与治理(P2
目标:支持长期运营、外部渠道和故障恢复。
- 邮件入站转工单、退信处理和邮件线程关联。
- 附件真实 MIME/魔数检查、病毒扫描、图片重编码,必要时迁移对象存储。
- 运营报表:积压、响应时长、解决时长、重开率、SLA 达成率和客服负载。
- 健康检查、就绪检查、结构化日志、指标、告警和磁盘容量保护。
- 数据保留、删除/匿名化、用户数据导出、备份加密、轮换、异地保存和恢复演练。
## 推荐实施顺序
1. 先完成阶段一的权限和附件边界,再接入通知,避免通知泄漏内部数据。
2. 在限流、分页和审计基础上实现 SLA,避免统计建立在不完整事件数据上。
3. 最后实现邮件入站、病毒扫描、对象存储和运营报表等高复杂度能力。
## 暂不纳入本批次
本批次只修复审查发现的代码 Bug:前端请求竞态、记录排序、分页/来源地址校验、状态选项和文案一致性,以及后端限流/响应放大、并发更新、用户存在性、时间字段、事件契约和迁移兼容。上述阶段功能不会在 Bug 修复批次中顺手实现。
## 参考资料
- SQLite FTS5https://sqlite.org/fts5.html
- OWASP 文件上传安全:https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html
- OWASP 日志安全:https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html
- Google SRE 监控原则:https://sre.google/sre-book/monitoring/