Forum Discussion

LeifB's avatar
LeifB
Advocate II
2 months ago
Solved

Deployment Pipeline environment setup

We have a specific situation where we are building reports essentially as placeholders using old datasets, and eventually we will publish new equivalent reports to the same workspace using new datase...
  • oussamahaimoud's avatar
    2 months ago

    Hi LeifB,

     

    When you deploy a report through a Deployment Pipeline, Power BI tries to auto-bind the report to a dataset in the target stage that has the same name. If the new dataset doesn't exist yet in the target stage, the report will either:

    • Remain bound to the original (placeholder) dataset, or
    • Break entirely if the dataset isn't accessible from the target workspace

    Be intentional about which dataset the report is pointing to before you promote it.

     

    Deployment Pipeline Parameter Rules (used to remap data sources between stages) only apply to datasets, not to report-to-dataset bindings. You cannot use rules to automatically switch which dataset a report connects to, this must be done manually or via the Power BI REST API (Rebind endpoint).

     

    If you deploy placeholder reports now and later deploy the "real" reports to the same pipeline stages, Power BI will overwrite whatever is in the target stage. Make sure your team has a clear process to avoid accidentally overwriting a production-ready report with a placeholder version.

     

    Deployment Pipelines track lineage. If placeholder reports are built on old datasets, the lineage view can become confusing or misleading, especially if sensitivity labels differ between old and new datasets. This is cosmetic/operational but worth knowing.

     

    Since your UAT workspace will contain reports pointing to both UAT and Prod datasets, ensure that the service principal or user accounts used during deployment have appropriate access to both datasets. Cross-workspace dataset connections can silently fail if permissions aren't right.

     

    If the Prod-version report in your UAT workspace is connected to a Prod dataset (in a separate pipeline), deploying it via the report pipeline to a Prod workspace won't automatically follow that cross-workspace dataset reference. You may need to manually rebind post-deployment using the REST API:

    POST /reports/{reportId}/Rebind

     

    Deployment Pipelines have no native rollback. If a bad deployment goes to Prod, you'd need to redeploy a previous version manually. With placeholder reports in the mix, this risk is slightly elevated due to the complexity of what's in each stage.

     

    Here's my recommendations :

    • Document clearly which reports are placeholders vs. real, and enforce a naming convention or tag in the report description.
    • Use the REST API Rebind endpoint as part of your deployment runbook once the new reports are ready.
    • Test the full pipeline promotion end-to-end in a non-critical moment before going live with real reports.
    • Consider using deployment pipeline rules on datasets aggressively so dataset bindings are at least predictable.

     

    To sum up, the setup can work, but the biggest real-world risk is accidental overwriting and the manual rebind requirement. Those two points should be explicitly handled in your deployment runbook.

     

    Hope this helps! Please, don't forget to accept as solution and give kudos 👍 in order to keep helping others.

     

    Best regards,

    Oussama ( Data Consultant - Expert Fabric & Power BI)