fix: 顶栏文案去重与文档/连库体验更新
顶栏定为:连接 · 新建连接 · 新建查询 · 查询历史 · 快捷键; 同步 docs/落地页、对象树与 connection-types 注册表整理。
This commit is contained in:
1 parent
f8740d27f7
commit
26f459d1b8
49 files changed
+2682
-492
No files matched your search
@@ -0,0 +1,12 @@
|
||||
# 数据来源说明(NOTICE)
|
||||
|
||||
`connection-types.json` 的字段取值来源如下,供维护与审计对照:
|
||||
|
||||
| 数据 | 来源 |
|
||||
|---|---|
|
||||
| `id` / `label` / `category` / `defaultPort` / `color` / `icon` / `mysqlCompat` / `ready` / `form` / `hints` | `packages/ui/src/catalog.ts` 的 `DRIVERS` 数组(注册表顺序 = 该数组顺序) |
|
||||
| `driverFamily` / `runtime` | `apps/server/internal/db/open.go` 的服务端驱动分发 |
|
||||
| `verified` / `notes` | `tests/README.md` 驱动验收表 |
|
||||
| 默认端口、产品名、品牌色等产品事实 | 各数据库官方公开文档(MySQL 3306、PostgreSQL 5432、SQL Server 1433、Oracle 1521、Redis 6379、MongoDB 27017、达梦 DM8 5236 等),属不受著作权保护的技术事实 |
|
||||
|
||||
opsxdb 整体许可证以仓库根 LICENSE 为准。
|
||||
@@ -0,0 +1,40 @@
|
||||
# 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` 数组同序。
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"types": [
|
||||
{
|
||||
"id": "mysql",
|
||||
"label": "MySQL",
|
||||
"category": "关系型",
|
||||
"driverFamily": "mysql",
|
||||
"runtime": "native",
|
||||
"form": "standard",
|
||||
"ready": true,
|
||||
"verified": true,
|
||||
"defaultPort": 3306,
|
||||
"mysqlCompat": true,
|
||||
"color": "#00618A",
|
||||
"icon": "/icons/databases/mysql.svg",
|
||||
"hints": { "host": "127.0.0.1", "port": "3306", "user": "root" },
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
},
|
||||
{
|
||||
"id": "postgresql",
|
||||
"label": "PostgreSQL",
|
||||
"category": "关系型",
|
||||
"driverFamily": "postgres",
|
||||
"runtime": "native",
|
||||
"form": "standard",
|
||||
"ready": true,
|
||||
"verified": true,
|
||||
"defaultPort": 5432,
|
||||
"color": "#336791",
|
||||
"icon": "/icons/databases/postgresql.svg",
|
||||
"hints": { "host": "127.0.0.1", "port": "5432", "user": "postgres", "database": "postgres" },
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
},
|
||||
{
|
||||
"id": "sqlserver",
|
||||
"label": "SQL Server",
|
||||
"category": "关系型",
|
||||
"driverFamily": "sqlserver",
|
||||
"runtime": "native",
|
||||
"form": "standard",
|
||||
"ready": true,
|
||||
"verified": true,
|
||||
"defaultPort": 1433,
|
||||
"color": "#CC2927",
|
||||
"icon": "/icons/databases/sqlserver.svg",
|
||||
"hints": { "host": "127.0.0.1", "port": "1433", "user": "sa", "database": "master" },
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
},
|
||||
{
|
||||
"id": "oracle",
|
||||
"label": "Oracle",
|
||||
"category": "关系型",
|
||||
"driverFamily": "oracle",
|
||||
"runtime": "native",
|
||||
"form": "oracle",
|
||||
"ready": true,
|
||||
"verified": false,
|
||||
"defaultPort": 1521,
|
||||
"color": "#F80000",
|
||||
"icon": "/icons/databases/oracle.svg",
|
||||
"hints": { "host": "127.0.0.1", "port": "1521", "user": "system", "service": "ORCL" },
|
||||
"fields": ["host", "port", "user", "password", "service", "ssl", "ssh"],
|
||||
"notes": "本机未验收:gvenzl/oracle-xe 在 Apple Silicon 报 ORA-00442,需 x86 环境或真库(tests/README.md)"
|
||||
},
|
||||
{
|
||||
"id": "mongodb",
|
||||
"label": "MongoDB",
|
||||
"category": "NoSQL",
|
||||
"driverFamily": "agent",
|
||||
"runtime": "agent",
|
||||
"form": "standard",
|
||||
"ready": false,
|
||||
"verified": false,
|
||||
"defaultPort": 27017,
|
||||
"color": "#00ED64",
|
||||
"icon": "/icons/databases/mongodb.svg",
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
},
|
||||
{
|
||||
"id": "redis",
|
||||
"label": "Redis",
|
||||
"category": "NoSQL",
|
||||
"driverFamily": "redis",
|
||||
"runtime": "native",
|
||||
"form": "redis",
|
||||
"ready": true,
|
||||
"verified": true,
|
||||
"defaultPort": 6379,
|
||||
"color": "#DC382D",
|
||||
"icon": "/icons/databases/redis.svg",
|
||||
"hints": { "host": "127.0.0.1", "port": "6379" },
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
},
|
||||
{
|
||||
"id": "dameng",
|
||||
"label": "达梦",
|
||||
"category": "国产库",
|
||||
"driverFamily": "agent",
|
||||
"runtime": "agent",
|
||||
"form": "standard",
|
||||
"ready": false,
|
||||
"verified": false,
|
||||
"defaultPort": 5236,
|
||||
"color": "#1E40AF",
|
||||
"icon": "/icons/databases/dameng.svg",
|
||||
"fields": ["host", "port", "user", "password", "database", "ssl", "ssh"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 260
|
||||
dbType: dameng
|
||||
rustVariant: Dameng
|
||||
label: 达梦 DM8
|
||||
dialect: Dameng
|
||||
runtimeMode: agent
|
||||
mcpMode: bridge
|
||||
agentKey: dameng
|
||||
driverStoreVisible: true
|
||||
driverStoreOrder: 1
|
||||
singleConnectionPool: true
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: true
|
||||
defaultPort: 5236
|
||||
traits:
|
||||
schemaAware: true
|
||||
singleDatabase: true
|
||||
clearableQuerySchema: true
|
||||
fetchFirst: true
|
||||
diagramSql: true
|
||||
supportLevel: operate
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: true
|
||||
objectBrowser: true
|
||||
objectSource: true
|
||||
schemaSearch: true
|
||||
diagram: true
|
||||
tableDataEdit: true
|
||||
tableStructureEdit: true
|
||||
tableImport: true
|
||||
dataTransfer: true
|
||||
sqlFileExecution: true
|
||||
databaseCreate: false
|
||||
fieldLineage: true
|
||||
sqlExplain: true
|
||||
userAdmin: false
|
||||
driverManagement: true
|
||||
@@ -1,37 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 110
|
||||
dbType: mongodb
|
||||
rustVariant: MongoDb
|
||||
label: MongoDB (Legacy)
|
||||
runtimeMode: agent
|
||||
mcpMode: bridge
|
||||
agentKey: mongodb
|
||||
driverStoreVisible: true
|
||||
driverStoreOrder: 41
|
||||
driverProfiles:
|
||||
- profile: mongodb-legacy
|
||||
agentKey: mongodb
|
||||
label: MongoDB (Legacy)
|
||||
storeVisible: false
|
||||
singleConnectionPool: true
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: true
|
||||
defaultPort: 27017
|
||||
supportLevel: connect
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: false
|
||||
objectBrowser: true
|
||||
objectSource: false
|
||||
schemaSearch: false
|
||||
diagram: false
|
||||
tableDataEdit: false
|
||||
tableStructureEdit: false
|
||||
tableImport: false
|
||||
dataTransfer: true
|
||||
sqlFileExecution: false
|
||||
databaseCreate: false
|
||||
fieldLineage: false
|
||||
sqlExplain: false
|
||||
userAdmin: false
|
||||
driverManagement: false
|
||||
@@ -1,32 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 10
|
||||
dbType: mysql
|
||||
rustVariant: Mysql
|
||||
label: MySQL
|
||||
dialect: MySQL
|
||||
runtimeMode: native
|
||||
mcpMode: direct
|
||||
singleConnectionPool: false
|
||||
metadataConnectionScoped: true
|
||||
skipTcpProbe: false
|
||||
defaultPort: 3306
|
||||
traits:
|
||||
diagramSql: true
|
||||
supportLevel: operate
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: true
|
||||
objectBrowser: true
|
||||
objectSource: true
|
||||
schemaSearch: true
|
||||
diagram: true
|
||||
tableDataEdit: true
|
||||
tableStructureEdit: true
|
||||
tableImport: true
|
||||
dataTransfer: true
|
||||
sqlFileExecution: true
|
||||
databaseCreate: true
|
||||
fieldLineage: true
|
||||
sqlExplain: true
|
||||
userAdmin: true
|
||||
driverManagement: false
|
||||
@@ -1,48 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 130
|
||||
dbType: oracle
|
||||
rustVariant: Oracle
|
||||
label: Oracle
|
||||
dialect: Oracle
|
||||
runtimeMode: agent
|
||||
mcpMode: bridge
|
||||
agentKey: oracle
|
||||
driverStoreVisible: true
|
||||
driverStoreOrder: 18
|
||||
driverProfiles:
|
||||
- profile: oracle-legacy
|
||||
agentKey: oracle
|
||||
label: Oracle
|
||||
storeVisible: false
|
||||
- profile: oracle-10g
|
||||
agentKey: oracle
|
||||
label: Oracle
|
||||
storeVisible: false
|
||||
singleConnectionPool: true
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: true
|
||||
defaultPort: 1521
|
||||
traits:
|
||||
schemaAware: true
|
||||
singleDatabase: true
|
||||
clearableQuerySchema: true
|
||||
fetchFirst: true
|
||||
diagramSql: true
|
||||
supportLevel: operate
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: true
|
||||
objectBrowser: true
|
||||
objectSource: true
|
||||
schemaSearch: true
|
||||
diagram: true
|
||||
tableDataEdit: true
|
||||
tableStructureEdit: true
|
||||
tableImport: true
|
||||
dataTransfer: true
|
||||
sqlFileExecution: true
|
||||
databaseCreate: false
|
||||
fieldLineage: true
|
||||
sqlExplain: true
|
||||
userAdmin: false
|
||||
driverManagement: true
|
||||
@@ -1,36 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 20
|
||||
dbType: postgres
|
||||
rustVariant: Postgres
|
||||
label: PostgreSQL
|
||||
dialect: PostgreSQL
|
||||
runtimeMode: native
|
||||
mcpMode: direct
|
||||
singleConnectionPool: false
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: false
|
||||
defaultPort: 5432
|
||||
traits:
|
||||
schemaAware: true
|
||||
treeSchema: true
|
||||
pgVacuum: true
|
||||
pgLikeStructure: true
|
||||
diagramSql: true
|
||||
supportLevel: operate
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: true
|
||||
objectBrowser: true
|
||||
objectSource: true
|
||||
schemaSearch: true
|
||||
diagram: true
|
||||
tableDataEdit: true
|
||||
tableStructureEdit: true
|
||||
tableImport: true
|
||||
dataTransfer: true
|
||||
sqlFileExecution: true
|
||||
databaseCreate: true
|
||||
fieldLineage: true
|
||||
sqlExplain: true
|
||||
userAdmin: true
|
||||
driverManagement: false
|
||||
@@ -1,29 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 70
|
||||
dbType: redis
|
||||
rustVariant: Redis
|
||||
label: Redis
|
||||
runtimeMode: native
|
||||
mcpMode: bridge
|
||||
singleConnectionPool: false
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: false
|
||||
defaultPort: 6379
|
||||
supportLevel: connect
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: false
|
||||
objectBrowser: false
|
||||
objectSource: false
|
||||
schemaSearch: false
|
||||
diagram: false
|
||||
tableDataEdit: false
|
||||
tableStructureEdit: false
|
||||
tableImport: false
|
||||
dataTransfer: false
|
||||
sqlFileExecution: false
|
||||
databaseCreate: false
|
||||
fieldLineage: false
|
||||
sqlExplain: false
|
||||
userAdmin: false
|
||||
driverManagement: false
|
||||
@@ -1,41 +0,0 @@
|
||||
schemaVersion: 1
|
||||
order: 100
|
||||
dbType: sqlserver
|
||||
rustVariant: SqlServer
|
||||
label: SQL Server
|
||||
dialect: SQL Server
|
||||
runtimeMode: native
|
||||
mcpMode: bridge
|
||||
driverProfiles:
|
||||
- profile: sqlserver-legacy
|
||||
agentKey: sqlserver-legacy
|
||||
label: SQL Server legacy compatibility component
|
||||
storeVisible: true
|
||||
storeOrder: 47
|
||||
singleConnectionPool: false
|
||||
metadataConnectionScoped: false
|
||||
skipTcpProbe: false
|
||||
defaultPort: 1433
|
||||
traits:
|
||||
schemaAware: true
|
||||
databaseSchemaQualified: true
|
||||
treeSchema: true
|
||||
diagramSql: true
|
||||
supportLevel: operate
|
||||
capabilities:
|
||||
queryExecution: true
|
||||
metadataBrowse: true
|
||||
objectBrowser: true
|
||||
objectSource: true
|
||||
schemaSearch: true
|
||||
diagram: true
|
||||
tableDataEdit: true
|
||||
tableStructureEdit: true
|
||||
tableImport: true
|
||||
dataTransfer: true
|
||||
sqlFileExecution: true
|
||||
databaseCreate: true
|
||||
fieldLineage: true
|
||||
sqlExplain: true
|
||||
userAdmin: false
|
||||
driverManagement: false
|
||||
Reference in new issue
Block a user