Fabric Deployment¶
How the Fabric tier is stood up and kept in sync. The full step-by-step operator runbook lives
in the repo at
fabric/docs/DEPLOYMENT.md;
this page is the architecture summary.
Deployment model¶
Two independent channels feed a Fabric workspace — code and library:
flowchart LR
GH["GitHub / Azure DevOps<br/>fabric/notebooks/*.Notebook (source)"] -- "Git Integration sync" --> WS["Fabric workspace"]
WHEEL["core wheel<br/>(built by core-build.yml)"] -- "upload + publish" --> ENV["Fabric Environment"]
ENV -- "attached to" --> WS
WS --> LH["Lakehouse: scribe_iq_synthea_coherent<br/>Tables/silver · Tables/gold · Files/bronze"]
classDef f fill:#ecfeff,stroke:#06b6d4;
class WS,ENV,LH f
- Notebooks are synced via Fabric Git Integration — the
.Notebook/notebook-content.pysource is the single source of truth (ADR-021), and committed notebooks appear in the workspace after a Sync. - The
corewheel (narrow shared utilities only — Fabric importsfabric.*, never the LocalLite transforms) is installed via a Fabric Environment, built by the samecore-build.ymlthat publishes it for every tier (ADR-018).
One-time setup (summary)¶
- Create the workspace + a schema-enabled Lakehouse (
scribe_iq_synthea_coherent). - Create a Fabric Environment, upload the
corewheel as a custom library, publish it (publish can take several minutes), and attach it to the workspace/notebooks. - Connect Git Integration to the repo and Sync so notebooks 00–10 land.
- Run
00_setup→01_bronze_ingest(anonymous S3) →02–07Silver →08validation →09Gold →10compare. Or chain them in a Data Factory pipeline for a one-click run.
Gotchas (the runbook covers these in full)¶
- External (Git) repos ≠ Built-in libraries — the wheel must be added to the Environment, not expected to arrive via Git.
- Environment publish time — publishing a custom library is slow; wait for it before running.
- Schema-enabled lakehouse required — the
silver/goldschema namespaces depend on it. - Trial-tenant quirks —
FriendlyNameSupportDisabledtenants need the lakehouse GUID in OneLake paths (handled byFabricPlatform.storage_path()), never a hardcodedabfss://path.
Full procedure, IDs, and REST-automation path:
fabric/docs/DEPLOYMENT.md.
See also Engine Parity for how this tier relates to LocalLite.