Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Ask the Fabric Databases & App Development teams anything! Live on Reddit on August 26th. Learn more.

Proposal: Power BI Needs an “Advanced Developer Query Editing Mode”

 

As Power BI matures...

As Power BI matures into a platform used by professional developers, enterprise architects, and pro makers, it’s time to offer a more technically sane way to edit queries in Power BI Desktop — without triggering full-model refresh cascades or metadata paranoia.

Right now, editing a single step in the Advanced Editor can force a total model recompilation, revalidation of unrelated tables, and refresh of queries that have no dependency on the edited query. This breaks developer flow, crushes productivity, and discourages safe iterative work.

I propose the introduction of Advanced Developer Query Editing Mode — a set of capabilities designed to give experienced builders more control and insulation while editing Power Query M code.


🔧 Key Capabilities

  • 1. Schema Freeze Toggle
    ☑️ Freeze downstream model schema during edit
    Prevents Power BI from re-validating relationships, measure bindings, and load metadata unless columns/data types change.
  • 2. Staged Apply / Batched Changes
    Edit multiple queries and stage changes like a Git workspace
    Preview schema impact across all edits before committing
    Click “Apply All” to push changes atomically
    Avoids intermediate refresh loops while editing shared or chained queries
  • 3. Draft / Dev-Only Queries
    Mark a query as Draft or Dev-Only
    Don’t participate in model refresh
    Don’t trigger metadata propagation
    Safe zones for in-progress logic
    Use case: Testing surrogate logic, new filters, or schema transformation without risk to existing visuals or dataflows
  • 4. Schema Contract Lock
    Treat the model like an interface contract
    Lock column names and data types
    Require explicit opt-in to update schema
    Only revalidates downstream items when you manually choose to break the contract

🎯 Why This Matters

Power BI is increasingly used in DevOps, composite models, semantic layer design, and CI/CD scenarios — we need tools that respect the developer workflow.

Current behavior punishes developers for doing the right thing (editing via Advanced Editor, isolating logic, composing reusable queries). What we need is trust, control, and insulation — not defensive refreshes at every keystroke.


🛡️ In Summary

I'm not asking for magic. I'm asking for:

  • Control over when metadata updates trigger
  • Predictable model refresh behavior
  • Safe zones for development logic
  • The ability to edit like a pro without being punished like a power user

Power BI is growing up! It’s time the query editing experience grows with it.

P.S.

🌍 How This Benefits Microsoft

  • Accelerate developer velocity across Power Platform, Fabric, and enterprise BI teams by reducing friction and refresh overhead.
  • Improve model quality by encouraging safe experimentation, modular query design, and schema discipline — all without fear of breaking visuals or triggering unintended refreshes.
  • Strengthen trust in Power BI as a scalable, professional-grade modeling tool — not just a dashboard builder.
  • Enable CI/CD maturity by aligning Power BI with modern dev workflows like Git staging, schema contracts, and draft logic zones.
  • Reduce support load by minimizing refresh bugs, schema sync issues, and developer confusion caused by hidden metadata propagation.

This change isn’t just about convenience — it’s about empowering builders, protecting quality, and future-proofing the platform.

Status: Needs Votes
Comments
miguel
Community Admin
Status changed to: Needs Votes
 
SJCuthbertson
Advocate I
Just a random user here who stumbled across this... Point (3) "Draft / Dev-Only Queries" is already possible in Power Query, isn't it? Tickboxes for "Enable load" and "Include in report refresh". These are not as obvious what they do as they perhaps could be, but I think it's the same effect being asked for here. Similarly, what is novel about point (2) that isn't already served by the existing option to close without applying, rather than Close & Apply? I'm not sure I understand the difference between points (1) and (4), so that might need some clarification. More broadly, my personal (perhaps controversial?) take is that more advanced/pro usage scenarios are not doing anything complex in Power Query - they're simply loading data that's been transformed upstream, in Fabric or another DW/DL/LH type source - which makes improvements like these unnecessary for those user groups. Complex Power Query set ups are more common with less mature usage scenarios, and I'm not sure many of those user subsets would really benefit from yet another feature toggle that needs to be learned about.