驱动接入(全部本机真实例验收): - 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 同步
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数组同序。