# SQL-Platform-Pro 功能清单 > 生成时间: 2026-05-25 | 版本: v1.1 ## ✅ 已完成功能 ### 一、核心功能 #### 1. 自助查询 (QueriesPage) - [x] 多数据库类型查询 (MySQL/PostgreSQL/Redis/MongoDB) - [x] CodeMirror 6 SQL 编辑器 (语法高亮 + 自动补全) - [x] SQL 模板库 (13 个预置模板,按 DB 类型适配) - [x] Ctrl+Enter 执行 / Ctrl+Shift+F 格式化 - [x] 查询结果表格 (点击单元格弹详情 + JSON 格式化) - [x] 查询历史记录 (500 条/用户上限) - [x] 收藏查询 / 快捷查询 - [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合) — **已加宽 (grid-cols-5 2:3 布局)** - [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE) — **onInsert prop** - [x] 两阶段 schema 加载 (选实例加载表名, 选库加载列名) - [x] 数据库品牌图标 (techicons.dev SVG) - [x] 实例按权限组过滤 (/instances/accessible?access_type=readonly) #### 2. 数据变更审批流 (TicketsPage + TicketCreatePage) - [x] 工单创建 — 单页面一键提交 (原三步向导已简化) - [x] DB 类型按频率排序 (MySQL → Redis → PostgreSQL → MongoDB) - [x] 选择 DB 类型后自动筛选目标实例 - [x] 库表浏览面板 (点击展开库/表/字段,辅助填写目标库) - [x] Redis 目录树按 `:` 分隔构建层级 - [x] 工单编号生成 (20位: 时间戳+微秒+序号) - [x] 工单状态机 (pending → reviewing → approved → **scheduled** → executing → success/failed) - [x] 多步审批流 (standard / parallel / any_one / condition) - [x] 审批人限定 (必须在权限组成员中) - [x] 工单撤销 (pending/reviewing 状态可撤销) - [x] 执行结果结构化展示 (状态/行数/耗时/验证/错误/警告) - [x] 当前审核人显示 - [x] 工单快速筛选 (待审批/进行中/已完成/已拒绝) - [x] 实例按 DB 类型筛选 - [x] Redis 目录树浏览 + 点击插入命令 - [x] MongoDB 集合浏览 + 点击插入命令 - [x] SQL 提交前强制审核规则检查 #### 3. SQL 审核引擎 - [x] 127 条审核规则 (MySQL 67 / PostgreSQL 31 / Redis 25 / MongoDB 31) - [x] 6 个分组 (DDL/DML/DCL/DQL/security/performance) - [x] MySQL 安全规则 SEC-001~009 - [x] Redis 规则去重优化 (CMD-001 覆盖 SEC-003) - [x] 规则 CRUD (创建/读取/更新/删除/开关) - [x] 规则统计和筛选 - [x] 评分系统 (severity: error/warning/info) #### 3.1 SQL 检测按钮 (TicketCreatePage) - [x] 提交按钮旁新增「SQL 检测」按钮 - [x] 验证通过前提交按钮置灰 + 提示文字 - [x] SQL 内容变化自动重置验证状态 - [x] 定时时间显示为醒目红色字体 #### 3.2 定时执行工单 (ticket_scheduler.py) - [x] 基于 APScheduler + SQLite 持久化的定时调度器 (`apscheduler.db`) - [x] Ticket 模型新增 `scheduled_at` 字段 - [x] 新增 `SCHEDULED` 状态 (approved ↔ scheduled → executing → success/failed) - [x] API: `GET /tickets/scheduled/list` 定时工单列表 - [x] API: `POST /tickets/{id}/cancel-schedule` 取消定时 - [x] API: `GET /tickets/scheduled/stats` 定时统计 - [x] 前端: TicketCreatePage 定时执行 datetime picker - [x] 前端: AutoTaskPage 定时任务管理页 #### 3.3 日志自动清理 (log_cleanup.py) - [x] 系统设置新增 `cleanup` 分组 (6 项配置) - [x] 启用自动清理开关 - [x] 清理执行时间 (默认凌晨 3 点) - [x] 工单保留天数 (默认 90 天) - [x] 审计日志保留天数 (默认 180 天) - [x] 查询历史保留天数 (默认 30 天) - [x] 定时任务日志保留天数 (默认 30 天) - [x] 只清理已完成/已拒绝的工单,0 天 = 不清理 - [x] API: `POST /settings/cleanup/run` 手动触发清理 - [x] API: `GET /settings/cleanup/preview` 预览待清理数据 - [x] 前端: PlatformConfigPage 清理分组 + CleanupActions 预览/手动清理按钮 - [x] APScheduler cron job 每天 03:00 自动执行 #### 4. 审批流管理 (WorkflowPage) - [x] 审批流 CRUD (创建/编辑/删除) - [x] 步骤管理 (拖拽排序 + 类型选择) - [x] 3 种高级步骤类型 (parallel 会签 / any_one 或签 / condition 条件分支) - [x] 条件评估引擎 (sql_type/db_type/risk_level/priority) - [x] 超时检查 (timeout_hours + auto_approve_on_timeout) - [x] 默认审批流绑定 (is_default + is_active) ### 二、数据源管理 #### 5. 实例管理 (InstancePage) - [x] 实例 CRUD (4 种 DB 类型) - [x] 连接测试 (MySQL/PG/Redis/MongoDB/SQLite) - [x] 实例密码 AES-256-GCM 加密 (向后兼容明文) - [x] 卡片视图 + 列表视图 - [x] 按类型 Tab 筛选 (全部/MySQL/PostgreSQL/Redis/MongoDB) - [x] 品牌图标展示 - [x] 编辑弹框 (EditInstanceDialog 可复用) - [x] 克隆实例 (名称自动加 "-副本") - [x] 实例详情页 (6 tab: 概览/表/查询/用户/慢查询/进程) - [x] Redis 详情页 (4 tab: Keys/监控/CLI/性能) - [x] MongoDB 详情页 (数据库/集合/统计/查询CLI) #### 6. 库表浏览 - [x] MySQL: SHOW DATABASES → information_schema.TABLES → COLUMNS - [x] PostgreSQL: pg_database → pg_tables → column list - [x] Redis: CONFIG GET databases → db0~db{N} (无表概念) - [x] MongoDB: list_database_names → list_collection_names - [x] 统一走后端 listDatabases/listTables API ### 三、权限与安全 #### 7. 权限管理 (InstanceGroupPage) - [x] 权限组 CRUD - [x] 2 种权限类型 (只读查看 / 写入变更) - [x] Transfer 穿梭框选择数据库 - [x] 用户-权限组关联 - [x] 实例-权限组关联 (中间表 instance_group_members) - [x] 7 个操作权限 action - [x] 角色权限映射 (admin/dba/auditor/developer) - [x] admin 也按权限组过滤 (无 bypass) #### 8. 用户管理 (UsersPage) - [x] 用户 CRUD (4 角色: admin/dba/auditor/developer) - [x] bcrypt 4.0 密码哈希 - [x] 默认用户种子数据 (4 个: admin/zhangsan/laoliu/lurenjia) - [x] guest 角色已彻底禁用 #### 9. 审计日志 (AuditLogsPage) - [x] 全操作审计日志 (实例/用户/工单/查询 CRUD) - [x] 日志筛选 (时间范围/用户/操作类型) - [x] auditor 角色只读访问 ### 四、系统设置 #### 10. 通知管理 (NotificationPage) - [x] 通知渠道配置 (DingTalk/Feishu/Email) - [x] 真实消息发送 (非模拟) - [x] 通知模板 (创建/通过/拒绝/执行完成) - [x] 钉钉/飞书换行适配 - [x] 测试发送功能 #### 11. 系统配置 (PlatformConfigPage) - [x] 18 项配置 (查询控制 7 + 安全 3 + 工单 2 + **清理 6**) - [x] 分组卡片布局 (布尔→开关/整数→数字/字符串→文本) - [x] 批量保存 + 变更指示 + 重置默认值 - [x] 查询接口集成 (审批检查/长度检查) - [x] **设置种子数据机制** (`settings_seeds.py` 统一管理所有设置项) - [x] **`_ensure_settings` 启动时自动补缺失配置** - [x] **`SETTING_GROUPS` 分组元信息** #### 12. 公告管理 (AnnouncementPage) - [x] 公告 CRUD (Markdown 内容) - [x] 发布/撤回状态管理 #### 13. 审核规则管理 (AuditRulesPage) - [x] 规则列表 (6 组 Tab: DDL/DML/DCL/DQL/security/performance) - [x] 规则开关 (toggle) - [x] 规则统计 - [x] 按数据库类型筛选 - [x] 规则种子 (POST /audit-rules/seed/{db_type}) ### 五、基础设施 #### 14. 前端优化 - [x] React.lazy 代码分割 (18 页面懒加载) - [x] Vite manualChunks (vendor 拆分) - [x] 首屏 -44% (2676KB → 1438KB) - [x] 暗色主题 (--dg- CSS 变量体系) - [x] 响应式布局 - [x] 骨架屏加载动画 - [x] 确认弹框 (useConfirm hook, 替代浏览器 confirm) - [x] Toast 通知 (右下角 3 秒消失) #### 15. 后端基础设施 - [x] JWT 认证 (30 分钟过期) - [x] run.sh PID 管理脚本 (start/stop/restart/status/logs/build/test) - [x] Alembic 数据库迁移 - [x] Docker + docker-compose 部署 - [x] CORS 策略 - [x] 请求日志中间件 ## 🔨 开发中 / 待实现 ### 短期 (P1) - [ ] 通知功能前端页面完善 - [ ] 两个页面 Redis 树抽取为共享组件 - [ ] LDAP 认证对接 (后端已有 LdapConfig 模型) ### 中期 (P2) - [ ] Schema 漂移检测 (后端有 SchemaSnapshot/SchemaDrift 模型) - [ ] 快照对比可视化 - [ ] 数据脱敏规则 (MaskingRule 模型) - [ ] SQL 格式化后端 (sqlparse) - [ ] EXPLAIN 真实解析 - [ ] 慢查询实时推送 (WebSocket) - [ ] CSV 导出功能对接 ### 远期 (P3) - [ ] 库级权限控制 - [ ] 查询审批工作流 - [ ] 多租户支持 - [ ] 审批流模板持久化 - [ ] 集群模式支持 ## 📊 项目统计 || 指标 | 数值 | ||------|------| || 总提交 | 56+ | || 源文件 | 328+ | || 后端代码 | ~23,000 行 Python | || 前端代码 | ~15,000 行 TypeScript/TSX | || API 路由 | 152+ 条 | || 测试用例 | 1,075+ 个 | || 数据库表 | 28+ 张 | || ORM 模型 | 22+ 个 | || 前端页面 | 26+ 个 | || 审核规则 | 127 条 | || 系统配置 | 18 项 | || 定时调度 | APScheduler + SQLite 持久化 | ## 🏗️ 数据库连接器支持矩阵 | 数据库 | 连接库 | 查询 | 执行 | 审核 | 库表浏览 | |--------|--------|------|------|------|----------| | MySQL | aiomysql | ✅ | ✅ | ✅ (67规则) | ✅ | | PostgreSQL | asyncpg | ✅ | ✅ | ✅ (31规则) | ✅ | | Redis | redis.asyncio | ✅ | ✅ | ✅ (25规则) | ✅ (Keys树) | | MongoDB | pymongo | ✅ | ✅ | ✅ (31规则) | ✅ (集合) | | SQLite | sqlite3 | ✅ | — | — | — |