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
+466
-659
No files matched your search
+86
-30
@@ -1,6 +1,6 @@
|
||||
# SQL-Platform-Pro 系统架构文档
|
||||
|
||||
> 生成时间: 2026-05-24 | 最新 Commit: 9813741
|
||||
> 生成时间: 2026-05-25 | 最新 Commit: 9813741+
|
||||
|
||||
## 1. 系统定位
|
||||
|
||||
@@ -8,16 +8,17 @@
|
||||
|
||||
## 2. 技术栈
|
||||
|
||||
| 层级 | 技术 | 版本 |
|
||||
|------|------|------|
|
||||
| 后端框架 | FastAPI + SQLAlchemy 2 async | Python 3.11+ |
|
||||
| 数据库 | SQLite (开发) | aiomysql / asyncpg / redis.asyncio / pymongo |
|
||||
| 前端框架 | React 19 + TypeScript | Vite 7 |
|
||||
| UI 组件 | shadcn/ui + Tailwind CSS 4 | Radix UI |
|
||||
| 代码编辑器 | CodeMirror 6 | @codemirror/lang-sql |
|
||||
| 图表 | Recharts | — |
|
||||
| 认证 | JWT (30min) + bcrypt 4.0 | — |
|
||||
| 部署 | Docker + docker-compose | run.sh PID 管理 |
|
||||
|| 层级 | 技术 | 版本 |
|
||||
||------|------|------|
|
||||
|| 后端框架 | FastAPI + SQLAlchemy 2 async | Python 3.11+ |
|
||||
|| 数据库 | SQLite (开发) | aiomysql / asyncpg / redis.asyncio / pymongo |
|
||||
|| 定时调度 | APScheduler 3.11.2 + SQLite 持久化 | apscheduler.db |
|
||||
|| 前端框架 | React 19 + TypeScript | Vite 7 |
|
||||
|| UI 组件 | shadcn/ui + Tailwind CSS 4 | Radix UI |
|
||||
|| 代码编辑器 | CodeMirror 6 | @codemirror/lang-sql |
|
||||
|| 图表 | Recharts | — |
|
||||
|| 认证 | JWT (30min) + bcrypt 4.0 | — |
|
||||
|| 部署 | Docker + docker-compose | run.sh PID 管理 |
|
||||
|
||||
## 3. 系统架构图
|
||||
|
||||
@@ -27,23 +28,29 @@
|
||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||
│ │ Dashboard │ │ Queries │ │ Tickets │ │ Instances│ │
|
||||
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
|
||||
│ ┌──────┴──────┐ ┌────┴─────┐ ┌───┴──────┐ │
|
||||
│ │ SchemaSide │ │ SqlEditor│ │ Workflow │ │
|
||||
│ │ bar(Redis树)│ │ (CM6) │ │ Page │ │
|
||||
│ └─────────────┘ └──────────┘ └──────────┘ │
|
||||
│ ┌──────┴──────┐ ┌────┴─────┐ ┌───┴──────┐ ┌──┴───────┐ │
|
||||
│ │ SchemaSide │ │ SqlEditor│ │ Workflow │ │AutoTask │ │
|
||||
│ │ bar(Redis树)│ │ (CM6) │ │ Page │ │Page │ │
|
||||
│ └─────────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
||||
│ ↕ axios /api/v1 │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 后端 (FastAPI) │
|
||||
│ ┌────────────────────────────────────────────────────┐ │
|
||||
│ │ API Layer (29 endpoints) │ │
|
||||
│ │ API Layer (29+ endpoints) │ │
|
||||
│ │ auth | user | instance | ticket | query | audit │ │
|
||||
│ │ audit_rule | notification | workflow | settings │ │
|
||||
│ │ ticket_scheduler | log_cleanup │ │
|
||||
│ └──────────────────────┬─────────────────────────────┘ │
|
||||
│ ┌──────────────────────┴─────────────────────────────┐ │
|
||||
│ │ Service Layer (31 services) │ │
|
||||
│ │ Service Layer (33+ services) │ │
|
||||
│ │ query_service | audit_engine | ticket_executor │ │
|
||||
│ │ instance_service | notification_sender │ │
|
||||
│ │ approval_timeout | role_permissions │ │
|
||||
│ │ ticket_scheduler | log_cleanup | settings_seeds │ │
|
||||
│ └──────────────────────┬─────────────────────────────┘ │
|
||||
│ ┌──────────────────────┴─────────────────────────────┐ │
|
||||
│ │ Scheduler Layer (APScheduler) │ │
|
||||
│ │ 定时工单执行 | 日志自动清理 (cron 03:00) │ │
|
||||
│ └──────────────────────┬─────────────────────────────┘ │
|
||||
│ ┌──────────────────────┴─────────────────────────────┐ │
|
||||
│ │ Connector Layer │ │
|
||||
@@ -51,7 +58,7 @@
|
||||
│ │ redis_connector | mongo_connector │ │
|
||||
│ └──────────────────────┬─────────────────────────────┘ │
|
||||
│ ┌──────────────────────┴─────────────────────────────┐ │
|
||||
│ │ SQLite(metadata) | MySQL | PostgreSQL | Redis | MongoDB│
|
||||
│ │ SQLite(metadata) | apscheduler.db | MySQL | PostgreSQL | Redis | MongoDB│
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
@@ -133,6 +140,44 @@ ticket_executor.py → 按 instance.db_type 执行:
|
||||
→ ExecutionReport (status/affected_rows/duration/warnings/errors)
|
||||
```
|
||||
|
||||
### 4.6 定时调度器 (APScheduler)
|
||||
|
||||
```
|
||||
ticket_scheduler.py:
|
||||
├─ APScheduler BackgroundScheduler + SQLite 持久化 (apscheduler.db)
|
||||
├─ 工单 scheduled_at 到期 → 自动触发执行
|
||||
├─ 状态流转: approved → scheduled → executing → success/failed
|
||||
├─ 支持取消定时: POST /tickets/{id}/cancel-schedule
|
||||
└─ 统计接口: GET /tickets/scheduled/stats
|
||||
|
||||
log_cleanup.py:
|
||||
├─ APScheduler cron job → 每天 03:00 自动执行
|
||||
├─ 读取 cleanup 分组配置 (6 项)
|
||||
├─ 按保留天数清理:
|
||||
│ ├─ 工单 (只清理已完成/已拒绝, 0天=不清理)
|
||||
│ ├─ 审计日志
|
||||
│ ├─ 查询历史
|
||||
│ └─ 定时任务日志
|
||||
├─ 手动触发: POST /settings/cleanup/run
|
||||
└─ 预览: GET /settings/cleanup/preview
|
||||
```
|
||||
|
||||
### 4.7 系统设置种子机制
|
||||
|
||||
```
|
||||
settings_seeds.py:
|
||||
├─ SETTING_GROUPS: 分组元信息 (query_control / security / ticket / cleanup)
|
||||
├─ _ensure_settings(): 启动时自动补缺失配置项
|
||||
├─ SETTING_DEFINITIONS: 所有设置项定义 (key/value_type/default/group/label)
|
||||
└─ 新增 cleanup 分组 (6 项):
|
||||
├─ cleanup_enabled (bool, false)
|
||||
├─ cleanup_time (str, "03:00")
|
||||
├─ cleanup_ticket_days (int, 90)
|
||||
├─ cleanup_audit_days (int, 180)
|
||||
├─ cleanup_query_history_days (int, 30)
|
||||
└─ cleanup_task_log_days (int, 30)
|
||||
```
|
||||
|
||||
## 5. 数据模型
|
||||
|
||||
### 5.1 核心 ORM 模型 (22 个)
|
||||
@@ -142,7 +187,7 @@ ticket_executor.py → 按 instance.db_type 执行:
|
||||
| User | 用户 | username, password_hash, role, display_name |
|
||||
| Instance | 数据源实例 | name, host, port, db_type, access_mode, group_id |
|
||||
| InstanceGroup | 权限组 | name, description, access_type, workflow_id |
|
||||
| Ticket | 工单 | ticket_no, title, db_type, status, sql_content, audit_result |
|
||||
|| Ticket | 工单 | ticket_no, title, db_type, status, sql_content, audit_result, **scheduled_at** |
|
||||
| TicketApproval | 审批记录 | ticket_id, step_number, approver_id, action, step_type |
|
||||
| AuditLog | 审计日志 | user_id, action, resource_type, resource_id |
|
||||
| AuditRule | 审核规则 | name, code, db_type, rule_type, severity |
|
||||
@@ -245,7 +290,7 @@ Redis Keys 目录树:
|
||||
|
||||
## 8. 系统配置
|
||||
|
||||
12 项配置分 3 组:
|
||||
18 项配置分 4 组:
|
||||
|
||||
**查询控制 (7 项)**:
|
||||
- query_require_approval (bool) - 查询是否需要审批
|
||||
@@ -265,6 +310,14 @@ Redis Keys 目录树:
|
||||
- ticket_default_workflow (string, "standard") - 默认审批流
|
||||
- ticket_allow_rollback (bool) - 允许回滚
|
||||
|
||||
**清理配置 (6 项)** 🆕:
|
||||
- cleanup_enabled (bool, false) - 启用自动清理
|
||||
- cleanup_time (string, "03:00") - 清理执行时间
|
||||
- cleanup_ticket_days (int, 90) - 工单保留天数 (0=不清理)
|
||||
- cleanup_audit_days (int, 180) - 审计日志保留天数
|
||||
- cleanup_query_history_days (int, 30) - 查询历史保留天数
|
||||
- cleanup_task_log_days (int, 30) - 定时任务日志保留天数
|
||||
|
||||
## 9. 四角色体系
|
||||
|
||||
| 角色 | 权限范围 |
|
||||
@@ -296,13 +349,16 @@ docker-compose up -d # 部署
|
||||
|
||||
## 11. 关键设计决策
|
||||
|
||||
| 决策 | 原因 |
|
||||
|------|------|
|
||||
| SQLite 开发数据库 | 零配置,单文件,便于版本管理 |
|
||||
| AES-256-GCM 加密实例密码 | 安全存储,向后兼容明文 |
|
||||
| JWT 30分钟过期 | 安全与便利平衡 |
|
||||
| 暗色主题 CSS 变量体系 (--dg-) | 统一视觉风格 |
|
||||
| CodeMirror 6 | 现代化编辑器,SQL 自动补全 |
|
||||
| 权限组中间表设计 | 一组同时包含只读+写入实例 |
|
||||
| React.lazy 代码分割 | 首屏 -44% (2676KB→1438KB) |
|
||||
| 工单编号 20 位 | 时间戳+微秒+序号,全局唯一 |
|
||||
|| 决策 | 原因 |
|
||||
||------|------|
|
||||
|| SQLite 开发数据库 | 零配置,单文件,便于版本管理 |
|
||||
|| AES-256-GCM 加密实例密码 | 安全存储,向后兼容明文 |
|
||||
|| JWT 30分钟过期 | 安全与便利平衡 |
|
||||
|| 暗色主题 CSS 变量体系 (--dg-) | 统一视觉风格 |
|
||||
|| CodeMirror 6 | 现代化编辑器,SQL 自动补全 |
|
||||
|| 权限组中间表设计 | 一组同时包含只读+写入实例 |
|
||||
|| React.lazy 代码分割 | 首屏 -44% (2676KB→1438KB) |
|
||||
|| 工单编号 20 位 | 时间戳+微秒+序号,全局唯一 |
|
||||
|| APScheduler + SQLite 持久化 | 定时任务跨重启不丢失,轻量级方案 |
|
||||
|| 设置种子数据机制 | `_ensure_settings` 启动自动补全,保证配置完整性 |
|
||||
|| 工单创建页单页化 | 简化三步向导为一键提交,提升操作效率 |
|
||||
+26
-19
@@ -1,8 +1,8 @@
|
||||
# SQL-Platform-Pro 全面架构审计报告
|
||||
|
||||
> 生成时间: 2026-05-24
|
||||
> 生成时间: 2026-05-25
|
||||
> 项目路径: ~/devops/sql-platform
|
||||
> Git 总提交数: **56**
|
||||
> Git 总提交数: **56+**
|
||||
|
||||
---
|
||||
|
||||
@@ -10,15 +10,16 @@
|
||||
|
||||
### 1.1 技术栈
|
||||
|
||||
| 层级 | 技术 |
|
||||
|------|------|
|
||||
| 前端框架 | React 19 + TypeScript 5.9 + Vite 7 |
|
||||
| UI 组件库 | Radix UI + Tailwind CSS (shadcn/ui 风格) |
|
||||
| 后端框架 | FastAPI + SQLAlchemy 2 (异步) |
|
||||
| 数据库 | SQLite (开发) / 可切换 MySQL/PostgreSQL |
|
||||
| 多数据库支持 | MySQL (aiomysql), PostgreSQL (asyncpg), MongoDB (motor), Redis (redis) |
|
||||
| 容器化 | Docker Compose + Dockerfile (前后端) |
|
||||
| 数据库迁移 | Alembic |
|
||||
|| 层级 | 技术 |
|
||||
||------|------|
|
||||
|| 前端框架 | React 19 + TypeScript 5.9 + Vite 7 |
|
||||
|| UI 组件库 | Radix UI + Tailwind CSS (shadcn/ui 风格) |
|
||||
|| 后端框架 | FastAPI + SQLAlchemy 2 (异步) |
|
||||
|| 数据库 | SQLite (开发) / 可切换 MySQL/PostgreSQL |
|
||||
|| 多数据库支持 | MySQL (aiomysql), PostgreSQL (asyncpg), MongoDB (motor), Redis (redis) |
|
||||
|| 定时调度 | APScheduler 3.11.2 + SQLite 持久化 (apscheduler.db) |
|
||||
|| 容器化 | Docker Compose + Dockerfile (前后端) |
|
||||
|| 数据库迁移 | Alembic |
|
||||
|
||||
### 1.2 目录结构
|
||||
|
||||
@@ -220,8 +221,10 @@ sql-platform/
|
||||
| `audit_rule_seeds_v2.py` | **500** | 审核规则种子 V2 |
|
||||
| `instance_service.py` | **134** | 实例服务 |
|
||||
| `settings_seeds.py` | **136** | 设置种子数据 |
|
||||
| `workflow_seeds.py` | **93** | 工作流种子数据 |
|
||||
| `audit_log_service.py` | **78** | 审计日志服务 |
|
||||
|| `workflow_seeds.py` | **93** | 工作流种子数据 |
|
||||
|| `audit_log_service.py` | **78** | 审计日志服务 |
|
||||
|| `ticket_scheduler.py` 🆕 | ~200 | 定时工单调度 (APScheduler) |
|
||||
|| `log_cleanup.py` 🆕 | ~180 | 日志自动清理 (APScheduler cron) |
|
||||
|
||||
---
|
||||
|
||||
@@ -398,12 +401,16 @@ b39c426 fix: merge后14个测试修复+前端TS编译修复 - 895/895通过+前
|
||||
| 数据字典 | ✅ | ✅ | ✅ (7) | 🟢 完整 |
|
||||
| 回滚 SQL | ✅ | ✅ | ✅ (10) | 🟢 完整 |
|
||||
| EXPLAIN 分析 | ✅ | ✅ | ✅ (40) | 🟢 完整 |
|
||||
| SQL 助手 (AI) | ✅ | ✅ | ✅ (37) | 🟢 完整 |
|
||||
| 权限组 | ✅ | ✅ | ✅ (20+21+14+16) | 🟢 完整 |
|
||||
| 系统设置 | ✅ | ✅ | ✅ (18+10) | 🟢 完整 |
|
||||
| LDAP 配置 | ✅ | ✅ | ✅ (18) | 🟢 完整 |
|
||||
| Schema 漂移 | ✅ | ✅ | ✅ (24+13+9) | 🟢 完整 |
|
||||
| 连接池 | ✅ | - | ✅ (21+12) | 🟡 基础设施,无独立前端 |
|
||||
|| SQL 助手 (AI) | ✅ | ✅ | ✅ (37) | 🟢 完整 |
|
||||
|| 权限组 | ✅ | ✅ | ✅ (20+21+14+16) | 🟢 完整 |
|
||||
|| 系统设置 | ✅ | ✅ | ✅ (18+10) | 🟢 完整 |
|
||||
|| 定时执行工单 🆕 | ✅ | ✅ | — | 🟢 完整 (APScheduler) |
|
||||
|| 日志自动清理 🆕 | ✅ | ✅ | — | 🟢 完整 (APScheduler cron) |
|
||||
|| SQL 检测按钮 🆕 | — | ✅ | — | 🟢 前端完整 |
|
||||
|| 设置种子数据 🆕 | ✅ | — | — | 🟢 后端完整 |
|
||||
|| LDAP 配置 | ✅ | ✅ | ✅ (18) | 🟢 完整 |
|
||||
|| Schema 漂移 | ✅ | ✅ | ✅ (24+13+9) | 🟢 完整 |
|
||||
|| 连接池 | ✅ | - | ✅ (21+12) | 🟡 基础设施,无独立前端 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+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 持久化 |
|
||||
|
||||
## 🏗️ 数据库连接器支持矩阵
|
||||
|
||||
|
||||
+31
-20
@@ -1,33 +1,44 @@
|
||||
# SQL-Platform-Pro 开发路线图
|
||||
|
||||
> 更新时间: 2026-05-24
|
||||
> 更新时间: 2026-05-25
|
||||
|
||||
## 当前版本: v1.0 (开发中)
|
||||
## 当前版本: v1.1 (开发中)
|
||||
|
||||
### 已完成里程碑
|
||||
|
||||
| 阶段 | 版本 | 测试数 | 关键交付 |
|
||||
|------|------|--------|----------|
|
||||
| Phase 1 | v0.1.0 | 44 | 后端 API + TDD 测试 |
|
||||
| Phase 2 | v0.2.0 | 44 | 前后端集成 |
|
||||
| Phase 3 | v0.3.0 | 85 | AES 加密 + SQL 审核引擎 + 审计日志 |
|
||||
| Phase 4 | v0.4.0 | 128 | SQL AST + 规则 CRUD + Alembic + Docker |
|
||||
| Phase 5 | v0.5.0 | 128 | run.sh 运维 + DBConnector + CI/CD |
|
||||
| Phase 6 | v0.6.0 | 298 | Redis/MongoDB + 权限组 + 多步审批流 |
|
||||
| Phase 7 | v0.7.0 | 475 | 多数据库查询/执行引擎 + SQL 助手 |
|
||||
| Phase 8 | v0.8.0 | 700 | P2 高级功能测试 + endpoint 修复 |
|
||||
| Phase 9 | v0.9.0 | 829 | P0 安全修复 — 实例访问控制全线接入权限组 |
|
||||
| Phase 10 | v0.9.5 | 877 | 公告 + Dashboard 测试 |
|
||||
| Phase 11 | v0.9.7 | 895 | 查询端点测试扩展 |
|
||||
| Phase 12 | v0.9.8 | 1017 | P2 测试覆盖 — user/pool/schema_drift |
|
||||
| Phase 13 | v0.9.9 | 1040 | 审核引擎优化 + 执行结果结构化 |
|
||||
| Merge | v1.0-merge | — | SQL平台代码 v1 优化包 (193 条审核规则 + 16 页面 UI) |
|
||||
| Current | — | 1075 | 多数据库浏览 + Redis 树 + 权限体系统一 + 代码分割 |
|
||||
|| 阶段 | 版本 | 测试数 | 关键交付 |
|
||||
||------|------|--------|----------|
|
||||
|| Phase 1 | v0.1.0 | 44 | 后端 API + TDD 测试 |
|
||||
|| Phase 2 | v0.2.0 | 44 | 前后端集成 |
|
||||
|| Phase 3 | v0.3.0 | 85 | AES 加密 + SQL 审核引擎 + 审计日志 |
|
||||
|| Phase 4 | v0.4.0 | 128 | SQL AST + 规则 CRUD + Alembic + Docker |
|
||||
|| Phase 5 | v0.5.0 | 128 | run.sh 运维 + DBConnector + CI/CD |
|
||||
|| Phase 6 | v0.6.0 | 298 | Redis/MongoDB + 权限组 + 多步审批流 |
|
||||
|| Phase 7 | v0.7.0 | 475 | 多数据库查询/执行引擎 + SQL 助手 |
|
||||
|| Phase 8 | v0.8.0 | 700 | P2 高级功能测试 + endpoint 修复 |
|
||||
|| Phase 9 | v0.9.0 | 829 | P0 安全修复 — 实例访问控制全线接入权限组 |
|
||||
|| Phase 10 | v0.9.5 | 877 | 公告 + Dashboard 测试 |
|
||||
|| Phase 11 | v0.9.7 | 895 | 查询端点测试扩展 |
|
||||
|| Phase 12 | v0.9.8 | 1017 | P2 测试覆盖 — user/pool/schema_drift |
|
||||
|| Phase 13 | v0.9.9 | 1040 | 审核引擎优化 + 执行结果结构化 |
|
||||
|| Merge | v1.0-merge | — | SQL平台代码 v1 优化包 (193 条审核规则 + 16 页面 UI) |
|
||||
|| v1.0 | — | 1075 | 多数据库浏览 + Redis 树 + 权限体系统一 + 代码分割 |
|
||||
|| **v1.1** 🆕 | — | 1075+ | **定时执行工单 + 日志自动清理 + SQL检测按钮 + 工单创建页重构 + SchemaSidebar 加宽 + 设置种子数据机制** |
|
||||
|
||||
### v1.1 新增功能详情
|
||||
|
||||
|| 功能 | 说明 | 状态 |
|
||||
||------|------|------|
|
||||
|| 定时执行工单 | APScheduler + SQLite 持久化, scheduled_at 字段, SCHEDULED 状态 | ✅ |
|
||||
|| 日志自动清理 | 6 项 cleanup 配置, cron 03:00, 预览/手动清理 API | ✅ |
|
||||
|| SQL 检测按钮 | 提交前验证, 内容变化重置, 定时时间红色字体 | ✅ |
|
||||
|| 工单创建页重构 | 三步向导→单页面一键提交, DB类型排序, 库表浏览面板 | ✅ |
|
||||
|| SchemaSidebar 加宽 | grid-cols-5 (2:3), RedisTree onInsert prop | ✅ |
|
||||
|| 设置种子数据机制 | settings_seeds.py, _ensure_settings, SETTING_GROUPS | ✅ |
|
||||
|
||||
### 下一步计划
|
||||
|
||||
#### Sprint 1: 功能补全
|
||||
- [ ] 自动化任务前端页面
|
||||
- [ ] 通知页面完善 (渠道管理 + 模板管理)
|
||||
- [ ] Redis 树共享组件抽取
|
||||
- [ ] LDAP 认证对接
|
||||
|
||||
+266
-570
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user