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

6.3 KiB
Raw Blame History

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 — 生产化

  1. 🟡 Docker 部署 — Dockerfile + docker-compose
  2. 🟡 邮件/飞书通知 — 工单状态变更推送
  3. 🟢 慢查询日志 — 记录执行超过阈值的 SQL
  4. 🟢 数据库探针 — 实例健康监控
  5. 🟢 数据导出 — 查询结果 CSV/Excel 导出