Files
danyang-match/docs/生产部署前本机修复与服务器实施清单-2026-09-11.md
T

55 lines
4.0 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.
# 善缘丹阳 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。