Skip to content

Commit 2f31274

Browse files
docs: fix two incorrect Kernel claims in CONNECTION_PARAMETERS.md
Two rows disagreed with the code: - `_tls_client_cert_key_password`: documented as honored on Kernel (✅), but the kernel path raises `NotSupportedError` when it is set (`_kernel_tls_kwargs`, src/databricks/sql/backend/kernel/client.py) — the kernel has no surface for an encrypted client key. Marked ❌ and noted the workaround (unencrypted key, or Thrift). Also caveated the section callout, which had claimed all TLS options are honored on both backends. - `username` / `password`: the "raises `ValueError`" note is Thrift-only. That error is raised inside `get_python_sql_connector_auth_provider` (src/databricks/sql/auth/auth.py), which the kernel path never calls, so on Kernel the params are silently ignored rather than rejected. Doc-only change. Co-authored-by: Isaac
1 parent c95ca3f commit 2f31274

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

CONNECTION_PARAMETERS.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ to change without notice.
8585
| `azure_client_id` / `azure_client_secret` / `azure_tenant_id` | `str` ||| `None` | Azure service-principal (Entra ID M2M), selected by `auth_type="azure-sp-m2m"`. On the kernel path the connector forwards these to the kernel, which owns Azure resolution (Entra v2.0 token endpoint + the Databricks-resource `.default` scope) (#919). **`azure_tenant_id` is optional on the kernel path too** — like Thrift, the kernel auto-discovers it from the workspace's `/aad/auth` redirect when omitted. |
8686
| `azure_workspace_resource_id` | `str` ||| `None` | For `azure-sp-m2m`. When set, the SP **management token** (`X-Databricks-Azure-SP-Management-Token`) + `X-Databricks-Azure-Workspace-Resource-Id` header are sent, to authorize an SP that has an Azure RBAC role but is not a workspace member. Omit it for a workspace-member SP (the data token authenticates alone; no management token is fetched). Works on both the kernel and Thrift paths. |
8787
| `_use_cert_as_auth` (+ `_tls_client_cert_file`) | `bool` ||| `False` | Authenticate with a TLS client certificate instead of a token. Thrift-only. |
88-
| `username` / `password` | `str` ||| `None` | **Removed.** Basic auth is no longer supported; passing either raises `ValueError`. |
88+
| `username` / `password` | `str` ||| `None` | **Removed.** Basic auth is no longer supported. On **Thrift**, passing either raises `ValueError`; on the **kernel** path it is silently ignored (the Thrift auth provider that raises is never built). |
8989

9090
## HTTP client, proxy, retries
9191

@@ -117,8 +117,9 @@ to change without notice.
117117

118118
> TLS options are assembled into a single `SSLOptions` object in `session.py`
119119
> and passed to **every** backend, so they are honored on both Thrift and
120-
> Kernel. Verification is **on by default**; you must pass `_tls_no_verify=True`
121-
> to disable it.
120+
> Kernel — with one exception: `_tls_client_cert_key_password` is **not**
121+
> supported on the kernel path (see below). Verification is **on by default**;
122+
> you must pass `_tls_no_verify=True` to disable it.
122123
123124
| Option | Type | Thrift | Kernel | Default Value | Note |
124125
| ------------------------------- | ----- | :----: | :----: | ------------- | -------------------------------------------------------------------------- |
@@ -127,7 +128,7 @@ to change without notice.
127128
| `_tls_trusted_ca_file` | `str` ||| `None` | Path to a CA bundle. Defaults to the system trust store. |
128129
| `_tls_client_cert_file` | `str` ||| `None` | Client certificate for mutual TLS. |
129130
| `_tls_client_cert_key_file` | `str` ||| `None` | Private key for the client certificate. |
130-
| `_tls_client_cert_key_password` | `str` || | `None` | Password for an encrypted client-key file. |
131+
| `_tls_client_cert_key_password` | `str` || | `None` | Password for an encrypted client-key file. **Kernel rejects this** with `NotSupportedError` — the kernel has no surface for an encrypted client key today; pass an unencrypted PEM key, or use the Thrift backend. |
131132

132133
## Results & type rendering
133134

0 commit comments

Comments
 (0)