44
55import pandas as pd
66from databricks import sql
7- from databricks .sdk .core import ApiClient , Config , databricks_cli
7+ from databricks .sdk .core import ApiClient
88from databricks .sdk .service .iam import CurrentUserAPI
99from shiny import App , Inputs , Outputs , Session , render , ui
1010
11- from posit .connect .external .databricks import PositCredentialsStrategy
11+ from posit .connect .external .databricks import (
12+ new_config ,
13+ sql_credentials ,
14+ ConnectStrategy ,
15+ )
1216
1317DATABRICKS_HOST = os .getenv ("DATABRICKS_HOST" )
1418DATABRICKS_HOST_URL = f"https://{ DATABRICKS_HOST } "
@@ -23,15 +27,10 @@ def server(i: Inputs, o: Outputs, session: Session):
2327 the first few rows from a table hosted in Databricks.
2428 """
2529 session_token = session .http_conn .headers .get ("Posit-Connect-User-Session-Token" )
26- posit_strategy = PositCredentialsStrategy (
27- local_strategy = databricks_cli ,
28- user_session_token = session_token ,
29- )
30- cfg = Config (
31- host = DATABRICKS_HOST_URL ,
32- # uses Posit's custom credential_strategy if running on Connect,
33- # otherwise falls back to the strategy defined by local_strategy
34- credentials_strategy = posit_strategy ,
30+ cfg = new_config (
31+ posit_connect_strategy = ConnectStrategy (
32+ user_session_token = session_token
33+ ),
3534 )
3635
3736 @render .data_frame
@@ -41,8 +40,7 @@ def result():
4140 with sql .connect (
4241 server_hostname = DATABRICKS_HOST ,
4342 http_path = SQL_HTTP_PATH ,
44- # https://github.com/databricks/databricks-sql-python/issues/148#issuecomment-2271561365
45- credentials_provider = posit_strategy .sql_credentials_provider (cfg ),
43+ credentials_provider = sql_credentials (cfg ),
4644 ) as connection :
4745 with connection .cursor () as cursor :
4846 cursor .execute (query )
0 commit comments