修复V4复核指针部署证明和运行时诊断

This commit is contained in:
andy
2026-07-21 14:07:35 +07:00
parent 4bf53768ad
commit ab766cf4e2
17 changed files with 586 additions and 27 deletions

View File

@@ -6,7 +6,7 @@
当前后端已经具备以下能力:
- `GET /api/health`:后端健康检查。
- `GET /api/health`:后端健康检查和非敏感部署证明
- `GET /api/source-messages`:查询 SourceMessage Inbox 安全摘要。
- `GET /api/source-messages/{id}`:查询单条 SourceMessage 安全摘要。
- `GET /api/source-messages/{id}/original`受控读取邮件原文、HTML 和媒体 URL并记录访问审计。
@@ -42,7 +42,7 @@
上线前至少确认以下事项:
- 当前分支、提交和部署包来源清楚,不能混入本地临时文件、真实 Secret、真实客户邮件样本或构建产物。
- 当前分支、提交和部署包来源清楚,不能混入本地临时文件、真实 Secret、真实客户邮件样本或构建产物;测试机 / UAT 构建包必须在本次代码提交后再打包,且能通过 `GET /api/health``build_commit` 证明当前运行提交
- `server` 后端通过完整检查:`cd server && ./mvnw verify`
- 生产或 UAT 数据库已经备份,并确认 Flyway migration 只新增不修改历史脚本。
- 所有 Secret 都通过环境变量、部署平台 Secret 或密钥管理系统注入,不写入仓库、镜像、前端环境变量或普通配置文件。
@@ -59,6 +59,18 @@
## 3. 环境变量
### 3.0 构建与部署证明
| 变量 | 是否 Secret | 上线注意事项 |
| --- | --- | --- |
| `TH_HOTEL_BUILD_COMMIT` | 否 | 构建包时设置为已提交后的当前 Git commit例如 `TH_HOTEL_BUILD_COMMIT=$(git rev-parse --short HEAD) ./mvnw clean package`;该值会写入 Jar 内嵌 build-info`/api/health` 返回内嵌值;未设置时 `/api/health` 返回 `build_commit=UNKNOWN`,不能作为“已部署指定提交”的证明。不要用未提交工作区代码打包后仍标记旧 HEAD否则 build commit 只能证明旧提交,不能证明本次修复。 |
说明:
- `GET /api/health` 会返回 `runtime_marker``build_commit``build_time``build_version`,这些字段不包含 Secret只用于部署排查`build_commit` 应以构建阶段写入 Jar 的 build-info 为准,不把运行时临时环境变量或未提交工作区状态当作已部署代码证明。
- 应用启动日志也会输出同一组 build info如果测试机接口不可访问可先看启动日志确认运行包。
- 如果 `build_commit` 不是预期提交,先修部署或重新打包,不要继续改业务逻辑。
### 3.1 数据库
| 变量 | 是否 Secret | 上线注意事项 |
@@ -394,6 +406,8 @@ GET /api/health
- HTTP 200。
- `status = UP`
- `runtime_marker = m002_v4_review_pointer_deployment_proof_v1`
- `build_commit` 为本次预期部署提交;如果是 `UNKNOWN` 或旧提交,先修部署包。
```text
GET /api/system/agentbus-probe