Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Supported inputs

ripbi reads Power BI files from disk. It never connects to a workspace, opens Power BI Desktop, or reads row data.

InputModelReports
PBIP project (.pbip, or its folder)the TMDL .SemanticModelthe PBIR .Report folders
.SemanticModel folder, or its definition/TMDLpaired from siblings or --report
.Report folderpaired through its definition.pbirPBIR, including the phone layout
model.bim (TMSL)yesnone: pass --report
.pbit templateyesyes
.pbix fileyes, decoded from the compressed DataModel (metadata only)yes
thin .pbix (live connection)none: pass --model, or keep one model beside ityes
.abf backupyesnone: pass --report

PBIX and .abf models also carry storage sizes, so a scan of one says what the unused objects cost. A PBIP or TMDL model can borrow sizes from a backup, a PBIX, or a VertiPaq Analyzer .vpax: see Storage sizes.

How reports find their model

A report pairs with a model by the path its definition.pbir names, then by the PBIP naming convention (X.Report beside X.SemanticModel), then by the dataset name of a live connection. When several models share a folder, --model picks one and the scan walks the folder for the reports bound to it. The full rules are in inputs and pairing.

When a file has something ripbi does not know

Power BI formats change between releases. ripbi never fails because of an unknown property or object: it skips it and prints a skip notice on stderr, grouped under one header. A skip that could hide a reference is reported, never silent, because it could make a used object look unused. Pass --strict to turn any skip notice into exit code 2, which suits CI.

Source formats and drift policy documents each parser, the TMDL and PBIR shapes it reads, and the full list of properties skipped on purpose.