title: 'Unity Catalog Catalog Connector Deployment Guide' sidebar_label: 'Deployment Guide' description: 'Operating guide for the Unity Catalog catalog connector in production: workspace authentication, table-type filtering, effective-permissions flow, and observability.' sidebar_position: 10 pagination_prev: null pagination_next: null tags:
Production operating guide for the Unity Catalog catalog connector — discovering Databricks Unity Catalog tables and federating them through Spice.
For Databricks-specific operational concerns (SQL Warehouse resilience, metrics, permissions flow as applied to Databricks workspaces), see the Databricks Deployment Guide (opens in a new tab) — the Unity Catalog logic described there applies directly when the catalog connector targets a Databricks workspace.
| Parameter | Description |
|---|---|
unity_catalog_token | Bearer token for the Unity Catalog API. Use ${secrets:...} from a secret store. |
The catalog URL must match the pattern https://<host>/api/2.1/unity-catalog/catalogs/<catalog_id> and is parsed into the endpoint and catalog identifier at startup. Mismatched URLs are rejected as configuration errors.
The token is optional — when unset, the catalog connector issues unauthenticated requests, suitable for locally-hosted Unity Catalog deployments (OSS UC) with permissive access. For Databricks workspaces, the token is always required.
Secrets must be sourced from a secret store (opens in a new tab) in production. Rotate tokens from the UC / Databricks console and update the secret store.
The Unity Catalog client uses the shared resilient_http helper with these defaults:
408, 429, 5xx, and transient network errors (connect, timeout)Retry-After, retry-after-ms, x-retry-after-ms headersThese are not exposed as user-tunable parameters on the Unity Catalog connector itself.
The connector fans out schema and table enumeration with bounded concurrency to avoid thundering-herd on the UC API:
buffer_unordered(5))buffer_unordered(5))For catalogs with thousands of tables, initial discovery can take minutes while the connector respects these limits.
| Table Type | Supported | Notes |
|---|---|---|
MANAGED | Yes | Standard Delta tables |
EXTERNAL | Yes | Tables with external storage locations |
FOREIGN | Yes | Lakehouse Federation foreign tables |
MATERIALIZED_VIEW | Yes | Materialized views |
VIEW | No | Skipped during discovery |
STREAMING_TABLE | No | Skipped during discovery |
Unsupported table types are skipped during catalog discovery. When referenced directly, an error is returned.
Before creating a table provider, the connector checks permissions via GET /api/2.1/unity-catalog/effective-permissions/table/{catalog.schema.table}. The following privileges grant read access:
SELECTALL_PRIVILEGES / ALL PRIVILEGESOWNER / OWNERSHIPBehavior:
InsufficientPermissions error is returned.requires_read_permission_validation = false) because Lakehouse Federation access can be valid when the UC effective-permissions endpoint does not report a table-level privilege. Access is still enforced by Databricks at query time.The Unity Catalog connector does not currently register UC-specific OpenTelemetry metric instruments. When used via the Databricks connector, the shared SQL Warehouse and UC spans produce task-history records that can be aggregated for operational insight.
Monitor via:
query_duration_ms, query_returned_rows) from runtime.metrics.See Component Metrics (opens in a new tab) for general configuration.
Unity Catalog operations emit the following task history (opens in a new tab) spans:
| Span | Input | Description |
|---|---|---|
uc_get_table | Fully-qualified table name | Fetch table metadata from Unity Catalog. |
uc_get_catalog | Catalog ID | Fetch catalog metadata. |
uc_list_schemas | Catalog ID | List schemas in a catalog. |
uc_list_tables | catalog_id.schema_name | List tables in a schema. |
uc_get_effective_permissions | Fully-qualified table name | Check effective permissions for a table. |
| Symptom | Likely cause | Resolution |
|---|---|---|
401 Unauthorized on catalog list | Missing, expired, or wrong-workspace token. | Regenerate token in UC / Databricks; update secret store. |
| Table visible in UC but missing from the Spice catalog | Table type is VIEW / STREAMING_TABLE, permissions were denied, or its schema was created after Spice started. | Confirm the table type is supported and that the principal has SELECT (or equivalent); restart Spice to pick up a schema created after startup. |
InsufficientPermissions on direct table reference | Role lacks read privilege on the table. | Grant SELECT on the table in UC. |
| Slow catalog discovery on thousands of tables | Bounded concurrency + permission checks per table. | Expected behavior; schedule discovery during low-traffic windows and cache via accelerated datasets. |
| Tables from a Lakehouse Federation source missing | FOREIGN precheck passed but Databricks denied at query time. | Verify the Databricks workspace has federation privileges granted to the principal. |