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 |
三、代码质量评估
✅ 优点
- 架构清晰 — 后端分层 (models → schemas → services → endpoints),前端分层 (api → hooks → pages)
- 现代技术栈 — FastAPI async、React 19、TypeScript 严格模式
- 安全体系完善 — JWT + bcrypt + AES-256-GCM + 角色权限 + CORS + SQL 审核引擎
- UI 统一美观 — shadcn/ui + dark/light 主题 + CSS 变量体系完善
- 测试覆盖充分 — 85 个测试覆盖 9 个模块,TDD 驱动
- SQL 审核引擎 — 10 条规则 + 评分系统 + 环境感知(production 更严格)
- 审计日志完整 — 所有写操作(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 — 核心功能补全
- 🔴 SQL AST 解析 — 用 sqlparse 替换关键词匹配,防注入更可靠
- 🔴 审核规则管理 API — 规则 CRUD + 启用/禁用 + 自定义规则
- 🟡 Alembic 数据库迁移 — Schema 版本管理
- 🟡 权限矩阵细化 — 数据源级权限、字段级脱敏
- 🟡 多数据库支持 — PostgreSQL 查询+执行
Phase 5 — 生产化
- 🟡 Docker 部署 — Dockerfile + docker-compose
- 🟡 邮件/飞书通知 — 工单状态变更推送
- 🟢 慢查询日志 — 记录执行超过阈值的 SQL
- 🟢 数据库探针 — 实例健康监控
- 🟢 数据导出 — 查询结果 CSV/Excel 导出