Forum Discussion
Fabric - MirroredAzureDatabricksCatalog DataSource/Catalog name
- 8 months ago
Hi Max_701 , Thank you for reaching out to the Microsoft Community Forum.
This is expected behavior. Currently, Microsoft Fabric does not expose source or connection metadata for Azure Databricks (Unity Catalog) mirrored items through any public REST API. Although these artifacts appear in /v1/workspaces/{workspaceId}/items as MirroredAzureDatabricksCatalog, they are modeled as a different artifact type than database mirrors and therefore do not appear in /mirroredDatabases. The getDefinition endpoint also does not return any definition parts for this item type, even after the long running operation completes successfully.
For lineage or governance scenarios, this means there is currently no supported API to retrieve Databricks workspace URL, catalog name or authentication details for these mirrored items. The only partial alternative is the Admin Workspace Info / Scanner API with lineage=true, which may surface high level upstream relationships but not detailed Databricks metadata.
If that is insufficient, the best thing to do for this to happen is submitting this clearly via Microsoft Fabric Ideas if you haven’t already, and get as many upvotes as possible. Microsoft monitors it for feature updates and enhancements, who knows, with enough upvotes this idea may be implemented as feature in the near future.
Hi burakkaragoz - Thanks for your response! I was testing this approach but there seems to be another issue when I use this endpoint - /v1/workspaces/{workspaceId}/items/{itemId}/getDefinition - it works well for most of the artifacts like lakehosue or warehouse but when I pass item id of a Azure Databricks Mirrored Item - it provides null as response (status code is 202)
The 202 Accepted status code is the clue here! It is not a failure, but it is not an immediate success either.
In the Fabric REST API pattern, a 202 response means the request triggered a Long Running Operation (LRO). The server is essentially saying: "I have started fetching the definition, but I am not done yet." Unlike standard items (Lakehouse/Warehouse) which return the definition instantly (200 OK), mirrored items often require backend processing that forces this asynchronous flow.
The Missing Step: The Polling Pattern When you get a 202 response with a null body, you must look at the Response Headers to get the actual data.
Find the Location Header: Inspect the headers of that 202 response. You should see a header named Location (or Operation-Location) containing a URL.
Poll that URL: Make a GET request to that URL.
Check Status:
If it returns 202 again: Wait a few seconds and try again.
If it returns 200 OK: The Body of this response will contain the Item Definition (base64 parts) you are looking for.
Plan B: The Admin Scanner API If you follow the polling process and the final payload is still empty (which can happen with Preview artifacts like MirroredAzureDatabricksCatalog), then the Definition API is likely not fully supported for this item type yet.
In that case, your fallback for Lineage/Governance is the Admin Workspace Info API, which is designed to expose upstreamSources without needing the item definition:
Method: POST
Endpoint: /v1/admin/workspaces/getInfo?lineage=true
Body: { "workspaces": ["<your-workspace-id>"] }
This endpoint bypasses the specific item definition logic and queries the platform's lineage graph directly.
Try the polling method on the Location header first, that is the standard way to handle a 202!
If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.
This response was assisted by AI for translation and formatting purposes.
- Max_7018 months agoHelper II
Thanks again! I wrote a short script for Part A & below is the end result, basically definiton is empty
Definition is being prepared. Polling URL: https://wabi-north-europe-h-primary-redirect.analysis.windows.net/v1/operations/xxxxxx-xxxxxx
Polling status: 200
WARNING: No definition parts returned.
Raw response:
{
"status": "Succeeded",
"createdTimeUtc": "2025-12-29T08:14:46.7263194",
"lastUpdatedTimeUtc": "2025-12-29T08:14:47.508336",
"percentComplete": 100,
"error": null
}