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
This commit is contained in:
74
docs/UNRESOLVED-BUGS.md
Normal file
74
docs/UNRESOLVED-BUGS.md
Normal file
@ -0,0 +1,74 @@
|
||||
# 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 和 `valuesYaml` 时,JSON 静默覆盖 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 响应
|
||||
```
|
||||
Reference in New Issue
Block a user