You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Addresses @gopalldb's review on #819.
P0:
- Re-pin KERNEL_REV to the squash-merge SHA of the now-merged kernel
PR (ec2288742cbac0cd9fab50da353e8405972eefe9 on kernel main),
replacing the orphaned branch-HEAD SHA.
P1:
- Scrub oauth_client_secret from the long-lived self._auth_options in
open_session's finally (even on the failure path). It outlives the
method, so a retained secret was exposed to vars()/pickle/debugger
far longer than needed; the kernel now owns it.
- tls_verify=False now also emits tls_skip_hostname_verify=True —
no-verify subsumes hostname verification, matching SSLOptions'
create_ssl_context (check_hostname=False when tls_verify is False).
- Reject ambiguous auth combos before resolving, instead of silently
picking M2M: (a) credentials_provider + oauth_client_secret, and
(b) a U2M auth_type (databricks-oauth/azure-oauth) + oauth_client_secret.
Both raise NotSupportedError naming the conflict, so the failure is at
session-open rather than a confusing first-call 401 against the wrong
principal.
- Secret-leak tests: oauth_client_secret is forwarded to the kernel but
scrubbed from _auth_options, and absent from repr(conn) / vars(conn);
scrub runs even when open_session raises.
P2:
- _read_pem_bytes rejects an empty/whitespace CA/cert file with a clear
ProgrammingError instead of passing empty PEM to the kernel.
- _normalize_scopes raises ProgrammingError on a non-str/list/tuple
oauth_scopes rather than silently dropping to default scopes.
- Added U2M oauth_scopes forwarding test.
150 kernel unit tests pass; black + mypy clean.
Note: KERNEL_REV now points at the merged kernel main SHA; no further
re-pin needed before merge.
Co-authored-by: Isaac
Signed-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>
0 commit comments