Files
opsxsql/docs/FEATURES.md
T
logan 14e394fb09 feat: 5种专业登录页风格 + 外观设置 + 文档全面更新
- 新增 5 种登录页组件: SplitView/CenteredCard/SidePanel/FullImage/MinimalDark
- 提取 useLogin hook 共享登录逻辑
- LoginPage 改为风格分发器, localStorage(login-style) 控制渲染
- SettingsPage 新增外观设置 tab: 主题切换 + 登录风格选择器(含缩略图预览)
- AppearanceSettings 组件: 5 种风格卡片式切换
- 文档全面更新为 Go/Gin 架构:
  - ARCHITECTURE.md: Go 项目结构/handler/GORM 模型/中间件/LDAP/驱动矩阵
  - FEATURES.md: v0.3.1 功能清单含登录主题系统
  - ROADMAP.md: Python→Go 迁移历史 + Sprint 计划
2026-05-26 21:16:36 +08:00

8.6 KiB

SQL-Platform 功能清单

更新时间: 2026-05-26 | 版本: v0.3.1 (Go/Gin 后端)

✅ 已完成功能

一、核心功能

1. 自助查询 (QueriesPage)

  • 多数据库类型查询 (MySQL/PostgreSQL/Redis/MongoDB)
  • CodeMirror 6 SQL 编辑器 (语法高亮 + 自动补全)
  • SQL 模板库 (13 个预置模板,按 DB 类型适配)
  • Ctrl+Enter 执行 / Ctrl+Shift+F 格式化
  • 查询结果表格 (点击单元格弹详情 + JSON 格式化)
  • 查询历史记录 (500 条/用户上限)
  • 收藏查询 / 快捷查询
  • Schema 侧边栏 (MySQL 三级树 / Redis 目录树 / MongoDB 集合)
  • Redis key 点击自动插入查询命令 (GET/HGETALL/LRANGE/SMEMBERS/ZRANGE)
  • 两阶段 schema 加载 (选实例加载表名, 选库加载列名)
  • 数据库品牌图标 (techicons.dev SVG)
  • 实例按权限组过滤 (/instances/accessible)

2. 数据变更审批流 (TicketsPage + TicketCreatePage)

  • 工单创建 — 单页面一键提交
  • DB 类型按频率排序 (MySQL → Redis → PostgreSQL → MongoDB)
  • 选择 DB 类型后自动筛选目标实例
  • 库表浏览面板 (点击展开库/表/字段,辅助填写目标库)
  • Redis 目录树按 : 分隔构建层级
  • 工单编号生成 (20位: 时间戳+微秒+序号)
  • 工单状态机 (pending → reviewing → approved → scheduled → executing → success/failed)
  • 10 种工单状态完整支持
  • 多步审批流 (standard / parallel / any_one / condition)
  • 审批人限定 (必须在权限组成员中)
  • CancelTicket 独立处理器
  • RollbackTicket 独立处理器
  • GetTicketTimeline 时间线查询
  • GetTicketApprovals 审批记录查询
  • 工单快速筛选 (待审批/进行中/已完成/已拒绝)
  • 实例按 DB 类型筛选
  • Redis/MongoDB 目录树浏览 + 点击插入命令
  • SQL 提交前强制审核规则检查
  • 执行结果结构化展示 (状态/行数/耗时/错误/警告)

3. SQL 审核引擎

  • 127 条审核规则 (MySQL 67 / PostgreSQL 31 / Redis 25 / MongoDB 31)
  • 6 个分组 (DDL/DML/DCL/DQL/security/performance)
  • MySQL 安全规则 SEC-001~009
  • Redis 规则去重优化
  • 规则 CRUD (创建/读取/更新/删除/开关)
  • 规则统计和筛选
  • 评分系统 (severity: error/warning/info)
  • POST /tickets/audit — SQL 审核端点

4. SQL 助手

  • POST /sql-assistant/format — SQL 格式化
  • POST /sql-assistant/analyze — SQL 分析

二、数据源管理

5. 实例管理 (InstancePage)

  • 实例 CRUD (4 种 DB 类型: mysql/postgresql/redis/mongodb)
  • 连接测试 (MySQL/PG/Redis/MongoDB)
  • 实例密码 AES-256-GCM 加密 (crypto.go)
  • 卡片视图 + 列表视图
  • 按类型 Tab 筛选
  • 品牌图标展示
  • 编辑弹框 (EditInstanceDialog 可复用)
  • 实例统计 (InstanceStats)

6. MySQL Instance Detail — 7 个端点

  • databases — 数据库列表
  • tables — 表列表
  • db-schema — 库 Schema
  • table-detail — 表详情 (列/索引)
  • processlist — 进程列表 (含 Kill)
  • status — 服务器状态
  • users — 用户列表

7. Redis — 9 个真实 Handler

  • RedisInfo — 服务器信息
  • RedisDbsize — 数据库大小
  • RedisScanKeys — Key 扫描
  • RedisGetKeyDetail — Key 详情 (type/TTL/value)
  • RedisSlowlog — 慢查询日志
  • RedisClients — 客户端列表
  • RedisExecuteCommand — 执行命令
  • RedisCreateKey — 创建 Key
  • RedisDeleteKey — 删除 Key

8. MongoDB Stub 端点

  • databases — 数据库列表
  • collections — 集合列表
  • collection/stats — 集合统计
  • query — 查询
  • execute — 执行
  • test-connection — 连接测试

三、权限与安全

