This guide describes how to prepare a Databricks Unity Catalog for use with StreamNative Ursa as a Delta Lake catalog on AWS.Documentation Index
Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- An AWS account with permissions to create S3 buckets and IAM roles
- A Databricks account with permissions to create workspaces
1. Create a Databricks Workspace
Skip this step if you already have the Databricks WorkspaceIn the Databricks account console, create a new workspace. The workspace creation flow uses an AWS CloudFormation stack, so you must be logged into AWS in the same browser session.



us-east-2). Click Start Quickstart.



CREATE_COMPLETE, return to the Databricks console and open the workspace.



2. (Recommend) Generate an OAuth2 Service Principal
If you prefer OAuth2 over a personal access token, create a service principal: Navigate to Developer -> Identity and access -> Service principals -> Manage.



3. (Alternative) Generate a User Token
A Databricks user token can be used by StreamNative Ursa to authenticate against Unity Catalog. Open User Settings.



4. Configure Unity Catalog Access
Navigate to Catalog -> Settings -> Metastore.

- Principal: All accounts (or the specific user/service principal)
- Privilege presets: Data Editor (selects related privileges automatically)
- EXTERNAL USE SCHEMA: Enabled



5. Create an S3 Bucket
In your AWS account, create an S3 bucket for the Unity Catalog managed location (for example,delta-unity-catalog-bucket).

6. Create an IAM Policy
Navigate to AWS IAM -> Policies -> Create policy, choose JSON, and paste the following (replace<your-bucket>):



7. Create an IAM Role
Navigate to AWS IAM -> Roles -> Create role and configure:- Trusted entity type: AWS account
- An AWS account: This account
- Enable External ID with placeholder value
0000(will be updated in step 9)




arn:aws:iam::<account-id>:role/<role-name>).

8. Create a Storage Credential in Unity Catalog
Navigate to Catalog -> Settings -> Credentials.

- Credential: Storage Credential
- Type: AWS IAM Role
- Name: any name
- Role ARN: the ARN recorded in step 7


9. Update the IAM Role Trust Policy
Return to the AWS IAM console, open the role created in step 7, and replace the trust policy with the one generated by Databricks.

10. Create an External Location
Navigate to Catalog -> Settings -> External Locations.


- External location name: any name
- URL:
s3://<your-bucket> - Storage credential: the credential from step 8




11. Create the Catalog
In Databricks, create a new catalog and bind it to the external location created in step 10.
Catalog Information Summary
When the steps above are complete, collect the following values for the StreamNative Ursa compaction service:| Value | Description |
|---|---|
unityCatalogUri | Databricks workspace URL (e.g., https://dbc-xxxx.cloud.databricks.com) |
unityCatalogName | The Unity Catalog name created in step 11 |
unityCatalogToken | Personal access token from step 2, or |
unityCatalogClientId / unityCatalogClientSecret | OAuth2 credentials from step 3 |