---
title: "Managing Fabric with Terraform: Why It Matters and Where It Fits"
description: Manage Microsoft Fabric with Terraform. Automate environments, scale with confidence, and see how it fits alongside Fabric’s Deployment Pipelines
image: https://blog.arkahna.io/hubfs/Managing%20Microsoft%20Fabric%20with%20Terraform%20Why%20It%20Matters%20and%20Where%20It%20Fits%20(3).png
---

[Skip to the main content.](https://blog.arkahna.io/fabric-tf#main-content)

[![Arkahna_Brand+Word-Horizontal-WHITE](https://blog.arkahna.io/hs-fs/hubfs/logos/Arkahna_Brand+Word-Horizontal-WHITE.png?width=4000&height=1445&name=Arkahna_Brand+Word-Horizontal-WHITE.png "Arkahna_Brand+Word-Horizontal-WHITE")](https://arkahna.io)

[![Arkahna_Brand+Word-Horizontal](https://blog.arkahna.io/hs-fs/hubfs/logos/Arkahna_Brand+Word-Horizontal.png?width=2286&height=826&name=Arkahna_Brand+Word-Horizontal.png "Arkahna_Brand+Word-Horizontal")](https://arkahna.io)

- [Plan](https://arkahna.io/plan)
- [Build](https://arkahna.io/build)
- [Accelerate](https://arkahna.io/accelerate) 
    - [FeatureBoard](https://arkahna.io/featureboard)
    - [Marketplace Elements](https://arkahna.io/accelerate/marketplace-elements)
- [Run](https://arkahna.io/run) 
    - [Sigil](https://arkahna.io/sigil)
- [Blog](https://blog.arkahna.io)

Toggle Menu

Toggle Menu

- [Plan](https://arkahna.io/plan)
- [Build](https://arkahna.io/build)
- [Accelerate](https://arkahna.io/accelerate) 
    - [FeatureBoard](https://arkahna.io/featureboard)
    - [Marketplace Elements](https://arkahna.io/accelerate/marketplace-elements)
- [Run](https://arkahna.io/run) 
    - [Sigil](https://arkahna.io/sigil)
- [Blog](https://blog.arkahna.io)

- [Home](https://arkahna.io)
- [FeatureBoard](https://arkahna.io/featureboard)
- [Sigil](https://arkahna.io/sigil)
- [Blog](https://blog.arkahna.io)

[Facebook](https://www.facebook.com/arkahna) [Linkedin](https://www.linkedin.com/company/arkahna) [X](https://twitter.com/ArkahnaAU)

 3 min read

# Managing Fabric with Terraform: Why It Matters and Where It Fits

[![Picture of Cyril Gagnaire](https://blog.arkahna.io/hubfs/profile-pictures/image-20220311-023351.png) Cyril Gagnaire](https://blog.arkahna.io/author/cyril-gagnaire) :  Jul 6, 2025 1:49:52 PM

[terraform](https://blog.arkahna.io/tag/terraform) [fabric](https://blog.arkahna.io/tag/fabric)

![Managing Fabric with Terraform: Why It Matters and Where It Fits](https://blog.arkahna.io/hubfs/Managing%20Microsoft%20Fabric%20with%20Terraform%20Why%20It%20Matters%20and%20Where%20It%20Fits%20(3).png)

As Microsoft Fabric matures into a powerful unified analytics platform, more organisations are asking how to manage it at scale. The Fabric UI is great for hands-on work, but managing dozens of workspaces, users, and capacities manually can get messy fast.

## Enter: Terraform

In this post, we’ll explore why this industry-standard Infrastructure as Code (IaC) tool is a valuable addition to your Fabric environment management strategy, where it fits into the broader Fabric ecosystem, and how it complements rather than replaces tools like Fabric Deployment Pipelines.

### Why Use Terraform to Manage a Fabric Tenant

Microsoft Fabric is a powerful platform, but provisioning and configuring it manually via the UI becomes error-prone and time-consuming as you scale. Terraform brings **Infrastructure as Code (IaC)** to Fabric, letting you define your environment in code that can be versioned, reused, and automatically deployed.

Here’s why Terraform makes sense for managing your Fabric environment:

- **Standardise and Automate**:  
  Define Fabric workspaces, assign capacities, and configure roles consistently → no more manual errors.
- **Version Control Your Environment**:  
  Track changes in Git, collaborate with others, and audit every modification.
- **Scale with Confidence**:  
  Spin up dozens of workspaces or assign roles in seconds.
- **Enable CI/CD**:  
  Automate provisioning and plug Fabric into your DevOps pipelines.

### What Can Terraform Manage in Fabric?

The official [Microsoft Fabric Terraform provider](https://registry.terraform.io/providers/microsoft/fabric/latest/docs) is actively evolving, and currently supports key components such as:

- Workspaces (including Fabric capacity assignment)
- Lakehouses
- Notebooks
- Data pipelines
- Workspace permissions
- Deployment pipelines
- Power BI items (where applicable)

For example, here’s how you might create a workspace with Terraform:

> `resource "fabric_workspace" "sales_workspace" { name = "Sales Analytics" capacity = "prod-capacity" description = "Workspace for Sales Analytics team" }`  

While not every component is configurable yet, Terraform is already powerful for laying down your foundational structure.

The Fabric Terraform provider is actively being developed with new features being shipped regularly. I’m keeping an eye on their [GitHub repo](https://github.com/microsoft/terraform-provider-fabric/issues) to see what’s coming soon.

At the time of writing, I am keeping my eyes on these upcoming features:

- [Connections](https://github.com/microsoft/terraform-provider-fabric/issues/488)
- [Tenant Settings](https://github.com/microsoft/terraform-provider-fabric/issues/463)
- [Folders](https://github.com/microsoft/terraform-provider-fabric/issues/406)

### Where Terraform Stops and the Fabric UI Begins

While Terraform shines in provisioning environments, it doesn’t replace the need for the Fabric UI or the authoring experience.

Use the Fabric UI when you need to:

- Build or edit **notebooks**, **pipelines**, and **semantic models**
- Configure **data transformations** and **relationships** visually
- Perform **ad-hoc troubleshooting** or **data inspection**
- Fine-tune **Power BI visuals** and dashboards

Terraform is excellent for **infrastructure**, but Fabric’s **UI and authoring tools** remain essential for day-to-day content creation and exploration.

**Not sure when to use Terraform vs the Fabric UI? Here's a quick guide to what each is best at:**

| Task | Use Terraform | Use Fabric UI |
| --- | --- | --- |
| Create workspace | ✔️ | ✔️ |
| Assign workspace roles | ✔️ | ✔️ |
| Build semantic models | ❌ | ✔️ |
| Create reports or dashboards | ❌ | ✔️ |
| Design pipelines or notebooks | ❌ | ✔️ |
| Upload files to a Lakehouse | ❌ | ✔️ |

 

### Terraform vs. Deployment Pipelines in Fabric

Terraform and Deployment Pipelines solve different problems, here’s how they complement each other:

| Tool | What it does |
| --- | --- |
| Terraform | - Provisions infrastructure: workspaces, capacities, permissions - CI/CD approach to deploying content |
| Deployment Pipelines | - Moves content (reports, datasets) across dev/test/prod stages |

 

Think of Terraform as setting up the **stage**, and Deployment Pipelines as managing the **play**.

You might use Terraform to:

- Set up a new dev/test/prod environment with identical structure
- Assign workspace admins or viewer roles
- Connect a workspace to a dedicated capacity
- Deploy boilerplate artefacts

Then use Deployment Pipelines to:

- Promote reports and datasets from development to production
- Compare and validate changes across environments
- Control content lifecycle

### When to Use What

Terraform is great at setting up development, testing, and production environments. It automates user and group permissions while efficiently managing large-scale workspace deployments.

On the other hand, the Fabric UI is the best experience for developing data artefacts, creating visual representations, adjusting data flows, and promoting content effectively.

**Here’s how we typically decide what to use, and when:**

| **Use Case** | **Use Terraform?** | **Use Fabric Deployment Pipeline?** |
| --- | --- | --- |
| Provision new workspaces | ✔️ Yes | 🚫 No |
| Assign workspace permissions | ✔️ Yes | 🚫 No |
| Create lakehouses and notebooks | ✔️ (basic setup) | ✔️ (for editing) |
| Build DAX models and visuals | 🚫 No | ✔️ Yes |
| Promote a dataset to production | 🚫 No | ✔️ Yes (Deployment Pipeline) |

 

### Gotchas & Limitations

While the Terraform provider for Fabric allows us to manage quite a lot today, here are a few things to keep in mind:

- Most new Fabric features land in Preview, which may limit production use.
- Terraform support often lags behind new Fabric releases by a few months.
- Development of the Terraform provider is mostly community-driven, but Microsoft is actively triaging issues on GitHub.
- For full IaC, you’ll likely need to combine:
  
    - azurerm/fabric\_capacity for capacity deployment
    - azuread/azuread\_group for Entra ID group management

### What next?

Using Terraform to manage your Microsoft Fabric tenant isn’t a one-size-fits-all decision. It depends on where your organisation is in its data journey.

- **If you’re just getting started**, Terraform might feel like overkill. But setting it up early builds a solid foundation for scale, governance, and repeatability.
- **If you’re managing multiple environments, teams, or workloads**, it’s time to consider Terraform seriously. It helps you bring order, consistency, and automation to an otherwise manual setup.

At Arkahna, we work with organisations to map out their current state, design future-ready Fabric architectures, and implement scalable, code-based solutions to manage them.

This post is part of a short series on managing Fabric environments at scale, in the next one, I’ll dive into how we use Terraform alongside Deployment Pipelines to support CI/CD for content promotion.

**If you're exploring Terraform or rethinking your Fabric governance approach, reach out, we'd love to help.**

 

- [Tweet](https://twitter.com/share)

[![Medallion Architecture Meets Microsoft Fabric: Insights and Fiction](https://blog.arkahna.io/hubfs/blog-images/image-20240321-020917.png)](https://blog.arkahna.io/medallion-architecture-meets-microsoft-fabric-insights-fiction)

#### [Medallion Architecture Meets Microsoft Fabric: Insights and Fiction](https://blog.arkahna.io/medallion-architecture-meets-microsoft-fabric-insights-fiction)

![Picture of Cyril Gagnaire](https://blog.arkahna.io/hs-fs/hubfs/profile-pictures/image-20220311-023351.png?width=30&name=image-20220311-023351.png) [Cyril Gagnaire](https://blog.arkahna.io/author/cyril-gagnaire) : Apr 1, 2024 8:00:00 AM

Microsoft wants to recreate the undeniable success of Power BI but with a wider data remit by including Data Engineering, Data Warehousing and Data...

[data](https://blog.arkahna.io/tag/data) 

[Read More](https://blog.arkahna.io/medallion-architecture-meets-microsoft-fabric-insights-fiction)

[![Organising assets and access control in MS Fabric](https://blog.arkahna.io/hubfs/blog-images/DALL%C2%B7E%202024-04-22%2014.02.46%20-%20A%20wizard%20in%20a%20grand%2c%20ancient%20library%20filled%20with%20glowing%20books%20and%20scrolls%2c%20symbolizing%20data.%20The%20wizard%2c%20adorned%20in%20a%20long%2c%20flowing%20robe%20decorated%20wi-20240422-060246.webp)](https://blog.arkahna.io/organising-assets-and-access-control-in-ms-fabric)

#### [Organising assets and access control in MS Fabric](https://blog.arkahna.io/organising-assets-and-access-control-in-ms-fabric)

![Picture of Cyril Gagnaire](https://blog.arkahna.io/hs-fs/hubfs/profile-pictures/image-20220311-023351.png?width=30&name=image-20220311-023351.png) [Cyril Gagnaire](https://blog.arkahna.io/author/cyril-gagnaire) : Apr 29, 2024 9:00:00 AM

This article is a direct follow up from my previous blog post where I laid out my approach to the Medallion Architecture and how I see it fit in...

[data](https://blog.arkahna.io/tag/data) [architecture](https://blog.arkahna.io/tag/architecture) 

[Read More](https://blog.arkahna.io/organising-assets-and-access-control-in-ms-fabric)

[![Building Multi-Environment Terraform Projects in Azure](https://blog.arkahna.io/hubfs/blog-images/TF%20inputs%20and%20Environments.png)](https://blog.arkahna.io/building-multi-environment-terraform-projects-in-azure)

#### [Building Multi-Environment Terraform Projects in Azure](https://blog.arkahna.io/building-multi-environment-terraform-projects-in-azure)

![Picture of Ryan Royals](https://blog.arkahna.io/hs-fs/hubfs/ryan%20royals.png?width=30&name=ryan%20royals.png) [Ryan Royals](https://blog.arkahna.io/author/ryan-royals) : May 27, 2024 3:06:45 PM

Howdy! In my previous article about Getting Started with Terraform I talked about what Terraform is, why it's neat-o, and a small example on getting...

[terraform](https://blog.arkahna.io/tag/terraform) [cloud](https://blog.arkahna.io/tag/cloud) 

[Read More](https://blog.arkahna.io/building-multi-environment-terraform-projects-in-azure)

[![arkahna-brand-word-white](https://blog.arkahna.io/hubfs/arkahna-brand-word-white.png)](https://www.arkahna.io)

- [Privacy Policy](https://arkahna.io/privacy)
- [Terms of Sale](https://arkahna.io/terms)

© 2026 Arkahna Pty Ltd

[Facebook](https://www.facebook.com/arkahna)[X](https://twitter.com/ArkahnaAU)[Linkedin](https://www.linkedin.com/company/arkahna) [GitHub](https://github.com/arkahna)

We acknowledge the Traditional Custodians of the lands we live and work on, the Aboriginal and Torres Strait Islander peoples of Australia, and the Māori peoples of Aotearoa New Zealand.  We pay our respects to Elders past and present.

Return to top

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Cyril Gagnaire",
    "url" : "https://blog.arkahna.io/author/cyril-gagnaire"
  },
  "dateModified" : "2025-07-06T05:56:44.528Z",
  "datePublished" : "2025-07-06T05:49:52.000Z",
  "headline" : "Managing Fabric with Terraform: Why It Matters and Where It Fits",
  "image" : [ "https://blog.arkahna.io/hubfs/Managing%20Microsoft%20Fabric%20with%20Terraform%20Why%20It%20Matters%20and%20Where%20It%20Fits%20(3).png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.arkahna.io/fabric-tf",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.arkahna.io/hubfs/Arkahna_Brandmark.png"
    },
    "name" : "Arkahna Pty Ltd"
  }
}
```