Skip to content
CSA Loom — the Microsoft Fabric experience for Azure tenants where Fabric isn't yet available: lakehouses, warehouses, notebooks, semantic models, Activator rules, Data Agents, across Commercial, GCC, GCC-High, and DoD IL5

Promote an ADLS Gen2 path to a OneLake shortcut

Comparative positioning note

This document is written from the perspective of Microsoft Azure, Cloud Scale Analytics, and CSA Loom. Any description of third-party or competing products, services, pricing, or capabilities is derived from publicly available documentation and sources believed accurate at the time of writing, and is provided for general comparison only. We do not claim expertise in, or authority over, any non-Microsoft product or service; the respective vendor's official documentation is the authoritative source for their offerings, which may change over time. Nothing here is intended to disparage any vendor — where a competing product has genuine advantages, we aim to note them honestly. Verify all third-party details against the vendor's current official documentation before making decisions.

This how-to backs the Promote ADLS path to OneLake shortcut button on the asset detail page for OneLake Lakehouses. Shortcuts are Microsoft Fabric's zero-copy federation primitive — the target bytes stay in ADLS / S3 / GCS / cross-OneLake while the Lakehouse exposes them as if they were native.

What it does

POST /api/catalog/shortcut
{
  "workspaceId": "<fabric-workspace-id>",
  "itemId":      "<lakehouse-id>",
  "name":        "bronze-customers",
  "path":        "Files",
  "target": {
    "adlsGen2": {
      "location":  "https://account.dfs.core.windows.net",
      "subpath":   "/raw/bronze/customers",
      "connectionId": "<optional-managed-connection-id>"
    }
  },
  "registerInPurview": true,
  "domain": "<purview-businessDomainId-guid>"
}

The BFF route calls Fabric POST /workspaces/{ws}/items/{item}/shortcuts and — when registerInPurview is true — chains an Atlas POST /entity with:

Field Value
typeName fabric_onelake_shortcut
qualifiedName https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{itemId}/{path}/{name}
displayName The shortcut name
comment OneLake shortcut → ADLS {location}{subpath}
businessDomainId Optional, from the body

The shortcut creation is the source of truth; Purview registration is best-effort. If Purview fails (NotConfigured, transient 5xx, role missing), the route still returns ok: true for the shortcut and surfaces the Purview failure via j.purview.error so the UI can render a soft warning.

Other target types

The same route accepts any of the four Fabric-supported target shapes:

"target": { "amazonS3": { "location": "https://my-bucket.s3.us-east-1.amazonaws.com", "subpath": "/data" } }
"target": { "googleCloudStorage": { "location": "https://storage.googleapis.com/my-bucket", "subpath": "/data" } }
"target": { "oneLake": { "workspaceId": "<otherWs>", "itemId": "<otherItem>", "path": "Tables/customers" } }

The OneLake-to-OneLake target is how you "mount" a Lakehouse from one workspace into another without granting workspace-level access.

Required configuration

Item Where Reason
Loom UAMI added as Member of the destination workspace Fabric portal Required to create shortcuts
Loom UAMI granted Storage Blob Data Reader on the ADLS account Azure RBAC Required to read shortcut bytes through ADLS Gen2
LOOM_FABRIC_BASE env var Console (bicep auto-wires https://api.fabric.microsoft.com/v1 or the .us Gov endpoint) Fabric data plane

List / delete

GET    /api/catalog/shortcut?workspaceId=...&itemId=...
DELETE /api/catalog/shortcut?workspaceId=...&itemId=...&path=Files&name=bronze-customers

The list view is also rendered on the asset detail page under the Shortcuts card when you open a OneLake item.