From 35ca4e3a37ec6e80838365a041d39ebaedc90e7a Mon Sep 17 00:00:00 2001 From: Komh Date: Mon, 13 Jul 2026 17:03:33 +0800 Subject: [PATCH] feat(duckdb): add connection bootstrap and remote catalogs --- .../connection/ConnectionDialog.vue | 17 + apps/desktop/src/i18n/locales/en.ts | 3 + apps/desktop/src/i18n/locales/es.ts | 3 + apps/desktop/src/i18n/locales/it.ts | 3 + apps/desktop/src/i18n/locales/ja.ts | 3 + apps/desktop/src/i18n/locales/pt-BR.ts | 3 + apps/desktop/src/i18n/locales/zh-CN.ts | 3 + apps/desktop/src/i18n/locales/zh-TW.ts | 3 + apps/desktop/src/stores/connectionStore.ts | 1 + apps/desktop/src/types/database.ts | 1 + crates/dbx-core/src/agent_connection.rs | 1 + crates/dbx-core/src/cloud_sync.rs | 10 + crates/dbx-core/src/connection.rs | 159 +++++----- crates/dbx-core/src/connection_secrets.rs | 43 ++- crates/dbx-core/src/db/duckdb_driver.rs | 25 ++ crates/dbx-core/src/db/duckdb_sql.rs | 291 ++++++++++++++++++ .../dbx-core/src/db/duckdb_worker_process.rs | 19 +- .../dbx-core/src/db/duckdb_worker_protocol.rs | 3 + .../dbx-core/src/db/duckdb_worker_runtime.rs | 211 +++++++------ crates/dbx-core/src/db/mod.rs | 1 + crates/dbx-core/src/db/redis_driver.rs | 1 + crates/dbx-core/src/models/connection.rs | 8 + crates/dbx-core/src/mq/config.rs | 1 + crates/dbx-core/src/mq/service.rs | 1 + crates/dbx-core/src/nacos/config.rs | 1 + crates/dbx-core/src/nacos/service.rs | 2 + crates/dbx-core/src/production_safety.rs | 1 + crates/dbx-core/src/query.rs | 6 +- crates/dbx-core/src/schema.rs | 165 +++++++++- crates/dbx-core/src/schema/duckdb_metadata.rs | 2 +- crates/dbx-core/src/schema/normalization.rs | 1 + crates/dbx-core/src/storage.rs | 14 + crates/dbx-core/src/transfer.rs | 1 + .../dbx-core/tests/duckdb_worker_process.rs | 17 +- .../live_postgres_query_result_export.rs | 1 + .../dbx-core/tests/live_postgres_transfer.rs | 1 + .../tests/live_sqlserver_completion.rs | 1 + crates/dbx-web/src/routes/connection.rs | 1 + docs/content/docs/databases.cn.mdx | 23 ++ docs/content/docs/databases.mdx | 23 ++ src-tauri/src/commands/connection.rs | 13 +- 41 files changed, 893 insertions(+), 194 deletions(-) create mode 100644 crates/dbx-core/src/db/duckdb_sql.rs diff --git a/apps/desktop/src/components/connection/ConnectionDialog.vue b/apps/desktop/src/components/connection/ConnectionDialog.vue index e6d8b1331f..b8d45d67a2 100644 --- a/apps/desktop/src/components/connection/ConnectionDialog.vue +++ b/apps/desktop/src/components/connection/ConnectionDialog.vue @@ -202,6 +202,7 @@ const defaultForm = (): ConnectionForm => ({ gbase_server: "", informix_server: "", external_config: undefined, + init_script: undefined, read_only: false, is_production: false, production_databases: [], @@ -1450,6 +1451,8 @@ watch( etcd_endpoints: config.etcd_endpoints || "", informix_server: config.informix_server || "", external_config: config.external_config, + attached_databases: config.attached_databases || [], + init_script: config.init_script, read_only: config.read_only || false, is_production: config.is_production || false, production_databases: config.production_databases || [], @@ -4171,6 +4174,20 @@ function openExternalUrl(url: string) {

+
+ +
+