feat: 查询页面重构 — 去掉新建查询按钮, 默认直接显示编辑器 + 右侧历史抽屉
1. QueriesPage 重构: - 去掉两段式切换(历史列表→新建查询面板) - 默认直接显示 SQL 编辑器,无需点'新建查询' - 实例+数据库选择器紧凑排列在顶栏 - 执行按钮移到顶栏右侧,操作更便捷 - 查询历史改为右侧可折叠抽屉(点击'历史'按钮展开) - 全高布局 h-[calc(100vh-3rem)],编辑区和结果区更宽敞 - Schema 导航侧边栏、快捷模板、CSV导出等保留 2. 文档更新: - FEATURES.md: 补充定时执行、SQL检测、日志清理、系统设置种子机制 - ARCHITECTURE.md: 补充 APScheduler+SQLite 持久化调度、日志清理服务、Settings Seeds - ROADMAP.md: 标记已完成功能,更新P1-P3进度 - AUDIT_REPORT.md: 更新服务/文件/测试数量统计
This commit is contained in:
1 parent
00db0e5bca
commit
0995abce08
5 files changed
+534
-727
No files matched your search
+57
-20
@@ -1,6 +1,6 @@
|
||||
# SQL-Platform-Pro 功能清单
|
||||
|
||||
> 生成时间: 2026-05-24 | 版本: v1.0
|
||||
> 生成时间: 2026-05-25 | 版本: v1.1
|
||||
|
||||
## ✅ 已完成功能
|
||||
|
||||
@@ -14,16 +14,20 @@
|
||||
- [x] 查询结果表格 (点击单元格弹详情 + JSON 格式化)
|
||||
- [x] 查询历史记录 (500 条/用户上限)
|
||||
- [x] 收藏查询 / 快捷查询
|
||||
- [x] Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合)
|
||||
- [x] Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE)
|
||||
- [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] 工单创建 — 单页面一键提交 (原三步向导已简化)
|
||||
- [x] DB 类型按频率排序 (MySQL → Redis → PostgreSQL → MongoDB)
|
||||
- [x] 选择 DB 类型后自动筛选目标实例
|
||||
- [x] 库表浏览面板 (点击展开库/表/字段,辅助填写目标库)
|
||||
- [x] Redis 目录树按 `:` 分隔构建层级
|
||||
- [x] 工单编号生成 (20位: 时间戳+微秒+序号)
|
||||
- [x] 工单状态机 (pending → reviewing → approved → executing → success/failed)
|
||||
- [x] 工单状态机 (pending → reviewing → approved → **scheduled** → executing → success/failed)
|
||||
- [x] 多步审批流 (standard / parallel / any_one / condition)
|
||||
- [x] 审批人限定 (必须在权限组成员中)
|
||||
- [x] 工单撤销 (pending/reviewing 状态可撤销)
|
||||
@@ -44,6 +48,36 @@
|
||||
- [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] 步骤管理 (拖拽排序 + 类型选择)
|
||||
@@ -107,10 +141,13 @@
|
||||
- [x] 测试发送功能
|
||||
|
||||
#### 11. 系统配置 (PlatformConfigPage)
|
||||
- [x] 12 项配置 (查询控制 7 + 安全 3 + 工单 2)
|
||||
- [x] 18 项配置 (查询控制 7 + 安全 3 + 工单 2 + **清理 6**)
|
||||
- [x] 分组卡片布局 (布尔→开关/整数→数字/字符串→文本)
|
||||
- [x] 批量保存 + 变更指示 + 重置默认值
|
||||
- [x] 查询接口集成 (审批检查/长度检查)
|
||||
- [x] **设置种子数据机制** (`settings_seeds.py` 统一管理所有设置项)
|
||||
- [x] **`_ensure_settings` 启动时自动补缺失配置**
|
||||
- [x] **`SETTING_GROUPS` 分组元信息**
|
||||
|
||||
#### 12. 公告管理 (AnnouncementPage)
|
||||
- [x] 公告 CRUD (Markdown 内容)
|
||||
@@ -146,7 +183,6 @@
|
||||
## 🔨 开发中 / 待实现
|
||||
|
||||
### 短期 (P1)
|
||||
- [ ] 自动化任务前端 (AutoTaskPage.tsx + api/autoTask.ts)
|
||||
- [ ] 通知功能前端页面完善
|
||||
- [ ] 两个页面 Redis 树抽取为共享组件
|
||||
- [ ] LDAP 认证对接 (后端已有 LdapConfig 模型)
|
||||
@@ -169,19 +205,20 @@
|
||||
|
||||
## 📊 项目统计
|
||||
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| 总提交 | 56 |
|
||||
| 源文件 | 326 |
|
||||
| 后端代码 | ~22,000 行 Python |
|
||||
| 前端代码 | ~14,000 行 TypeScript/TSX |
|
||||
| API 路由 | 146 条 |
|
||||
| 测试用例 | 1,075 个 |
|
||||
| 数据库表 | 28 张 |
|
||||
| ORM 模型 | 22 个 |
|
||||
| 前端页面 | 26 个 |
|
||||
| 审核规则 | 127 条 |
|
||||
| 系统配置 | 12 项 |
|
||||
|| 指标 | 数值 |
|
||||
||------|------|
|
||||
|| 总提交 | 56+ |
|
||||
|| 源文件 | 328+ |
|
||||
|| 后端代码 | ~23,000 行 Python |
|
||||
|| 前端代码 | ~15,000 行 TypeScript/TSX |
|
||||
|| API 路由 | 152+ 条 |
|
||||
|| 测试用例 | 1,075+ 个 |
|
||||
|| 数据库表 | 28+ 张 |
|
||||
|| ORM 模型 | 22+ 个 |
|
||||
|| 前端页面 | 26+ 个 |
|
||||
|| 审核规则 | 127 条 |
|
||||
|| 系统配置 | 18 项 |
|
||||
|| 定时调度 | APScheduler + SQLite 持久化 |
|
||||
|
||||
## 🏗️ 数据库连接器支持矩阵
|
||||
|
||||
|
||||
Reference in new issue
Block a user