docs(audit): V12 模块化端到端审计报告 — 11 模块 + 总报告
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

混合矩阵式审计:10 个功能模块 × 五维检查清单
- 项目整体健康度: 76/100
- 2 个 P0 (M4 双数据库 + 反思引擎 LLM 未接入)
- 15 个 P1 (跨 M2/M3/M4/M5/M6/M7/M11)
- 三类断链模式: 写了没接/接了不对/双实现未统一
- 三阶段修复路线图: P0(2-3天) → P1(5-7天) → P2(5-7天)
This commit is contained in:
iven
2026-04-04 17:55:03 +08:00
parent e90eb5df60
commit 442ec0eeef
11 changed files with 1068 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
# 模块 M8 Admin V2 管理后台 审计报告
> **审计版本**: V12 | **日期**: 2026-04-04
## 1. 链路完整性
14 个页面全部与后端 API 对齐。认证流程(HttpOnly Cookie + JWT)完整。权限检查一致。
| 页面 | CRUD 完整性 | 权限 | 状态 |
|------|------------|------|------|
| Login | R(认证) | 公开 | ✅ |
| Dashboard | R | admin | ✅ |
| Accounts | R + U | admin | ✅ |
| ModelServices | CRUD | provider/model:manage | ✅ |
| Relay | R only | relay:use/admin | ⚠️ 缺 retry |
| Billing | R + Payment | billing | ✅ |
| Logs | R | admin | ✅ |
| Prompts | CRUD + 版本 | prompt:manage | ✅ |
| Roles | CRUD | role:manage | ✅ |
| Knowledge | CRUD + 搜索 + 版本 | knowledge:manage | ✅ |
| ScheduledTasks | CRUD | scheduler:manage | ✅ |
| AgentTemplates | C + R + U + D | template:manage | ✅ |
| Usage | R | admin | ✅ |
| Config | R + U | admin | ✅ |
**链路完整性评分: 88/100**
## 2. 问题清单
| ID | 文件:行号 | 级别 | 描述 | 修复建议 |
|----|----------|------|------|---------|
| M8-01 | `api-keys.ts:6` | P2 | API Key 列表只返回当前用户的Admin 需要全局视角 | 后端新增 admin 级 key 列表端点 |
| M8-02 | `Relay.tsx` | P2 | 缺少 retry 操作,后端有但前端未暴露 | 添加 retry 按钮 |
| M8-03 | `authStore.ts:13-25` | P2 | ROLE_PERMISSIONS 硬编码前端,与后端可能不同步 | 改为从 API 动态获取 |
| M8-04 | `config.ts:10` | P3 | config list 返回类型不一致(数组 vs 分页) | 统一返回类型 |
| M8-05 | `Accounts.tsx:122` | P3 | 引用 last_login_at 但后端 AccountPublic 无此字段 | 后端添加字段 |
| M8-06 | `Login.tsx:39` | P3 | TOTP 检测靠字符串匹配('TOTP'),不够健壮 | 改为结构化 error code |
| M8-07 | `agent-templates.ts:31` | P3 | update 用 POST 而非 PUT/PATCHREST 语义不规范 | 前后端统一为 PUT |
| M8-08 | `billing.ts` | P3 | 类型定义在 service 内重复,未复用 @/types | 统一到 types 目录 |
**综合健康度: 82/100** — 14 页面 CRUD 整体对齐良好,前端权限硬编码和缺少 retry 是主要扣分项。