# opsxdb 连接类型注册表(connection-types.json,schema v1) `connection-types.json` 是 opsxdb 驱动目录的**单一事实来源**(规划中):`src/catalog.ts` 的 `DRIVERS` 与服务端 `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` 必须与 `server/internal/db/types.go` 的 `ConnReq` 实际消费字段一致 (审计记录:Oracle 的 `oracleRole`/`oracleIdKind`、SQL Server 的 `authMode`、 Redis 的 `keySeparator`/`redisMode` 为已知的死参数,不得回流)。 - 新增驱动时同步更新 `tests/README.md` 验收表与 `catalog.ts`,并保持注册表与 `DRIVERS` 数组同序。