PBIP / PBIR / TMDL Workflow
PBIP makes Power BI source-control friendly by saving report and model metadata as text files.
Structure
Project/
├── Report.pbip
├── Report.Report/
│ ├── definition.pbir
│ └── definition/
└── Report.SemanticModel/
├── definition.pbism
└── definition/
Rules
.Report/definition.pbirbinds the report to a semantic model..Report/definition/contains PBIR report JSON..SemanticModel/definition/contains TMDL model files..pbi/contains local cache/settings and should normally not be committed..platformcontains Fabric identity. Do not invent or casually rewrite it.
Safe edit workflow
Inspect the target structure and binding. Prefer pbir for report edits and
Tabular Editor/TOM for model edits when available; direct text edits remain
valid when their structure and references can be checked. Validate affected
PBIP/PBIR/TMDL files with the validation skill; missing native tools are
reported as unavailable, not required installations.
node workspace/engine/validate-pbip.mjs .
pbir validate "Report.Report" --all
Data and semantic-model change boundary
Before changing a source query, schema mapping, relationship, model property, or security-relevant semantic behavior, follow the shared data-change boundary. For PBIP, the owning migration mechanism is normally Power Query or model metadata; do not create a SQL migration or directory unless the approved target is actually SQL. Source and default fixture evidence is synthetic or reduced. Never include credentials, private tenant or connection details, or production extracts outside their exact approved operational scope; retain necessary nonsecret model and connection metadata. Local source-edit authority does not authorize source-data, RLS, refresh, access, identity, or service mutation.
Rename checklist
When renaming tables, columns, measures, pages, or visuals, search across:
- TMDL table files
- relationships
- PBIR visual JSON
- filters and sort definitions
- report metadata / visual calculations
- DAX query files
- diagram layouts
Complete rename cascades within the exact authorized local scope, including
their affected references. Ask only if the cascade expands that scope. Local
rename authority does not cover report rebinding, .platform identity, RLS,
service, publish, or access/refresh changes; require explicit authority for those.