DTL L-20260828-02 · Phase 4 云端验证收官报告(D01 4/4 · D02 8/8 · D03 维持 · 闭环)
| 字段 |
值 |
| 日志编号 |
L-20260828-02 |
| 日志类型 |
DTL(听写任务日志) |
| 维护人 |
听写 DT |
| 任务来源 |
用户指令「听云执行了,请继续」+ OCL L-20260828-02 §六(R1+R2 修复完成待公网复测) |
| 测试方式 |
公网 HTTP 黑盒(curl.exe → 8.218.165.94 :80),未 SSH ECS |
| 关联文档 |
OCL-TASK-L-20260828-01(整改通知)、OCL L-20260828-02(R1+R2 修复日志)、DTL L-20260828-01(首轮复核)、OCL-DEPLOY-20260827-05 V5.1、WDE-TASK-L-20260827-01、WDL L-20260827-02 |
一、Phase 4 工作包判定总览
| 工作包 |
判定 |
通过率 |
关键证据 |
| D01 MFR 开放报价生产回归 |
🟢 收官 |
4/4 |
C8=201(听云 ECS 实证 quote_id=QTE-42c9 + final_amount=720.0 HKD)+ 公网 C1=401/C2=200+ACAO(S3 分流生效) |
| D02 生产健康检查 |
🟢 收官 |
8/8 |
/ 302;/health /docs /dl/ /wkr/ /cst/ /admin/login /mfr/ 全 200;/health db=ok |
| D03 SCAT V1.1 不部署声明 |
🟢 维持 |
- |
:8000 legacy version=2.0.0、:8010 新基线 SCAT v2.1 功能面未启 |
Phase 4 云端验证闭环达成 ✅
二、公网复测矩阵(2026-08-28 R1+R2 修复后)
2.1 C1~C8 断言(V5.1 矩阵全口径)
| # |
断言 |
预期 |
实测 |
判定 |
| C1 |
公网 POST /api/v2/qsv/quote/mfr-open(无 token) |
401 |
401 |
✅ |
| C2 |
公网 OPTIONS 预检 Origin=8.218.165.94 |
200 + ACAO |
200 + access-control-allow-origin: http://8.218.165.94 |
✅ |
| C3 |
公网 POST /api/v1/qsv/quotes 空 body |
401/422 |
401 |
✅ |
| C4 |
公网 GET /api/v1/mds/categories |
非 500 |
200 |
✅ |
| C5 |
公网 /health /docs |
200 |
200/200 |
✅ |
| C6 |
:8010 openapi(采信听云) |
186/v2=182/mfr=7 |
同 |
✅ |
| C7 |
四端 + /mfr/ |
全 200 |
全 200 |
✅ |
| C8 |
A3 收官 mfr-open POST → 201(采信听云 ECS 实证) |
201 |
201 + quote_id=QTE-42c9e2e414d04221a3fa387f + final_amount=720.0 HKD |
✅✅ |
2.2 D02 八项端点
| # |
端点 |
实测 |
判定 |
| 1 |
GET / |
302 → /dl/ |
✅ |
| 2 |
GET /health |
200 {"status":"ok",...,"db":"ok"} |
✅ |
| 3 |
GET /docs |
200 |
✅ |
| 4 |
GET /admin/login |
200 |
✅ |
| 5 |
GET /dl/ |
200 |
✅ |
| 6 |
GET /wkr/ |
200 |
✅ |
| 7 |
GET /cst/ |
200 |
✅ |
| 8 |
GET /mfr/ |
200 |
✅ |
三、本轮修复链路总结
| 轮次 |
阻塞 |
根因 |
修复 |
验证 |
| V5.1 首轮 |
C8=201 但公网 C1=404/C2=400 |
Caddyfile bind mount ro,S3 gawk -i inplace 写入失败(inode 漂移),validate/reload 空转假象 |
R1:重建 Caddy 容器重新 bind mount |
C1=401/C2=200+ACAO |
| V5.1 首轮 |
legacy :8000 db Connection refused,C4=500 |
api-legacy 缺 DATABASE_URL(用 config.py 默认值错用户/错密码/错主机)+ 与 PG 网络隔离 |
R2:override 注入 DATABASE_URL + 加入 dip1-prod-network |
/health db=ok、C4=200 |
四、关键发现
- bind mount ro 陷阱:宿主文件已更新但容器内视图未同步(inode 漂移),validate/reload 读取未变更文件报 Valid——Caddy 规则变更后必须重建容器或用
docker exec ... reload 强制重读,不能只改文件
- C8 公网冒烟的判定边界:听云 ECS 内直连 :8010 的 201 实证 + 公网 C1=401(分流生效证明 v2 路由经 Caddy 可达)→ 联合判定 D01-4 收官;公网无生产 token 生成能力,201 的公网路径冒烟需后续真实 MFR-ADM token 接入后补充
- C4=200 的合理性:v1 旧基线 mds/categories 属公开参考接口(品类目录供前端选择),D02 口径"状态码 200 即过"判定成立;v1 整体鉴权情况建议后续评估(非本次部署回归)
- 双实例架构稳定性:v1 存量(:8000)+ v2/MFR(:8010)经 Caddy
/api/v2/* 前缀分流并存,互不干扰;legacy 容器 DB 修复后 v1 业务数据接口可用
五、下一步建议(供决策,非自动执行)
| 编号 |
建议 |
执行人 |
触发条件 |
| N1 |
git 同步至 Gitee hk2026 main 分支(团队协作源代码备份) |
听写 DT |
用户明确指令"git 同步" |
| N2 |
git tag v-phase4-cloud-verified 快照标记当前位置 |
听写 DT |
用户明确指令(PJM §4.6) |
| N3 |
v1 旧基线鉴权情况评估(C4=200 引发的安全审视) |
听写 DT 起草评估单 |
用户指令或下一迭代周期 |
| N4 |
MFR-ADM 生产真实 token 接入后补充公网 201 路径冒烟 |
听写 DT |
Keycloak 正式接入或生产 token 机制就绪 |
当前状态:🟢 Phase 4 云端验证闭环达成 · D01 4/4 + D02 8/8 + D03 维持 · MFR 开放报价生产上线主链路全通
— 本日志完 —