diff --git a/apps/desktop/src/components/connection/ConnectionDialog.vue b/apps/desktop/src/components/connection/ConnectionDialog.vue index 58086da955..bb571bf3c8 100644 --- a/apps/desktop/src/components/connection/ConnectionDialog.vue +++ b/apps/desktop/src/components/connection/ConnectionDialog.vue @@ -826,6 +826,7 @@ const driverProfiles: Record< label: "Elasticsearch", icon: "elasticsearch", }, + hbase: { type: "hbase", port: 8080, user: "", label: "Apache HBase", icon: "hbase" }, qdrant: { type: "qdrant", port: 6333, user: "", label: "Qdrant", icon: "qdrant" }, milvus: { type: "milvus", port: 19530, user: "root", label: "Milvus", icon: "milvus" }, weaviate: { type: "weaviate", port: 8080, user: "", label: "Weaviate", icon: "weaviate" }, @@ -2200,6 +2201,7 @@ const iconTypeMap: Record = { sqlserver: "sqlserver", oracle: "oracle", elasticsearch: "elasticsearch", + hbase: "hbase", qdrant: "qdrant", milvus: "milvus", weaviate: "weaviate", @@ -2279,6 +2281,7 @@ const dbOptions: DbOption[] = [ { value: "sqlite", label: "SQLite" }, { value: "sqlserver", label: "SQL Server" }, { value: "elasticsearch", label: "Elasticsearch" }, + { value: "hbase", label: "Apache HBase" }, { value: "qdrant", label: "Qdrant" }, { value: "milvus", label: "Milvus" }, { value: "weaviate", label: "Weaviate" }, @@ -2380,7 +2383,7 @@ const dbCategoryDefinitions: Array<{ { key: "document", titleKey: "connection.databaseCategoryDocument", - optionValues: ["mongodb", "redis", "elasticsearch", "manticoresearch", "cassandra"], + optionValues: ["mongodb", "redis", "elasticsearch", "hbase", "manticoresearch", "cassandra"], }, { key: "graph_ai", @@ -2495,10 +2498,10 @@ const sqliteExtensionPaths = computed({ form.value.url_params = setSqliteExtensionPaths(form.value.url_params, value); }, }); -const tlsCapableDatabaseTypes = new Set(["mysql", "starrocks", "postgres", "redshift", "gaussdb", "kwdb", "opengauss", "questdb", "dameng", "redis", "etcd", "clickhouse", "elasticsearch", "qdrant", "milvus", "weaviate", "chromadb", "influxdb"]); +const tlsCapableDatabaseTypes = new Set(["mysql", "starrocks", "postgres", "redshift", "gaussdb", "kwdb", "opengauss", "questdb", "dameng", "redis", "etcd", "clickhouse", "elasticsearch", "hbase", "qdrant", "milvus", "weaviate", "chromadb", "influxdb"]); const supportsTlsToggle = computed(() => tlsCapableDatabaseTypes.has(form.value.db_type)); const supportsCaCertificatePath = computed(() => form.value.db_type === "clickhouse"); -const supportsGenericUrlParams = computed(() => form.value.db_type !== "manticoresearch"); +const supportsGenericUrlParams = computed(() => form.value.db_type !== "manticoresearch" && form.value.db_type !== "hbase"); const bareMysqlProfiles = new Set(["doris", "selectdb", "oceanbase"]); const supportsMysqlTlsOptions = computed(() => form.value.db_type === "starrocks" || (form.value.db_type === "mysql" && !bareMysqlProfiles.has(selectedType.value))); const supportsMysqlCleartextPasswordAuth = computed(() => form.value.db_type === "mysql" && !bareMysqlProfiles.has(selectedType.value)); @@ -5902,7 +5905,7 @@ function openExternalUrl(url: string) { -
+
diff --git a/apps/desktop/src/components/hbase/HBaseBrowser.vue b/apps/desktop/src/components/hbase/HBaseBrowser.vue new file mode 100644 index 0000000000..915a2c895d --- /dev/null +++ b/apps/desktop/src/components/hbase/HBaseBrowser.vue @@ -0,0 +1,508 @@ + + +