Setup guide

Prev Next

This article will describe the steps for a Provider to configure Bobsled access to a Databricks workspace to be used as a source in Bobsled.

Availability: Databricks as a source is currently supported only for Sledhouse

Databricks as a source is currently supported only for Sledhouse (Sledhouse Tables and Data Products). It is not yet available as a source for Bobsled Transfers. If you need Databricks as a source for Transfers, reach out to your Bobsled account team.


Prerequisites

  • A Databricks workspace on AWS, Azure, or GCP with Unity Catalog enabled.

  • Access to a Databricks user with the privileges required to create recipients and create/modify shares in Unity Catalog.


Choose an authentication method

Bobsled supports two ways to authenticate to your Databricks source. Choose one when you create the source:

  • Token (activation link) — you create an Open Sharing recipient with a token, and Databricks gives you an activation link that you paste into Bobsled. Simplest to set up, but the token is long-lived and you are responsible for rotating it. Follow Setup instructions — Token (activation link) below.

  • OIDC federation (recommended) — Bobsled authenticates with short-lived, automatically-rotating tokens, and no credential is stored. Set-up is a two-way exchange: Bobsled gives you values to configure on your Databricks recipient, and you give Bobsled the recipient’s endpoints. Follow Setup instructions — OIDC federation below.


Step 1: Create an Open Sharing recipient in Databricks

  1. In your Databricks workspace, open the Catalog explorer and navigate to Delta Sharing → Shared by me.

  2. Click the Recipients tab, then click New recipient.

  3. Provide a Recipient name (e.g. bobsled_source).

  4. For Recipient type, select Open and Token. Set the token lifetime: Open Sharing tokens have an expiration set at recipient creation time. Set this long enough to cover your expected usage, or plan to rotate it.

  5. Click Create.

  6. Databricks will display an Activation link (a URL containing an embedded token) with an expiration time. Copy the activation link — you will paste this into Bobsled in Step 3. You will not be able to retrieve the same link again after closing the dialog; if you lose it, you can rotate the token on the recipient to generate a new one.

Rotating the recipient token

If the activation link is leaked, expired, or otherwise needs to be rotated, rotate the token on the recipient in Databricks (Shared by me → Recipients → your recipient → Rotate token). This produces a new activation link. Edit the Bobsled source and paste in the new link.

Step 2: Create a Delta Share granted to the recipient

  1. Still under Delta Sharing → Shared by me, click Share Data.

  2. Provide a Share name (e.g. bobsled_share). Write this name down — you will enter it into Bobsled in Step 4.

  3. Open the newly created share and click Manage assets → Add data assets.

  4. Select the tables, views, or schemas you want to send to Bobsled, and confirm. You can return here later to add or remove assets.

  5. You can leave the “Add notebooks” step blank, and click Save and continue.

  6. In the Add recipients step, add the newly created Bobsled recipient. Click Share data to finish creating the share.

Delta Sharing limitation — no cross-share references

Tables and views added to a Delta Share cannot reference data from another inbound share. This is enforced by Databricks on the delta sharing protocol, on the provider side. If you need to share a view that joins objects from different shares, materialize the result into a table in your own metastore.

