docs: record code quality remediation rollout

This commit is contained in:
hectorzhao
2026-08-28 12:23:17 +08:00
parent fc4a6a7afc
commit 3af145abe5
3 changed files with 132 additions and 1 deletions
+10
View File
@@ -4094,3 +4094,13 @@ git diff --check
- Chrome真实标签尝试刷新时被本机客户端策略以`ERR_BLOCKED_BY_CLIENT`拦截私网地址,因此无法把刷新后的登录态页面冒充验收证据;服务器HTTP回读和远端产物门禁用于确认新发布资源。用户侧原标签需关闭后重新打开或强制刷新以脱离旧内存资源。
- 发布前新建并校验恢复点`/opt/cmpp-platform-backups/dashboard-direct-text-20260828T023121Z`,包含PostgreSQL custom dump、原运行目录、环境/systemd/Nginx配置、原部署标记和SHA-256清单;`pg_restore --list`、两份tar目录及全部摘要校验通过。95项migration无待执行项。
- 测试环境最终部署标记与代码提交一致,新资源为`index-9yfCJZo4.css``index-piRXc72V.js`;远端门禁确认CSS不含旧金额类和首卡专属strong规则,JavaScript不含“余额水位”。11项相关服务activeAPI/Gateway健康,Gateway结果Stream`pending=0/lag=0`,发布窗口核心服务error级日志为空。仅部署测试环境`100.93.204.60`,预生产未访问或修改。
## 2026-08-28 代码质量 P0 整改与测试环境发布
- 按`docs/code-quality-remediation-plan-20260828.md`执行发布阻断整改,代码提交依次为`2744690`(可信租户、强哈希、Redis登录状态、DTO/依赖/分包/门禁)、`d85ff85`(最长2小时的回退兼容窗口)、`fc4a6a7`(管理员和smoke维护工具只写强哈希)。最终测试环境部署标记为`fc4a6a7afcfc3c1c11d1e353f46d5b724f48a39e`
- 真实双租户 API 矩阵通过:当前租户无header和一致header均成功;伪造其他租户header返回`403 CLIENT_TENANT_MISMATCH`;请求体tenantId被服务端覆盖为会话租户;跨租户应用资源ID返回404。一次性测试账号均清理,活跃`@integration.invalid`用户最终为0。
- 密码使用版本化scrypt格式,旧SHA-256只读兼容并在成功登录后条件更新。测试环境一次性旧哈希账号通过真实验证码和客户端登录接口迁移为scrypt后删除;4个未登录历史旧账号保持原值等待自然迁移。兼容环境变量已从配置和API进程移除,维护脚本真实创建的临时管理员也验证为scrypt后清理。
- API 47套542项、覆盖率69.77/53.47/71.08/73.05、前后端TypeScript/Vite构建、bundle budget、Gateway全包测试/go vet、Prisma、5份队列契约、代码质量和安全部署门禁全部通过。初始JS gzip约107.38 KiB;图表异步块约181.64 KiB,校准预算190 KiB。根生产依赖审计为0API子项目仍有2 moderate/7 high公告,既有兼容缓解门禁通过,需后续按兼容矩阵升级。
- 采用两阶段密码安全发布并在每次覆盖前重新建恢复资产:`code-quality-before-d85ff859-20260828T035007Z``code-quality-compatible-d85ff859-20260828T035426Z``code-quality-before-fc4a6a7-20260828T040150Z`。三份均含PostgreSQL custom dump、运行目录、配置、Redis RDB、MinIO数据、状态快照、回退说明和SHA-256;恢复清单、pg_restore、tar和Redis校验通过。
- 最终收尾为95/95迁移、11项服务active、入口HTTP 200、API/Gateway健康、Redis PONG、`gateway.submit.results pending=0/lag=0`,发布后7项核心服务error级日志均0。浏览器真实登录页完整且控制台error/warning为0;未自动输入账号密码/验证码,登录后深层页面仍保留为人工浏览器验收边界。
- 本轮没有发送短信、压测、修改余额/应用/通道或写入MinIO业务对象,也没有执行新的CMPP模拟器全链;两个SendChain超大Service未在安全发布中做高风险重构。完整证据和保留项见`docs/code-quality-remediation-result-20260828.md`。只操作测试环境`100.93.204.60`,预生产未访问或修改。