Skip to main content

Connect external app to Databricks App

This recipe demonstrates how to connect from your externally hosted application to an API deployed as a Databricks App.

info

This connectivity option is called Machine-to-Machine (M2M) and requires you to set up a Databricks service principal as per security best practices.

Code snippet

The example below requires you to input a valid databricks workspace host URl as well as service principal client id and client secret when instantiating the WorkspaceClient.

Alternatively, you can set up these values as environment variables DATABRICKS_HOST, DATABRICKS_CLIENT_ID, and DATABRICKS_CLIENT_SECRET. The WorkspaceClient will auomatically pick up these environemnt variables.

from databricks.sdk import WorkspaceClient
import requests

wc = WorkspaceClient(
host="https://<DATABRICKS_HOST>",
client_id="<DATABRICKS_CLIENT_ID>",
client_secret="<DATABRICKS_CLIENT_SECRET>"
)
headers = wc.config.authenticate() # Contains Bearer Token

response = requests.get(
"https://your-app-url/api/v1/healthcheck", headers=headers
)
print(response.json())

Permissions

For external app connectivity and authentication, the connecting service principal needs the following permissions:

  • CAN USE on the target app

Dependencies

requirements.txt
databricks-sdk
requests