New to Kestra?
Use blueprints to kickstart your first workflows.
Trigger a Microsoft Fabric Data Pipeline from Kestra, pass dynamic parameters, poll for completion, and chain results with upstream and downstream tasks.
id: fabric-run-data-pipeline
namespace: company.team
variables:
workspace_id: your-workspace-guid
pipeline_id: your-pipeline-guid
tasks:
- id: run_pipeline
type: io.kestra.plugin.microsoft.fabric.data.engineering.RunPipeline
tenantId: "{{ secret('FABRIC_TENANT_ID') }}"
clientId: "{{ secret('FABRIC_CLIENT_ID') }}"
clientSecret: "{{ secret('FABRIC_CLIENT_SECRET') }}"
workspaceId: "{{ vars.workspace_id }}"
pipelineId: "{{ vars.pipeline_id }}"
parameters:
environment: production
date: "{{ now() | dateFormat('yyyy-MM-dd') }}"
wait: true
pollFrequency: PT10S
timeout: PT2H
Trigger and monitor a Microsoft Fabric Data Pipeline directly from Kestra. This blueprint authenticates to Fabric with a service principal, submits a pipeline run with runtime parameters, and blocks until the job reaches a terminal state. It closes the gap between Fabric's own scheduling and the wider data platform: instead of running Fabric pipelines in isolation, you orchestrate them alongside ingestion, transformation, reporting, and alerting from one declarative workflow.
run_pipeline task uses io.kestra.plugin.microsoft.fabric.data.engineering.RunPipeline to call the Fabric REST API.tenantId, clientId, and clientSecret are read from Kestra secrets.workspaceId and pipelineId, both wired to the workspace_id and pipeline_id flow variables.parameters pass environment and a templated date ({{ now() | dateFormat('yyyy-MM-dd') }}) into the pipeline run.wait: true, the task polls every pollFrequency (PT10S) until the run completes, fails, is cancelled, or is deduped, bounded by a timeout of PT2H.Fabric's built-in scheduler runs pipelines on a clock, but it cannot react to external events, retry across tools, or stitch a Fabric run into an end-to-end lineage. With Kestra you add event and schedule triggers, automatic retries, full execution lineage across systems, and declarative YAML that lives in Git. You can gate the Fabric run on upstream data landing, then fan out to notifications or BI refreshes, all in one place.
FABRIC_TENANT_ID: Entra ID tenant ID.FABRIC_CLIENT_ID: service principal client ID.FABRIC_CLIENT_SECRET: service principal client secret.FABRIC_TENANT_ID, FABRIC_CLIENT_ID, and FABRIC_CLIENT_SECRET as Kestra secrets.workspace_id and pipeline_id variables with your actual Fabric GUIDs.parameters map to match the parameters your pipeline expects.wait: false for fire-and-forget runs when you do not need to block.pollFrequency and timeout to match typical run duration.