Forum Discussion
multiple customer design in fabric
Hi,
Can someone help me in designing the architecture design for a 100+customer solution in fabric. All the customers has data in azure db and has different struture and tables. I'm planning to create separate workspace for each customer. The azure db will be mirrored and shortcut to lakehouse will be created also we are planning to create a template in devops for deployment of fabric components through terraform.
I want idea related to metadata and pipelines creation for this solution and how each component across fabric can be used.
Hi DiKi-I,
With the Fabric provider, you can provision and manage workspaces, items, semantic models, and PBIR reports as code. For handling runtime binding and parameters, use Power BI REST from your pipeline. This separation is the current and supported approach.
Docs overview | microsoft/fabric | Terraform | Terraform Registry
Terraform Provider for Microsoft Fabric (Generally Available) | Microsoft Fabric Blog | Microsoft Fabric
GitHub - microsoft/fabric-terraform-quickstart: Examples for using the Terraform Provider for Microsoft Fabric
Thakn you.
9 Replies
- tayloramy
Super User
Hi DiKi-I,
This is a pretty big and high level ask for the forum. Without deep knowledge of your enviornment, I don't think we can make any reasonable recommendation.
Do you have a solutions architect in your organization you can consult with?
This is the type of project that a consulting firm would charge tens of thousands of dollars to help you build out.
While you're building this, if you run into any specific problems, I'm sure the community would be happy to help, but I'm not sure we can provide the overall architecture you're looking for.
If you found this helpful, consider giving some kudos. If I answered your quesiton or solved your problem, mark this post as the solution so future community members can find it easily. - KevinChant
Super User
I think your best option is to bring a recognized Fabric partner in to help with with the design and implementation.
- v-sgandrathi
Community Support
Hi DiKi-I,
Thank you for your question. Designing a multi-customer Fabric architecture for over 100 tenants is achievable with careful planning for scalability, data isolation, and automated deployment.
A typical method is to set up separate workspaces for each customer to ensure distinct data and permission boundaries, while keeping shared resources like pipeline templates, notebooks, and monitoring tools in a central platform workspace. Each workspace can have a mirrored Azure SQL database, connected to the Lakehouse for data ingestion.
To handle schema differences and automate processing, a metadata-driven design works well. This involves using a control table to define each customer’s source database, tables, schema mappings, and pipeline parameters. A master pipeline can then use these metadata entries to trigger ingestion and transformation for each customer.
For deployment, Terraform templates and DevOps pipelines help standardize the creation of Fabric components such as workspaces, pipelines, and capacities. Shared logic can be stored centrally and parameterized with tenant-specific metadata, keeping the solution flexible and scalable as the number of customers grows.
If you can share a diagram or example of your current workspace setup, it would be helpful in refining the metadata and pipeline design.
Thank you.
- v-sgandrathi
Community Support
Hi DiKi-I,
Just looping back once to check if everything's good on your end. Let me know if you need any final support happy to assist if anything’s still open.
Thakn you.
- DiKi-I
Post Partisan
what will be the approach for power bi report deployment. It is not possible to create separet report for all, can the parameter and connection be changed using terraform ci/cd deployment? Has someone implemented something like this?
- v-sgandrathi
Community Support
Hi DiKi-I,
Based on Microsoft documentation and established enterprise deployment patterns, the following approach is recommended for deploying Power BI reports in a multi-customer Fabric architecture.
For environments with more than 100 customers, maintaining individual report files for each customer is not practical. Instead, create a single thin report (containing only visuals) and reuse it across all customer workspaces. During deployment, publish this report to each workspace and connect it dynamically to the corresponding dataset or semantic model. This keeps the visuals consistent while ensuring each customer's data remains isolated.
To automate infrastructure tasks such as provisioning workspaces and capacities, use Terraform. For report-level actions like changing dataset bindings or updating parameters, Power BI REST APIs are more suitable. You can use endpoints like Rebind Report (In Group) to link the report to the appropriate dataset and Update Parameters (In Group) to adjust connection settings before refreshing the dataset. These APIs are detailed in Microsoft’s documentation and are commonly used in CI/CD pipelines.
In CI/CD workflows with Azure DevOps or GitHub Actions, include steps to loop through the customer list, publish the report, rebind datasets, update parameters, and trigger refreshes. Start by testing this process with a few customers to confirm parameter updates and refresh success before scaling up.
Maintain a central monitoring workspace to track deployment logs, refresh status, and errors for each tenant. Use a service principal for automation to improve security and permission control.
This approach is widely used for multi-tenant Power BI deployments and fits well with your Fabric setup, where each customer has a separate workspace and mirrored Azure SQL DB. The APIs and pipeline structure described are supported by Microsoft and proven effective in enterprise scenarios.
Reports - Rebind Report In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
Datasets - Update Parameters In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
The Microsoft Fabric deployment pipelines process - Microsoft Fabric | Microsoft Learn
Reports - Update Report Content In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
Thank you.