9. 权限管理 (InstanceGroupPage)

  • 权限组 CRUD
  • 2 种权限类型 (只读查看 / 写入变更)
  • 实例-权限组关联 (instance_group_members)
  • 用户-权限组关联 (user_groups)
  • 角色权限映射 (admin/dba/auditor/developer)
  • RequireRole RBAC 中间件

10. 用户管理 (UsersPage)

  • 用户 CRUD (4 角色: admin/dba/auditor/developer)
  • bcrypt 密码哈希 (golang.org/x/crypto)
  • 4 个默认种子用户 (auth_service.go 自动创建):
    • admin → 超级管理员
    • zhangsan (张三) → dba
    • laoliu (老六) → auditor
    • lurenjia (路人甲) → developer
  • 批量导入用户 (CSV + LDAP)
  • 密码重置
  • guest 角色已彻底禁用

11. 审计日志 (AuditLogsPage)

  • 全操作审计日志 (实例/用户/工单/查询 CRUD)
  • 日志筛选 (时间范围/用户/操作类型)
  • auditor 角色只读访问

12. LDAP 认证

  • LDAP 配置管理 (GET/PUT /ldap-config)
  • 连接测试 (POST /ldap-config/test)
  • OU 管理 (列表/创建)
  • LDAP 用户管理 (列表/创建/删除)
  • 批量导入 LDAP 用户
  • 服务器: 8.217.205.92:389, base_dn=dc=opsx,dc=vip
  • 驱动: github.com/go-ldap/ldap/v3

四、系统设置

13. 通知管理 (NotificationPage)

  • 通知渠道 CRUD (feishu/dingtalk/wechat/email webhook)
  • 测试发送功能 (POST /notifications/:id/test)
  • NotificationChannel + NotificationTemplate 模型

14. 系统配置 (PlatformConfigPage)

  • GET /settings — 读取配置
  • PUT /settings — 批量更新
  • GET /settings/cleanup/preview — 清理预览
  • POST /settings/cleanup/run — 手动清理
  • 分组卡片布局

15. 公告管理 (AnnouncementPage)

  • 公告 CRUD (Markdown 内容)
  • 发布/撤回状态管理

16. 审核规则管理 (AuditRulesPage)

  • 规则列表 (6 组 Tab: DDL/DML/DCL/DQL/security/performance)
  • 规则开关 (toggle)
  • 规则统计
  • 按数据库类型筛选
  • 规则种子 (POST /audit-rules/seed/{db_type})

17. 审批流管理 (WorkflowPage)

  • 审批流 CRUD (创建/编辑/删除)
  • 克隆审批流
  • 设置默认审批流
  • 步骤管理
  • 条件评估引擎
  • 超时检查 (timeout_hours + auto_approve_on_timeout)

五、外观与个性化 (v0.3.1 新增 🆕)

18. 登录页主题系统

  • 5 种登录页风格:
    • SplitView (经典分屏) — 左侧特性展示 + 右侧表单
    • CenteredCard (居中卡片) — 渐变背景 + 居中表单
    • SidePanel (侧边面板) — 左侧品牌面板 + 右侧表单
    • FullImage (全屏背景) — 科技背景 + 毛玻璃卡片
    • MinimalDark (极简暗色) — 纯暗色极简风格
  • 共享 useLogin hook — 统一登录逻辑
  • localStorage('login-style') 持久化选择

19. 外观设置 (AppearanceSettings)

  • Settings → Appearance tab
  • 主题模式切换 (dark/light)
  • 登录页风格切换 (5 种预览卡片 + 选择)
  • 实时预览 + localStorage 持久化

六、其他功能

20. gh-ost DDL 变更

  • gh-ost dry-run (POST /ghost/dry-run)
  • gh-ost execute (POST /ghost/execute)
  • gh-ost status (GET /ghost/status/:taskId)
  • gh-ost task list (GET /ghost/tasks)
  • 仅 admin/dba 可访问

21. 仪表盘 (Dashboard)

  • 统计概览 (GET /dashboard/stats)
  • 我的工单 (GET /dashboard/my-tickets)

22. 定时任务 (AutoTaskPage)

  • 定时工单列表
  • 取消定时任务
  • 定时任务统计

23. 数据字典 (stub)

  • 数据库/表/字段浏览端点
  • 导出端点

24. 前端优化

  • React.lazy 代码分割
  • Vite manualChunks (vendor 拆分)
  • 暗色主题 (--dg- CSS 变量体系)
  • 响应式布局
  • 骨架屏加载动画
  • 确认弹框 (useConfirm hook)
  • Toast 通知

📊 项目统计

指标 数值
Go 源文件 27+
API 路由 120+ 条
GORM 模型 25+ 个
Handler 文件 17 个
前端页面 24+ 个
登录页主题 5 种
审核规则 127 条 (6 组)
数据库驱动 5 种 (MySQL/PG/Redis/Mongo/SQLite)
Redis Handler 9 个
MySQL Detail 端点 7 个
种子用户 4 个
Git 仓库 https://gitee.com/attacker/sql-platform.git

🏗️ 数据库驱动支持矩阵

数据库 Go 驱动 查询 执行 审核 详情浏览
MySQL go-sql-driver/mysql v1.10.0 ✅ ✅ ✅ (67规则) ✅ (7 endpoints)
PostgreSQL jackc/pgx/v5 v5.9.2 ✅ ✅ ✅ (31规则) ✅
Redis go-redis/v9 v9.19.0 ✅ ✅ ✅ (25规则) ✅ (9 handlers)
MongoDB go-mongo-driver/v2 ✅ (stub) ✅ (stub) ✅ (31规则) ✅ (stub)
SQLite gorm.io/driver/sqlite ✅ (元数据) — — —