sync: 同步 sql-platform-pro 最新代码 — 权限体系安全修复 v0.8.1

- P0: 实例访问控制全线接入权限组 (829测试)
- P1: permissions字段激活 + 操作级权限检查 (843测试)
- 前端: 删除数据权限页面, 权限组合并为唯一入口
- 新增: CodeMirror编辑器 + 查询模板 + 慢查询分析
- 新增: MongoDB管理页面 + Dashboard增强
- 修复: Pydantic V2迁移 + 前端TS错误修复
This commit is contained in:
logan committed 2026-05-23 14:41:06 +08:00
1 parent 6fcd9465cf
commit 4c9427e546
105 files changed
+23680 -471

No files matched your search

+53 -121
View File
@@ -1,132 +1,64 @@
# SQL-Platform 数据审核平台 - 开发路线图
# SQL Audit Platform Roadmap
> 项目路径: ~/devops/sql-platform
> 创建时间: 2025-05-22
> 当前版本: v0.4.0
## 当前版本: v0.8.1
---
## 已完成
## 技术栈
### Phase 1-7 (v0.1.0 ~ v0.7.0)
- 基线版本 + 权限组 + 审批流 + 多数据库查询/执行引擎
- 后端测试: 808/808 全部通过
- 前端: 27 个页面, 构建零错误
| 层 | 技术 |
|---|---|
| **前端** | React 19 + TypeScript 5.9 + Vite 7 + Tailwind CSS 3.4 + shadcn/ui + ECharts 6 |
| **后端** | FastAPI + SQLAlchemy 2 (async) + Pydantic 2 + python-jose + passlib |
| **数据库** | SQLite (开发) / 目标 MySQL/PostgreSQL (生产) |
| **部署** | Docker Compose |
### v0.8.1 — 技术债务清理
- ✅ Pydantic V2 完整迁移: 13个schema + config.py, 消除14个deprecation警告
- ✅ 前端TypeScript编译修复: SqlEditor SQLDialect, AuditLogsPage类型转换, QueriesPage未用import
- ✅ 后端测试: 843/843 通过, 0 warnings
- ✅ 前端构建: 零错误
---
### P0 — 数据库全景支持 ✅
- ✅ 统一查询服务: POST /query 自动路由 MySQL/PostgreSQL/Redis/MongoDB
- ✅ query_service.py: 完整 4 种数据库 Handler (MySQL/PostgreSQL/Redis/MongoDB)
- ✅ Redis 只读命令白名单: 40+ 只读命令 + 子命令验证 (CONFIG GET/MEMORY USAGE/OBJECT)
- ✅ MongoDB 只读操作白名单: find/findOne/countDocuments/distinct/aggregate + $out/$merge 防护
- ✅ 工单执行多数据库分发: ticket_executor.py 支持 MySQL/PostgreSQL/Redis/MongoDB 执行
- ✅ MongoDB 连接器: mongo_connector.py 780 行, 完整 CRUD + 统计 + 安全验证
- ✅ MongoDB 前端管理页面: MongoDBDetailPage.tsx (集合管理/文档浏览/查询控制台/统计信息)
- ✅ mongo API 模块: frontend/src/api/mongo.ts
- ✅ /mongo/:id 路由集成 + InstancePage 管理控制台跳转按钮
- ✅ 数据源品牌图标: MySQL/PostgreSQL/Redis/MongoDB SVG logos
## 版本规划
### P1 — 审计闭环 (部分完成)
- ✅ 查询历史服务: query_history_service.py (记录/收藏/快捷查询)
- ✅ SQL 助手: sql_assistant.py (格式化/风险高亮/EXPLAIN 解析)
- ✅ 审计规则种子: MySQL 18规则 + PostgreSQL 12规则 + Redis 8规则
- ✅ 审计日志全操作覆盖
- ✅ 影响分析: impact_analyzer.py
- ✅ 回滚生成: rollback_generator.py
- ✅ Schema 漂移检测: schema_drift_detector.py
### v0.3.0 — 安全加固 + SQL 审核引擎 ✅
### P2 — 高级功能 (部分完成)
- ✅ 数据脱敏: data_masker.py + masking_rule CRUD
- ✅ 通知服务: 钉钉/飞书/邮件 SMTP
- ✅ 备份管理: backup_executor.py
- ✅ 工作流引擎: workflow_engine.py + workflow_seeds.py
- ✅ 慢日志收集: slow_log_collector.py
- ✅ 连接池: connection_pool.py
- [x] **AES-256-GCM 密码加密** — 实例密码加密存储,向后兼容明文
- [x] **SQL 审核规则引擎** — 10 条内置规则 + 评分系统
- UPDATE/DELETE 无 WHERE → ERROR
- DROP TABLE / TRUNCATE → WARNING / ERROR (生产)
- ALTER TABLE (生产) → ERROR
- SELECT * → INFO
- 多语句 → ERROR
- 大 IN 子句 → WARNING
- JOIN 无 ON → WARNING
- LIKE '%...' → INFO
- [x] **自动审核集成** — 工单提交时自动 SQL 审核 + 评分
- [x] **操作审计日志** — 全操作覆盖 (instance/user/ticket/query)
- [x] **审计日志 API** — GET /audit/logs (admin/dba)
- [x] **审计日志前端页** — /audit-logs 分页+过滤
- [x] **85 个测试通过** — 44 (Phase 1) + 41 (Phase 3)
## 待完成
### v0.2.0 — 前后端对接 ✅
### P1 — 审计闭环
- [ ] 执行前后数据快照对比可视化 (前端)
- [ ] 快捷查询模板 (10个预置 + 自定义共享)
- [ ] SQL 格式化前端集成 (CodeMirror / Monaco editor)
- [ ] 查询结果格式化展示优化
- [x] Vite proxy 配置 (/api → localhost:9000)
- [x] Dashboard 对接真实 API
- [x] TicketsPage 全功能对接 (列表/创建/详情/审批/执行/统计)
- [x] InstancePage 对接 (CRUD+连接测试)
- [x] UsersPage 对接 (CRUD+新建弹窗)
- [x] QueriesPage 对接 (在线查询)
- [x] 前端 TypeScript 编译零错误
- [x] 44 个后端测试全通过
### P2 — 人性化设计
- [ ] SQL 语法高亮编辑器
- [ ] 数据库类型说明 API
- [ ] Slow query analysis 前端集成
- [ ] Dashboard 数据源健康概览
### v0.1.0 — 基础骨架 ✅
**后端 API 已实现:**
- [x] JWT 认证 (login/logout/me)
- [x] 用户 CRUD (admin only)
- [x] 数据源实例 CRUD + 连接测试 + 列库/列表
- [x] 工单全流程 (创建/审核/执行) + 统计
- [x] SQL 查询执行 + 审计日志
- [x] Dashboard 统计接口
- [x] 角色权限 (admin/dba/developer/guest)
**前端已实现:**
- [x] 登录页 + 路由守卫
- [x] Dashboard 仪表盘 (统计卡片 + ECharts 趋势图 + 实例状态 + 待处理工单)
- [x] 工单管理页 (列表/筛选/详情/新建/审批)
- [x] 查询审计页 (列表/筛选/详情/新建查询)
- [x] 数据源管理页 (MySQL/PG/Redis/Mongo 实例)
- [x] 用户管理 / 角色管理 / 数据权限 / 审核规则 / 工作流 / 自动任务 / 公告管理 / 平台配置 页面骨架
- [x] API 层 (request.ts + 5 个模块 API)
- [x] Mock 数据层 (lib/mock.ts)
- [x] 主题切换 (dark/light)
### v0.2.0 — 前后端打通 + 核心功能完善 ✅
**已完成:**
- [x] **44 个后端 API 测试全部通过** (pytest)
- auth: 8 (登录/登出/token验证/过期/禁用)
- users: 8 (CRUD/权限/删自己)
- instances: 8 (CRUD/连接测试mock/权限)
- tickets: 11 (列表过滤/CRUD/审批/拒绝/执行/统计/分页)
- query: 4 (SELECT/DROP拒绝/DELETE拒绝/guest禁止)
- dashboard: 2 (统计数据/未登录)
- [x] **前端对接真实 API** — 所有页面已替换 mock 数据
- Dashboard → `/api/v1/dashboard/stats`
- 工单 → `/api/v1/tickets` (列表/创建/详情/审批/执行/统计)
- 查询 → `/api/v1/query` (执行+结果展示+敏感字段脱敏)
- 实例 → `/api/v1/instances` (列表/创建/连接测试)
- 用户 → `/api/v1/users` (列表/创建/切换状态/删除)
- [x] **Vite proxy 配置** — `/api` → `http://localhost:9000`
- [x] **前端 TypeScript 编译通过** — build 无错误
**待完成:**
- [ ] **SQLite → MySQL** 生产数据库迁移支持
- [ ] **密码加密存储** — Instance.password 字段加密/解密
- [ ] **SQL 审核引擎** — 基于 AST 的 SQL 规则检查
- [ ] **工单自动审核** — 提交时自动跑审核规则
- [ ] **操作审计日志完善** — 所有关键操作记录 AuditLog
### v0.3.0 — 审核规则 + 工作流
- [ ] **审核规则管理** — 后端 CRUD API + 前端页面
- [ ] **工作流引擎** — 多级审批、条件审批
- [ ] **数据权限管理** — 库/表/列级权限控制
- [ ] **公告管理** — 后端 CRUD + WebSocket 实时推送
### v0.4.0 — 高级功能
- [ ] **SQL 编辑器** — Monaco Editor + 语法高亮 + 自动补全
- [ ] **慢查询分析** — 慢查询日志采集 + Explain 执行计划
- [ ] **数据脱敏** — 查询结果敏感字段自动脱敏
- [ ] **回滚执行** — 工单执行失败自动回滚
- [ ] **定时任务** — 自动任务管理 + 定时执行
### v0.5.0 — 生产就绪
- [ ] **多数据库支持** — PostgreSQL / Redis / MongoDB 实际连接
- [ ] **WebSocket 通知** — 实时工单状态推送
- [ ] **LDAP/SSO 集成**
- [ ] **数据库切换** — 支持 MySQL/PostgreSQL 作为后端存储
- [ ] **Docker 生产部署** — Nginx 反向代理 + 多阶段构建
- [ ] **单元测试 + E2E 测试** — 覆盖率 > 60%
---
## 里程碑时间线
| 版本 | 目标日期 | 关键交付 |
|------|---------|---------|
| v0.2.0 | 2025-06-05 | 前后端打通,核心功能可用 |
| v0.3.0 | 2025-06-20 | 审核规则+工作流完善 |
| v0.4.0 | 2025-07-10 | SQL 编辑器+高级功能 |
| v0.5.0 | 2025-07-30 | 生产就绪 |
### 运维
- [ ] 远程 Git 仓库配置
- [ ] CI/CD 完整流水线测试
- [ ] 生产环境部署文档