Files
ocdp-go/docs/UNRESOLVED-BUGS.md
Ivan087 8f90cf0f0d chore: cleanup old docs, add regression report and unresolved bugs
- Remove stale test docs (test2-*, bugs-user-*, bug-report, session-notes)
- Add UNRESOLVED-BUGS.md and regression-full-report.md
- Update todo.md
2026-05-14 10:08:57 +08:00

3.5 KiB
Raw Permalink Blame History

OCDP 未修复问题清单

最后更新: 2026-05-14 (Round 3 回归测试) 测试覆盖: 3 轮测试 (Round 1: v1 基线, Round 2: 配额+YAML, Round 3: 回归+新功能)


已知未修复 Bug (15 个)

P1 — 高优先级 (1)

# 标题 严重度 描述 Round
1 Detail API 返回 replicas: 0 P1 GET /instances/{id} 始终返回 replicas: 0,与 List API 不一致 R3 NEW

P2 — 中优先级 (8)

# 标题 严重度 描述 Round
2 List API 移除 values 字段 P2 List instances 不再返回 values仅在详情API返回。可能是性能优化但属于 API 行为变更 R3 NEW
3 API 层无配额预检查 P2 后端接受所有部署请求返回200不验证是否超配额。K8s ResourceQuota 在 pod 级阻止,但 Helm release 仍创建 R2
4 Values 冲突时无警告 P2 同时提供 values JSON 和 valuesYamlJSON 静默覆盖 YAML无任何警告 R2
5 Tags 端点缺失 P2 GET /registries/{id}/repositories/{repo}/tags 返回 404 R1
6 Metrics API 缺失 P2 GET /monitoring/clusters/{id}/metrics 返回 404 R1
7 Stats API 缺失 P2 GET /clusters/{id}/stats 返回 404 R1
8 Kubeconfig API 缺失 P2 GET /clusters/{id}/kubeconfig 返回 404 R1
9 Namespace 静默覆盖 + HTTP 200 P2 用户部署到他人的 namespace 时API 返回 201 但 namespace 被静默改为自己的。应返回 403 R1

P3 — 低优先级 (6)

# 标题 严重度 描述 Round
10 用户枚举漏洞 P3 不存在用户 "user not found" vs 存在用户 "invalid password",错误消息不同 R1
11 无登录速率限制 P3 10 次快速失败全部返回 401无 429 或锁定 R1
12 Nginx 版本泄露 P3 Server: nginx/1.27.5 响应头暴露精确版本 R1
13 CORS: * P3 Access-Control-Allow-Origin: * 允许任意跨域 R1
14 缺少安全响应头 P3 无 HSTS, X-Frame-Options, CSP, X-Content-Type-Options R1
15 /health 端点返回 SPA HTML P3 健康检查返回 index.html 而非 {"status":"ok"} R1

已修复 (Round 3 验证通过)

原 Bug ID 描述 修复后行为
BUG-001 Launch 按钮无反应 (P0) 部署端到端正常
BUG-002 SPA 旧路由空白页 (P0) 所有旧路由返回 SPA
BUG-003 DELETE 返回 404 (P1) 返回 HTTP 204
BUG-004 DELETE 空响应体 (P1) HTTP 204 No Content
InstanceCard 无 scaling UI +/- 按钮 + K8s API
ModifyModal values 为空 Full Helm values + diff
Per-card Refresh button 移除,改为 page-level

修复优先级排序

立即修复 (P1):
  1. Detail API replicas=0  →  从 K8s live state 同步

短期修复 (P2):
  2. API 层配额预检查  →  POST instances 时验证
  3. Values 冲突警告  →  两者同时提供时返回 warning
  4. Namespace 拒绝而非覆盖  →  返回 403
  5. 缺失端点实现 (tags/stats/metrics/kubeconfig)

安全加固 (P3):
  6. 登录错误消息统一 → "Invalid username or password"
  7. 速率限制 → max 5/min per IP
  8. Nginx: server_tokens off + 安全头
  9. CORS 收紧 → 具体域名
  10. /health → JSON 响应