Files
opsxsql/PROJECT_EVALUATION.md
T
logan e45fbf3586 docs: update PROJECT_EVALUATION/TDD_PLAN/ROADMAP for Phase 3
- Score: 6.2 -> 7.6 (+1.4)
- Security: 5 -> 8 (+3.0, biggest jump)
- Tests: 44 -> 85 (41 new)
- Next: Phase 4 (SQL AST, rule CRUD, Alembic)
2026-05-22 13:11:12 +08:00

142 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Web-Lite 数据审核平台 - 项目评估
> 评估日期: 2025-05-22
> 评估版本: v0.3.0 (Phase 1+2+3 已完成)
---
## 一、项目概况
| 项目 | 说明 |
|------|------|
| 项目名 | Web-Lite 数据审核平台 (sql-platform) |
| 定位 | SQL 审核与工单管理平台(对标 Yearning/Archery) |
| 路径 | ~/devops/sql-platform |
| 前端 | React 19 + TS + Vite 7 + Tailwind + shadcn/ui |
| 后端 | FastAPI + SQLAlchemy 2 async + SQLite |
| 状态 | **Phase 3 完成** — 85 测试通过,AES 加密 + SQL 审核引擎 + 审计日志 |
---
## 二、功能完成度
### 后端 API (完成度: 75%)
| 模块 | 端点数 | 状态 | 说明 |
|------|--------|------|------|
| 认证 auth | 3 | ✅ 完成 | login/me/logout,JWT+bcrypt |
| 用户 users | 5 | ✅ 完成 | CRUD,admin 权限控制 |
| 数据源 instances | 7 | ✅ 完成 | CRUD+测试连接+列库+列表,**密码 AES 加密** |
| 工单 tickets | 6 | ✅ 完成 | 列表+创建+详情+审核+执行+统计,**自动 SQL 审核** |
| 查询 query | 1 | ✅ 完成 | MySQL 查询,SQL 关键词防护 |
| 仪表盘 dashboard | 1 | ✅ 完成 | 统计聚合 |
| **审计日志 audit** | 1 | ✅ **新增** | GET /audit/logs,分页+过滤 |
| 审核规则管理 | 0 | ❌ 缺失 | 无后端 API(审核引擎是内置的) |
| 工作流 | 0 | ❌ 缺失 | 无后端 API |
| 数据权限 | 0 | ❌ 缺失 | 无后端 API |
| 公告管理 | 0 | ❌ 缺失 | 无后端 API |
| 自动任务 | 0 | ❌ 缺失 | 无后端 API |
### 核心引擎 (完成度: 70%)
| 引擎 | 状态 | 说明 |
|------|------|------|
| SQL 审核引擎 | ✅ 完成 | 10 条内置规则(WHERE检查、DROP拦截、生产加固等) |
| 密码加密引擎 | ✅ 完成 | AES-256-GCM,向后兼容明文 |
| 审计日志引擎 | ✅ 完成 | 全操作覆盖(instance/user/ticket/query) |
| 工单流引擎 | ✅ 完成 | pending→approved→executing→success/failed |
### 前端页面 (完成度: 70%)
| 页面 | 路由 | 状态 | 数据来源 |
|------|------|------|----------|
| 登录 | /login | ✅ 完成 | 真实 API |
| 仪表盘 | /dashboard | ✅ 完成 | 真实 API |
| 工单管理 | /tickets | ✅ 完成 | 真实 API |
| 查询审计 | /queries | ✅ 完成 | 真实 API |
| 数据源管理 | /mysql, /postgres, /redis, /mongo | ✅ 完成 | 真实 API |
| 用户管理 | /users | ✅ 完成 | 真实 API |
| **审计日志** | /audit-logs | ✅ **新增** | 真实 API |
| 角色管理 | /roles | 🔶 UI 骨架 | mock |
| 数据权限 | /data-permission | 🔶 UI 骨架 | mock |
| 审核规则 | /audit-rules | 🔶 UI 骨架 | mock |
| 工作流 | /workflow | 🔶 UI 骨架 | mock |
| 自动任务 | /auto-task | 🔶 UI 骨架 | mock |
| 公告管理 | /announcement | 🔶 UI 骨架 | mock |
| 平台配置 | /config-platform | 🔶 UI 骨架 | mock |
---
## 三、代码质量评估
### ✅ 优点
1. **架构清晰** — 后端分层 (models → schemas → services → endpoints),前端分层 (api → hooks → pages)
2. **现代技术栈** — FastAPI async、React 19、TypeScript 严格模式
3. **安全体系完善** — JWT + bcrypt + AES-256-GCM + 角色权限 + CORS + SQL 审核引擎
4. **UI 统一美观** — shadcn/ui + dark/light 主题 + CSS 变量体系完善
5. **测试覆盖充分** — 85 个测试覆盖 9 个模块,TDD 驱动
6. **SQL 审核引擎** — 10 条规则 + 评分系统 + 环境感知(production 更严格)
7. **审计日志完整** — 所有写操作(CRUD + 审核 + 执行 + 查询)均记录
### ⚠️ 待改进
| # | 级别 | 问题 | 影响 | 建议 |
|---|------|------|------|------|
| 1 | ~~严重~~ ✅ | ~~Instance.password 明文存储~~ | ~~已 AES-256-GCM 加密~~ | v0.3.0 已完成 |
| 2 | ~~高~~ ✅ | ~~无 SQL 审核引擎~~ | ~~10 条规则引擎已完成~~ | v0.3.0 已完成 |
| 3 | ~~高~~ ✅ | ~~无操作审计日志~~ | ~~全操作覆盖~~ | v0.3.0 已完成 |
| 4 | **高** | SQL 注入防护仅关键词匹配 | 绕过风险 | SQL AST 解析 (sqlparse) |
| 5 | **中** | 只支持 MySQL 查询 | 功能限制 | 按需扩展 PG |
| 6 | **中** | 审核规则硬编码 | 无法动态配置 | 规则 CRUD API |
| 7 | **中** | 前端 mock.ts 文件过大 | 维护困难 | 按模块拆分 |
| 8 | **中** | 无数据库迁移工具 | Schema 变更管理 | 引入 Alembic |
| 9 | **低** | package.json name 为 "my-app" | 不专业 | 改为 sql-platform |
| 10 | **低** | backend venv 提交到 git | 仓库膨胀 | .gitignore 排除 |
---
## 四、风险评估
| 风险 | 概率 | 影响 | 缓解措施 |
|------|------|------|----------|
| SQL 关键词过滤被绕过 | 高 | 高 | 引入 sqlparse 做 AST 解析 |
| SQLite 并发瓶颈 | 低 | 中 | 后续支持 MySQL/PG |
| 审核规则无法动态配置 | 中 | 中 | Phase 4 实现规则管理 API |
| 前端状态管理缺失 | 低 | 低 | 目前 useState 够用 |
---
## 五、项目评分
| 维度 | v0.2.0 | v0.3.0 | 变化 | 说明 |
|------|--------|--------|------|------|
| 架构设计 | 8 | **8.5** | +0.5 | 审核引擎+加密层+审计服务分层清晰 |
| 代码质量 | 7 | **8** | +1.0 | 85 测试(+41),9 个测试模块 |
| 功能完成度 | 6 | **7.5** | +1.5 | 加密+审核引擎+审计日志+前端审计页 |
| 安全性 | 5 | **8** | +3.0 | AES-256-GCM + SQL 审核引擎 + 审计追踪 |
| 可维护性 | 7 | **7.5** | +0.5 | 服务层独立(crypto/audit_engine/audit_log) |
| UI/UX | 8 | **8** | - | 新增审计日志页面 |
| 生产就绪度 | 4 | **5.5** | +1.5 | 密码加密+审核引擎+审计日志,但缺部署配置 |
| **综合** | **6.2** | **7.6** | **+1.4** | 安全性和功能完成度大幅提升 |
---
## 六、下一步行动 (优先级排序)
### Phase 4 — 核心功能补全
1. 🔴 **SQL AST 解析** — 用 sqlparse 替换关键词匹配,防注入更可靠
2. 🔴 **审核规则管理 API** — 规则 CRUD + 启用/禁用 + 自定义规则
3. 🟡 **Alembic 数据库迁移** — Schema 版本管理
4. 🟡 **权限矩阵细化** — 数据源级权限、字段级脱敏
5. 🟡 **多数据库支持** — PostgreSQL 查询+执行
### Phase 5 — 生产化
6. 🟡 **Docker 部署** — Dockerfile + docker-compose
7. 🟡 **邮件/飞书通知** — 工单状态变更推送
8. 🟢 **慢查询日志** — 记录执行超过阈值的 SQL
9. 🟢 **数据库探针** — 实例健康监控
10. 🟢 **数据导出** — 查询结果 CSV/Excel 导出