- Remove stale test docs (test2-*, bugs-user-*, bug-report, session-notes) - Add UNRESOLVED-BUGS.md and regression-full-report.md - Update todo.md
75 lines
3.5 KiB
Markdown
75 lines
3.5 KiB
Markdown
# 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 响应
|
||
```
|