> **产品形态:桌面 GUI(Tauri)**。`http://127.0.0.1:5174` 仅为开发壳。文档 `/docs`、官网 `/` 由本机后端提供。 # OpsxDB 给运维和开发用的 **数据库客户端**(连接管理 / SQL 工作台 / AI 写 SQL)。 从 OpsxAPI 脚手架分叉:同一套 monorepo(web + Gin + 可选 Tauri),产品面换成 DB。 ## 架构 ``` packages/ui 连接选择器 + SQL 工作台 + AI 面板 packages/core 共享工具(保留) packages/transport 浏览器 / Gin / Tauri(保留兼容) apps/web Vite + React(:5174) apps/desktop Tauri 2 壳 apps/server Gin:health + 内置驱动(MySQL 族/PG 族/SQL Server/Oracle/SQLite/Redis)+ AI stub(:8788) ``` ## 怎么跑 ```bash export PATH="$HOME/.nvm/versions/node/v24.19.0/bin:/opt/homebrew/bin:$PATH" export OPSXDB_SERVER_PORT=8788 OPSXDB_WEB_PORT=5174 npm install ./run.sh web # Gin :8788 + Vite :5174 ``` 打开 http://127.0.0.1:5174/ ```bash curl -s http://127.0.0.1:8788/api/health curl -s -X POST http://127.0.0.1:8788/api/ai/chat \ -H 'Content-Type: application/json' \ -d '{"action":"generate","prompt":"查最近用户"}' ``` ## 日常怎么用 1. **新建连接** → 选类型,或粘贴 `mysql://user:pass@host:3306/db` 点「填入」 2. **测试** → **保存并连接** 3. 左侧点库展开表;**点表名**打开前 100 行(展开表看列) 4. 编辑器 **⌘/Ctrl+Enter** 执行当前语句或选区(不是整页脚本) 5. 结果:**复制 / CSV / INSERT**;双击单元格复制 ## 已做(便捷向) - 连接选择器:搜索 / 分类 / 最近 / 图标网格;URL 拆字段;按驱动表单(SQLite 文件、Redis、Oracle Service、SSL) - 工作台:懒加载对象树、点表看数据、CodeMirror SQL、多 Tab、可拖分栏 - 会话:连接后查询只带 `sessionId`,账密不再每次上送;本机密码做了混淆 - 结果截断提示、危险 SQL 确认、查询历史、主题/Tab 持久化、快捷键 - 驱动:MySQL 族 / PostgreSQL 族(含 GaussDB、人大金仓)/ SQL Server / Oracle / SQLite / Redis - AI 面板仍是 stub(生成/解释/优化/修复/方言/样例) ## 驱动与连接类型 - **注册表**:`connection-types/connection-types.json`(schema v1,字段说明见该目录 `README.md`)。规划为驱动目录的单一事实来源;生成器接入前以 `packages/ui/src/catalog.ts` 与 `apps/server/internal/db/open.go` 为准。 - **就绪状态**:`ready` = 可测试/连接;`verified` = 本机 docker 验收通过,依据 `tests/README.md` 驱动验收表。当前 MySQL/MariaDB/PG/SQL Server/SQLite/Redis 已验收,Oracle 代码就绪但本机未验证,达梦/MongoDB/ZK/ES/InfluxDB 未就绪。 - **路线**:常用库走 native Go 驱动编译内置(go-ora 连 Oracle,不引入 JVM);长尾库(达梦/MongoDB/ZK/InfluxDB 等)规划 agent 按需接入,驱动分发走 Maven 坐标钉版本 + sha256 + 镜像回退,计划托管于 `opsxdb-driver` 仓库(Gitee/GitHub)。 - **许可**:`connection-types/` 注册表数据从自有代码与厂商公开事实推导(见 `connection-types/NOTICE.md`);仓库整体许可证以根 LICENSE 为准。 ## 端口 | 服务 | 端口 | 环境变量 | |------|------|----------| | Gin | 8788 | `OPSXDB_SERVER_PORT` / `OPSXDB_ADDR` | | Vite | 5174 | `OPSXDB_WEB_PORT` |