Files
opsxdb/connection-types
logan a9510235bb
CI / Go server (push) Canceled after 0s
CI / Web + core packages (push) Canceled after 0s
CI / Desktop (Tauri) cargo check (push) Canceled after 0s
feat: 18 引擎驱动全家桶 + 驱动管理/离线包 + 设置中心 + 工作台交互打磨
驱动接入(全部本机真实例验收):
- Elasticsearch 原生 SQL API、InfluxDB 原生 HTTP+Flux(官方 JDBC 付费许可,实测弃用)
- ZooKeeper/MongoDB JVM agent(连接时自动下载官方驱动 jar,sha256 钉版本到 ~/.opsxdb/drivers/)
- 达梦 JDBC agent 桥就绪(待厂商 jar+实例);TiDB 真实例验收
- 协议族代码审查放行 PolarDB/TDSQL/OceanBase/Kingbase/GaussDB/Oracle
- 驱动能力模型:按驱动开关对象树分组/右键菜单/行编辑,NoSQL 树拍平(对象直挂库节点)

驱动管理:
- 驱动管理弹框(状态/预装/离线包导入/JDK 检测)+ /api/drivers/* 三接口
- opsxdb-driver 驱动商店仓库(清单/fetch.sh/pack.sh 离线包/import.sh)
- 连接时懒加载:DMG 零 Java 产物,首连自动下载(实测 ZK 九件套 1.35s),离线包自动回退

UI/交互:
- 设置中心(⚙):常规/执行/结果/驱动/快捷键/关于,左导航+右面板(对标 opsxshell)
- 实例级展开箭头(行首 SVG chevron,替代字体回退失真的 Unicode 三角)
- 树内嵌套渲染修复:对象树挂在激活连接下;工具栏窄窗口不断行(按钮 nowrap+整颗换行)
- 侧栏连接行精简(图标+连接名)、SQLite SSH 守卫、Oracle 死参数清理

质量:
- Go 协议层/离线回退单测、E2E 门控测试(ES/ZK/Influx/Mongo/TiDB/JDBC 桥)
- 驱动注册表单一事实来源 connection-types.json,README/BACKLOG/AGENTS 同步
2026-09-22 01:07:46 +08:00
..

opsxdb 连接类型注册表(connection-types.json,schema v1)

connection-types.json 是 opsxdb 驱动目录的单一事实来源(规划中):packages/ui/src/catalog.ts 的 DRIVERS 与服务端 apps/server/internal/db/open.go 的驱动分发,最终都应从本注册表生成。 当前阶段注册表与代码手工保持一致,生成器接入前以代码为准。

数据来源说明见 NOTICE.md。

设计

  • 单个 JSON 注册表:types 数组顺序即选择器展示顺序,与 catalog.ts 的 DRIVERS 数组保持同序;不设独立排序字段,避免引入任意常数。
  • JSON 无注释:字段语义统一在本文件说明,条目级备注(如验收阻塞原因)写入 notes 字段。

字段说明

字段 必填 说明
id ✓ 驱动 ID,与 catalog.ts 的 DriverId 一致
label ✓ 显示名
category ✓ 关系型 / NoSQL / 国产库 / 时序/搜索(选择器分组)
driverFamily ✓ 服务端分发:mysql / postgres / sqlserver / oracle / sqlite / redis / agent(未实现,走外部驱动)
runtime ✓ native(Go 驱动编译内置)/ agent(按需下载的外部驱动)/ file(本地文件库)
form ✓ 连接表单:standard / file / redis / oracle(对应 ConnectionForm)
ready ✓ 用户可测试/连接;false 时选择器显示"未就绪",仅可保存
verified ✓ 本机 docker 验收通过(依据 tests/README.md 驱动验收表);false 表示代码就绪但未经本机验证
defaultPort ✓ 默认端口;文件库为 0
mysqlCompat MySQL 协议族(TiDB/OceanBase/PolarDB/TDSQL 等复用 mysql 驱动)
color / icon 选择器展示
hints 表单占位提示(host/port/user/database/service)
fields ✓ 连接表单收集且服务端实际消费的字段;表单不渲染、服务端不接收的字段禁止列入
notes 条目级备注(如 verified: false 的原因)

纪律

  • fields 必须与 apps/server/internal/db/types.go 的 ConnReq 实际消费字段一致 (审计记录:Oracle 的 oracleRole/oracleIdKind、SQL Server 的 authMode、 Redis 的 keySeparator/redisMode 为已知的死参数,不得回流)。
  • 新增驱动时同步更新 tests/README.md 验收表与 catalog.ts,并保持注册表与 DRIVERS 数组同序。