chore: checkpoint before switching to main
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 善缘丹阳 V1.1 生产部署前本机修复与服务器实施清单
|
||||
|
||||
日期:2026-09-11
|
||||
结论:**NO-GO,暂不具备生产交付条件。** 本机可确定的代码、测试环境和部署配置问题已修复;以下生产实施项和两个非服务器阻断项关闭前不得上线。
|
||||
|
||||
## 一、本机已实施
|
||||
|
||||
- 修复无既有 Match 时拉黑事务回滚;拉黑现在始终落库,有 Match 时同步解除。
|
||||
- 修复成功牵手第二方确认被错误拒绝;双方分别确认后才进入 successful。
|
||||
- 新增 V033,补齐消息、通知、推荐、成功牵手实体所需公共列。
|
||||
- 补齐 H2 集成测试 schema,使 P0 测试执行真实 Mapper/事务路径。
|
||||
- 更新迁移校验至 V033,并允许有明确说明的历史占位迁移。
|
||||
- 修复 Docker ENTRYPOINT 环境 profile 不展开问题。
|
||||
- 修复生产 Compose 非法插值、数据库 Docker secret 到 Spring configtree 的映射及必填密钥校验。
|
||||
- 新增 production profile:关闭 Swagger/OpenAPI,降低业务与 MyBatis 日志级别,要求显式后备密码。
|
||||
- 修复 PostgreSQL 恢复脚本 `ON_ERROR_STOP` 参数和冒烟测试 URL 拼接。
|
||||
- 红娘登录复用统一 API_BASE_URL,不再单独硬编码 localhost。
|
||||
- 已备份本地库:`artifacts/backups/danyang-match-pre-v033-20260911.dump`;本地 Flyway 已执行到 `033:true`。
|
||||
|
||||
## 二、验证记录
|
||||
|
||||
| 检查 | 结果 |
|
||||
|---|---|
|
||||
| P0 集成测试 | 8/8 通过 |
|
||||
| 后端全量测试 | 279 项,1 失败、0 错误、3 跳过 |
|
||||
| 管理端 TypeScript | 通过 |
|
||||
| 管理端生产构建 | 通过;主包 1.26 MB,存在非阻断体积警告 |
|
||||
| 小程序 TypeScript | 通过 |
|
||||
| 生产 Compose config | 通过(使用进程内虚拟密钥) |
|
||||
| restore/smoke 脚本语法 | 通过(Linux 容器 `sh -n`) |
|
||||
| 本地后端 | 健康接口 UP;Flyway V033 成功 |
|
||||
|
||||
唯一后端失败是旧 `PermissionMatrixTest`:客户现行基线及 `Phase-23-Completion-Report` 明确 `platform_admin` 为 17/18、仅无 `permission.manage`,旧测试却要求每个非超级管理员至少拒绝 5 项。未擅自修改真实权限,也未降低测试门槛。
|
||||
|
||||
## 三、生产服务器实施项
|
||||
|
||||
1. 准备 Linux 主机、Docker/Compose、磁盘、Asia/Shanghai 时区、防火墙和 80/443 端口。
|
||||
2. 确定并解析正式域名,签发证书,放入 `infrastructure/certs/fullchain.pem` 与 `privkey.pem`。
|
||||
3. 在服务器创建 `infrastructure/secrets/db_password.txt`,并通过受控环境注入 Redis、MinIO、JWT、签到、加密、微信及后备账号密钥;禁止写入 Git。
|
||||
4. 上线前执行 PostgreSQL 全量备份和恢复演练,记录校验值;随后部署并确认 Flyway 从当前版本顺序升级到 V033。
|
||||
5. 创建/校验 MinIO 私有与公开桶、访问策略、备份目录和持久卷容量。
|
||||
6. 构建并启动生产 Compose,验证 PostgreSQL/Redis/MinIO/backend/admin/nginx 健康状态。
|
||||
7. 配置微信公众平台 request 合法域名、业务域名、HTTPS/TLS 和小程序版本;将确定后的正式 API 域名写入 `miniapp/env.ts` 与 `env.js` 后重新编译上传。
|
||||
8. 在真实域名运行 `infrastructure/scripts/smoke-test.sh`,再完成管理员、普通用户、红娘、咨询师、内容编辑员的权限与核心业务 UAT。
|
||||
9. 执行上线前安全扫描、性能基线、备份恢复和回滚演练,形成签字记录。
|
||||
|
||||
## 四、非服务器配置可解决的阻断项
|
||||
|
||||
1. **真实微信登录和实名认证 Provider 尚未实现。** 当前代码只有 Mock Provider;必须确定实名供应商、完成真实接口开发/联调,生产禁止使用 mock。
|
||||
2. **权限基线冲突待裁决。** 应由产品/安全负责人确认以客户文档的 platform_admin 17/18 为准,还是重新收紧至少 5 项权限;确认后再同步数据库权限与测试,不能仅改测试求绿。
|
||||
|
||||
## 五、上线门禁
|
||||
|
||||
上述第三区域全部完成、第四区域两项关闭,且后端全量测试零失败、生产静态契约测试通过、UAT/安全/备份恢复记录齐全后,方可改判 GO。
|
||||
Reference in New Issue
Block a user