docs: 记录生产上线风险修复计划
This commit is contained in:
@@ -13,6 +13,13 @@
|
|||||||
- [ ] 已确认统一入口 `gateway` 可访问。
|
- [ ] 已确认统一入口 `gateway` 可访问。
|
||||||
- [ ] 已确认前端 API 地址使用同域 `/api`。
|
- [ ] 已确认前端 API 地址使用同域 `/api`。
|
||||||
- [ ] 已确认内网穿透指向 `gateway:80`。
|
- [ ] 已确认内网穿透指向 `gateway:80`。
|
||||||
|
- [ ] 已使用 `docker-compose.prod.yml`,未使用开发编排上线。
|
||||||
|
- [ ] 已关闭 `DEBUG`、短信 mock、模型 mock 和飞书 mock。
|
||||||
|
- [ ] 已配置敏感配置加密密钥,后台接口仅显示密钥掩码。
|
||||||
|
- [ ] 已验证短信发送、验证码和管理员登录限流。
|
||||||
|
- [ ] 已验证每日问答额度跨自然日自动重置。
|
||||||
|
- [ ] 已验证并发排队、超时、取消和队列满提示。
|
||||||
|
- [ ] 已验证退出登录后的 Token 在多 worker 下立即失效。
|
||||||
|
|
||||||
## 发布中
|
## 发布中
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# 生产上线前风险修复计划与实施记录
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
项目准备正式部署前,对用户端、管理后台、后端服务和容器编排进行上线审查。审查发现并发排队、每日额度、安全配置、登录防护、生产部署、自动化验证及代码维护性仍存在风险。本次按“先修复阻断上线的问题,再补齐验证与维护性”的顺序一次性收口。
|
||||||
|
|
||||||
|
## 修复范围
|
||||||
|
|
||||||
|
1. 修复聊天请求进入排队后引用未定义变量、流式响应中断的问题,并覆盖排队、超时、拒绝和释放场景。
|
||||||
|
2. 为每日问答额度增加按自然日自动重置机制,避免额度累计后永久不可用,并保证并发扣减一致性。
|
||||||
|
3. 为短信发送、短信验证码校验、图形验证码校验和管理员登录增加 Redis 限流与失败锁定;Redis 不可用时采用进程内降级保护。
|
||||||
|
4. 对模型 API Key、飞书 AppSecret、阿里云 AccessKey Secret 等敏感配置进行应用层加密存储;读取接口只返回掩码,更新时留空不覆盖已有密钥。
|
||||||
|
5. 将用户和管理员退出后的 Token 撤销状态迁移到 Redis,并按 Token 剩余有效期保存;Redis 不可用时保留进程内降级机制。
|
||||||
|
6. 新增生产镜像与生产编排:前端使用 Nginx 静态服务,后端关闭 debug 和 mock,数据库与 Redis 不暴露公网端口,生产密钥必须显式配置。
|
||||||
|
7. 修复自动验证脚本,补充后端关键单元测试、前端构建、数据库迁移和 Docker Compose 配置检查,并锁定依赖版本。
|
||||||
|
8. 拆分管理后台超大单文件和后端高复杂度模块的职责边界;优先提取系统设置定义、登录视图和共享安全组件,保持现有行为不变。
|
||||||
|
|
||||||
|
## 上线验收条件
|
||||||
|
|
||||||
|
- 排队状态能够正常返回位置提示,排队完成、超时、取消和异常均释放占用。
|
||||||
|
- 用户跨自然日首次提问时自动清零昨日用量,同日并发请求不能绕过额度。
|
||||||
|
- 短信和登录接口具备可配置限流,错误次数达到阈值后临时锁定。
|
||||||
|
- 管理后台和接口响应中不出现任何完整密钥;数据库中的新保存密钥不是明文。
|
||||||
|
- 多 worker 下退出登录立即生效,Token 撤销状态在服务重启后仍可由 Redis 保留。
|
||||||
|
- `docker-compose.prod.yml` 不包含开发弱口令、mock、debug、Vite 开发服务器和数据库公网端口。
|
||||||
|
- 后端测试、迁移检查、用户端构建、管理后台构建和 Compose 检查全部通过。
|
||||||
|
- 拆分后页面功能和 API 行为保持一致,核心文件职责更清晰。
|
||||||
|
|
||||||
|
## 实施记录
|
||||||
|
|
||||||
|
实施过程中按批次记录对应提交、验证结果和必要决策。每批代码修改均单独提交并推送。
|
||||||
Reference in New Issue
Block a user