Skip to content

Support Microsoft Fabric dbt Job as a recognized orchestrator #2161

@rabbyn

Description

@rabbyn
<style> </style>

Summary

Request to add Microsoft Fabric dbt Job as a supported orchestrator in Elementary's job metadata collection, alongside the currently supported dbt_cloud, airflow, dagster, prefect, and github_actions.


Context

Microsoft Fabric introduced native dbt job support (Public Preview, December 2025). Unlike dbt Cloud or Airflow, a Fabric dbt Job is a fully managed workspace item — Microsoft provides a versioned dbt Job Runtime (currently dbt Core v1.9) that handles execution, scheduling, and monitoring entirely within the Fabric platform. Users author models and configure jobs via the Fabric UI; there is no CLI invocation to customize.

This is fundamentally different from other supported orchestrators:

Orchestrator How dbt is invoked Can pass --vars? Exposes env vars?
Airflow User-authored CLI / Operator ✅ Yes ✅ Yes (limited)
dbt Cloud Managed, but API-accessible ✅ Via API ✅ DBT_CLOUD_JOB_ID, etc.
Fabric dbt Job Fully managed by Microsoft ❌ Not directly ❓ Unknown / undocumented

What I'd like Elementary to support

Enable Elementary to collect job metadata when dbt runs inside a Microsoft Fabric dbt Job, by:

  1. Adding fabric_dbt_job (or microsoft_fabric) to the recognized orchestrator values in the Variables supported format table
  2. Mapping any Fabric-injected runtime env vars (e.g. a hypothetical FABRIC_JOB_ID, FABRIC_RUN_ID, FABRIC_WORKSPACE_ID) to Elementary's standard fields: job_id, job_run_id, job_url, job_run_url
  3. Documenting any workaround (e.g. using Elementary's --vars override via a pre/post-hook if Fabric ever exposes that capability)

Key open question / dependency

The main blocker is whether Microsoft Fabric exposes job/run context as environment variables inside the managed dbt runtime. This is currently undocumented in Fabric's public docs. It would be helpful if the Elementary team could:

  • Confirm whether Fabric runtime env vars are accessible to dbt at execution time
  • Or flag this as a dependency on Microsoft exposing those variables (similar to how Kestra support was discussed in Support Kestra orchestrator #1430)

If Fabric does expose env vars, the Elementary-side implementation should be straightforward, following the same pattern used for dbt_cloud and github_actions.


Why this matters

Fabric dbt Jobs are growing in adoption among Microsoft-stack teams (Azure Data Warehouse, Fabric Warehouse). These users currently have no way to correlate Elementary data quality alerts with the specific Fabric job run that produced the data, which is one of Elementary's core value propositions. Supporting this orchestrator would unlock Elementary for a large segment of enterprise Microsoft/Azure users.


References

  • Elementary docs: https://docs.elementary-data.com/oss/guides/collect-job-data
  • Microsoft Fabric dbt Job overview: https://learn.microsoft.com/en-us/fabric/data-factory/dbt-job-overview
  • Related issue (Kestra): Support Kestra orchestrator #1430
  • Fabric dbt Job announcement: https://blog.fabric.microsoft.com/en-US/blog/dbt-job-in-microsoft-fabric-ship-trustworthy-sql-models-faster-preview/

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions