Deploy to Fabric¶
This library stops at Fabric-compatible artifacts: raw pipeline JSON or *.DataPipeline/ item folders. Getting those into a workspace is a separate step. The usual path is Git sync; teams with promotion pipelines often pair the export with fabric-cicd, Terraform, or the Items REST API.
Primary path: Git sync¶
- Author pipelines in Python and export item folders:
Or export several at once with
from fabric_data_pipelines import Pipeline, Wait pipeline = Pipeline( name="Daily_Silver_Sales_Transform", activities=[Wait(name="pause", wait_time_in_seconds=30)], ) pipeline.save_item("workspace") # -> workspace/Daily_Silver_Sales_Transform.DataPipeline/save_workspace([...], "workspace"). - Commit the generated folders into the repository that is connected to your Fabric workspace (GitHub or Azure DevOps). A typical layout:
- In Fabric, connect the workspace to that repo/branch (Workspace settings → Git integration) if it is not already connected.
- Sync from Git into the workspace. Fabric creates or updates the pipeline items from the committed
*.DataPipeline/folders.
Pin Pipeline(logical_id=...) when renames must keep the same Fabric identity.
See Exporting for logicalId and .schedules behavior.
Pair with fabric-cicd¶
fabric-cicd deploys and promotes Fabric items across workspaces. A common split:
- This library authors validated
*.DataPipeline/folders (and related content) in Git. - fabric-cicd publishes those items into target workspaces as part of a release or environment promotion.
Export on merge (or in a release job), then point fabric-cicd at the folder that contains your item definitions. See also CI with GitHub Actions.
Pair with Terraform¶
The Fabric Terraform provider manages workspace resources and item lifecycle. Use this library when you want typed Python to own the pipeline definition content, then:
- commit
*.DataPipeline/folders and let Git sync apply them, or - feed
Pipeline.to_definition()/ exported JSON into whatever workflow you use alongside Terraform-managed capacity, workspaces, and connections.
Treat Terraform as infra and promotion; treat fabric-data-pipelines as the authoring layer for pipeline JSON.
REST Items API¶
For scripts or custom deployers that call the Fabric Items API directly:
definition = pipeline.to_definition()
# definition["parts"] holds base64 InlineBase64 payloads for
# pipeline-content.json and .platform
Note: .schedules is written by save_item() for Git item folders; it is not included in the Items API definition payload returned by to_definition().
Next steps¶
- Migrate from Fabric — UI/Git item folders → typed Python source
- Exporting — JSON vs item-folder details
- CI with GitHub Actions — validate on PR, export on merge
- How this compares — UI, fabricflow, fabric-cicd, Terraform