diff --git a/superset/db_engine_specs/clickhouse.py b/superset/db_engine_specs/clickhouse.py index 437c0d25c03..0d40acbe673 100644 --- a/superset/db_engine_specs/clickhouse.py +++ b/superset/db_engine_specs/clickhouse.py @@ -219,6 +219,10 @@ class ClickHouseParametersSchema(Schema): values=fields.Raw(), metadata={"description": __("Additional parameters")}, ) + ssh = fields.Boolean( + required=False, + metadata={"description": __("Use an ssh tunnel connection to the database")}, + ) try: @@ -312,8 +316,18 @@ class ClickHouseConnectEngineSpec(BasicParametersMixin, ClickHouseEngineSpec): url_params["query"] = query if not url_params.get("database"): url_params["database"] = "__default__" - url_params.pop("encryption", None) - return str(URL.create(f"{cls.engine}+{cls.default_driver}", **url_params)) + + return str( + URL.create( + f"{cls.engine}+{cls.default_driver}", + username=url_params.get("username"), + password=url_params.get("password"), + host=url_params.get("host"), + port=url_params.get("port"), + database=url_params.get("database"), + query=url_params.get("query"), + ) + ) @classmethod def get_parameters_from_uri(