At this point your Databricks side is fully configured. You should have two values ready to enter into Bobsled:

  • The Share name (e.g. bobsled_share)

  • The Activation link (e.g. https://<workspace-host>/api/2.0/unity-catalog/public/data_sharing_activation/<token>)

Step 3: Configure source in Bobsled

  1. Log in to your Bobsled Environment.

  2. Select Data Sources in the left sidebar and then Add source at the top right of the page.

  3. Enter a human-readable name to describe the source.

  4. Select Databricks and the cloud and region of your Databricks account. Click Continue to move to the next step.

  5. Enter the Share name from Step 2 in the Share Name field.

  6. Paste the Activation link from Step 1 into the Activation Link field.

  7. Click Save.


Setup instructions — OIDC federation

With OIDC federation, Bobsled authenticates to Databricks using short-lived tokens it mints on demand — nothing is stored as a credential. Because the setup is a two-way exchange, you start in Bobsled to get the values you configure on your Databricks recipient, then return to Bobsled with the recipient’s endpoints.

Step 1: Start the source in Bobsled to get your federation values

  1. Log in to your Bobsled Environment.

  2. Select Data Sources in the left sidebar, then Add source at the top right.

  3. Enter a human-readable name, select Databricks and the cloud and region of your Databricks account, and click Continue.

  4. For the authentication method, choose OIDC.

  5. Under Configure your Databricks recipient, Bobsled shows the values you’ll configure on your Databricks recipient in Step 2. Keep this tab open:

  • Issuer URL — e.g. https://<your-bobsled-domain>/oidc/<your-slug>

  • Subject claimsub

  • Subjectbobsled-source-connect@<project>.iam.gserviceaccount.com

  • Audiencedatabricks-source:<source-id>

Bobsled also shows a Recipient federation policy block you can copy these values from.

📷 Screenshot: Bobsled OIDC source form showing the four recipient-federation values (Issuer URL, Subject claim = sub, Subject, Audience).

Step 2: Create an OIDC federation recipient in Databricks

  1. In your Databricks workspace, open the Catalog explorer and navigate to Delta Sharing → Shared by me → Recipients, then click New recipient.

  2. Provide a Recipient name (e.g. bobsled_source).

  3. For Recipient type, select Open.

  4. For the authentication method, select OIDC Federation.

  5. Add an OIDC federation policy and fill it with the values from Step 1:

  • Issuer URL → Bobsled’s Issuer URL

  • Subject claimsub

  • Subject → Bobsled’s Subject

  • Audiences → Bobsled’s Audience

Save the policy, then click Create.

📷 Screenshot: Databricks Create a new recipient dialog with Recipient type = Open and authentication OIDC Federation.

📷 Screenshot: Databricks Add OIDC federation policy dialog (Issuer URL, Subject claim = sub, Subject, Audiences).

Step 3: Create a Delta Share granted to the recipient

This is identical to the Token method. Follow Step 2: Create a Delta Share granted to the recipient above, adding the OIDC recipient you just created. Write down the Share name.

Step 4: Copy the recipient’s endpoints from Databricks

  1. On the recipient’s Overview page, copy the Recipient endpoint — this is your Delta Sharing endpoint: https://<workspace-host>/api/2.0/delta-sharing/metastores/<metastoreId>/recipients/<recipientId>

  2. For the Iceberg endpoint, open the Iceberg OIDC profile for the recipient, download the oauth_config.share file, and copy the endpoint value from inside it.

Use the Recipient endpoint — not the profile-generation portal links

Databricks also shows OIDC profile generation portal and Iceberg OIDC profile generation portal links (…/delta-sharing/oidc-profile-generation?…). Those are download links for the profile file, not the sharing endpoint. Pasting one into Bobsled makes the connection test fail, because the URL returns an HTML page instead of the Delta Sharing API.

📷 Screenshot: Databricks recipient Recipient endpoint field.

Step 5: Finish the source in Bobsled

  1. Return to the Bobsled source form and enter the Share name from Step 3.

  2. Paste the Recipient endpoint into the Delta Sharing endpoint field, and the Iceberg endpoint into the Iceberg endpoint field. Alternatively, upload the oauth_config.share file and Bobsled reads the endpoints from it.

  3. Click Save.

Bobsled mints a short-lived token and tests the connection. The source moves to Connected once Databricks validates it.

📷 Screenshot: Bobsled Data Sources list showing the OIDC source Connected.

Troubleshooting

Connection test fails with Unexpected token '<' … not valid JSON → you used a profile-generation portal URL as the endpoint. Use the Recipient endpoint (…/api/2.0/delta-sharing/metastores/…/recipients/…) instead. 401/403 from Databricks → a federation-policy value doesn’t match. Re-check that Subject claim is sub and that the Issuer URL, Subject, and Audience are copied exactly from Bobsled.


Once you’ve successfully configured your Source, you can start syncing Sledhouse Tables and defining Data Products.