## 4 个新脚本
| 脚本 | 用途 | 结果 |
|---|---|---|
| scripts/perf_benchmark.py | 性能 baseline + 10 并发压测 | p95=3ms/10.68ms, 1250 rps |
| scripts/integration_test.py | 全链路 E2E (DB+admin+portal+retention) | 7/7 PASS |
| scripts/user_simulation.py | Playwright 5 跳 × 2 视口 | 10/10 PASS |
| scripts/deploy_ops_verify.py | 12 项 health/auth/CRUD/ops-alerts | 12/12 PASS |
## reports 落地
- reports/perf_2026_06_20.json
- reports/integration_2026_06_20.json
- reports/deploy_ops_2026_06_20.json
- reports/user_simulation_2026_06_20/ (10 PNG + captures.json)
- reports/PRODUCTION_LAUNCH_READINESS_2026-06-20.md (总报告 + PRODUCTION_DEPLOYMENT_CHECKLIST §7 A 8 项勾选)
- docs/VERIFICATION_SCRIPTS_2026-06-20.md (脚本索引)
## 关键发现 (投产必读)
1. **GAOKAO_ORDERS_FERNET_KEY 必须在 systemd unit Environment= 显式设置**, 否则
订单写入抛 MissingEncryptionKey → 兜底 except 抛 500 E03003 (表面像'数据保存失败')
2. **/api/orders 与 /api/orders/{id} 响应都是嵌套 {order: {...}}**, portal 路径平铺
3. **portal_token 不在 order 响应里**, 需 data/customer_portal/token.issue_portal_token(order_id, secret)
## PRODUCTION_DEPLOYMENT_CHECKLIST §7 A 8 项
本地可推进 5/8 全过: 密钥目录 / 健康端点 / 联调文档 / 隐私政策 / 数据密度
3/8 文档级 (SMTP 真实联调 / 告警渠道 / 备份异机演练 需 PM+Ops+凭据)
## 状态分级
- 整体: CONDITIONAL_APPROVED
- 本地验证: 4 维度 36/36 项全 PASS
- 外部前置: 6 项需 PM/Ops/Legal/真实商户协调 (T12-A / 异机演练 / 法务审定 / 真实告警 / 真实压测 / data_year 更新)
42 lines
883 B
JSON
42 lines
883 B
JSON
{
|
|
"date": "2026-06-20",
|
|
"port": 19091,
|
|
"overall_ok": true,
|
|
"steps": [
|
|
{
|
|
"step": "health",
|
|
"ok": true,
|
|
"detail": "status=ok db=True"
|
|
},
|
|
{
|
|
"step": "login",
|
|
"ok": true,
|
|
"detail": "status=200 token_len=195"
|
|
},
|
|
{
|
|
"step": "create_order",
|
|
"ok": true,
|
|
"detail": "status=201 order_id=GKO-20260620-G5TM"
|
|
},
|
|
{
|
|
"step": "get_order",
|
|
"ok": true,
|
|
"detail": "status=200 consent_method='verbal_chat'"
|
|
},
|
|
{
|
|
"step": "ops_alerts = 200",
|
|
"ok": true,
|
|
"detail": "status=200"
|
|
},
|
|
{
|
|
"step": "retention_dry_run",
|
|
"ok": true,
|
|
"detail": "candidates=0 anonymized=0 deletion_logs_pruned=0 share_events_pruned=0"
|
|
},
|
|
{
|
|
"step": "retention_apply",
|
|
"ok": true,
|
|
"detail": "candidates=0 anonymized=0 deletion_logs_pruned=0"
|
|
}
|
|
]
|
|
} |