Skip to content

Releases: bgarcevic/ripbi

v0.11.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:26
c939b01

Fixed

  • Power Query parameters used inside a record are no longer reported as unused. A
    name passed as a record value, such as Source{[Schema = SchemaParam, Item = "t"]} or
    Headers = [Key = TokenParam], was skipped, so the expression it names was flagged as
    unused even though removing it breaks refresh.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • fix(m): count names inside record literals as references by @bgarcevic in #197
  • chore(release): prepare 0.11.1 by @github-actions[bot] in #198

Full Changelog: v0.11.0...v0.11.1

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 12:44
fa3291e

Added

  • ripbi fetch downloads a model and every report built on it. Point it at a
    semantic model (a portal link, --workspace/--model, or type-to-filter pickers) and it
    finds every downstream report across workspaces, skips org-app copies, and prints
    which reports you can read before downloading anything — a scan that sees only some
    of a model's reports flags whatever only the missing ones use as unused. An incomplete
    set asks first on a terminal and refuses (exit 2) in CI unless
    --allow-incomplete. The model (TMDL) and the reports (PBIR) land in a folder with
    a ripbi.toml, so ripbi scan runs there with no flags (--scan does it for
    you), and .ripbi/source.json records where everything came from and what is
    missing. Signs in with the Azure CLI, an environment token, or a service principal;
    --dry-run forecasts only, --verify cross-checks the beta relations API.
  • scan warns about an incomplete fetch. Scanning a fetched folder whose
    source.json lists reports that could not be downloaded emits an
    incomplete_report_set skip notice naming them, so --strict fails on it.

Changed

  • Pickers filter as you type. On a terminal, the project picker (scan, report,
    and deps in a folder with several projects) and the fetch workspace and model
    pickers are one shared list: type to filter, arrows to move, Enter to choose, Esc to
    cancel. Piped input still gets the numbered list.

Fixed

  • Legacy .Report folders are read. A report folder with no definition/ (saved
    without the PBIR preview, or downloaded by fetch from a report the service stores
    in the older format) keeps its layout in a root report.json. It was parsed as a
    PBIR file: unknown_property notices for config, sections and theme, and none
    of its visuals counted, so fields only that report used were flagged unused.
  • Legacy layouts know every built-in visual. The matrix (pivotTable), shapes,
    KPIs, 100% stacked charts, buttons, navigators and the newer slicers and cards no
    longer raise unknown_object notices; their fields were already counted.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • feat(fetch): download a model and its downstream reports by @bgarcevic in #195
  • chore(release): prepare 0.11.0 by @github-actions[bot] in #196

Full Changelog: v0.10.1...v0.11.0

v0.10.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 09:25
0e4ee4d

Fixed

  • scan --compare-root no longer reports a model's existing findings as new when the
    other checkout had no connected reports.
    Connecting a model's first report used to
    compare against a skipped baseline as if it were clean, so every existing unused
    object failed the gate. The comparison now records the baseline as skipped: unused
    objects that already existed there are unverified (counted under the summary line,
    unverified: records in --plain, compare.unverified in --json) and never gate,
    while objects the change adds are still new. --json reports every baseline's
    coverage as compare.baseline (scanned, skipped, or unavailable); the Markdown
    summary and SARIF note an incomplete baseline too.
  • Measures used only in a visual container's conditional formatting are no longer
    reported unused.
    A PBIR background, border, or title rule driven by a measure
    (visualContainerObjects) now binds that measure, like a rule in the visual's own
    formatting.
  • A clean scan --summary no longer prints two blank lines above the verdict. The
    blank line under the notes already separates them, so the summary adds its own only
    when it has counts to separate from the verdict.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • fix(scan): drop the doubled blank line above a clean --summary verdict by @bgarcevic in #192
  • fix: skipped --compare-root baselines and container conditional formatting by @bgarcevic in #194
  • chore(release): prepare 0.10.1 by @github-actions[bot] in #193

Full Changelog: v0.10.0...v0.10.1

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:54
1c4d9c9

Changed

  • scan output puts the verdict last and ranks its notes. The scan now opens with
    the model's name and report count, lists its notes as indented ! lines (they change
    how to read the result: stale or partial stats, a by-name pairing) or dim · lines
    (background), and closes with the verdict as the last line of the output:
    ✓ No unused objects or ✗ 56 unused objects, then 74 of 130 reachable from 51 roots. Full paths, and the stats note when coverage is complete, appear only with
    --verbose. The note that external consumers are invisible now appears only when there
    are findings, as a hint under the verdict to check thin reports, Excel and XMLA
    clients before removing anything. Skip notices print above the report instead of
    after it. --json, --plain, SARIF and the Markdown summary are unchanged.
  • report and deps share the layout. Both open with the same model-name header
    and tiered notes, and end with a closing line: report with ✓ All bindings resolve or ✗ 2 unresolved bindings and what it read, deps with what the
    selection uses and what uses it. deps drops the every-run caveat that external
    consumers are invisible; the hint now appears only under a view with an Impact
    section. The stage ticker no longer prints a ✓ scanned … in 1.4s line; the wall
    time sits at the end of each command's closing line.
  • stub-report and update share the layout too. stub-report opens with the
    model's name, lists its notes as !/· lines, and ends with ✓ Created X.pbip and
    the next step under it (✓ Saved …/.pbi/cache.abf under --wait); the .pbip path
    is still alone on stdout. update ends with ✓ Updated ripbi 0.9.1 → v0.9.2 or
    ✓ ripbi 0.9.1 is up to date, and the daily new-version notice is a dim · line.

Added

  • [scan].external_consumers = "none" in ripbi.toml says nothing outside the
    scanned reports reads the model, and drops the check-before-removing hint.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • feat(cli): shared information hierarchy across commands by @bgarcevic in #189
  • docs(media): re-record demos for the shared output tiers by @bgarcevic in #191
  • build(deps): bump the cargo-dependencies group with 2 updates by @dependabot[bot] in #188
  • chore(release): prepare 0.10.0 by @github-actions[bot] in #190

Full Changelog: v0.9.1...v0.10.0

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 13:38
412cf91

Fixed

  • Bridge tables are no longer reported unused. A table that nothing references but
    that sits on the filter path between two live tables, such as Bridge in a snowflake
    Sales → Bridge → User, used to be reported unused, and deleting it broke the filter
    from User to Sales. Such a table now stays live along with its partitions and
    relationships, though its unreferenced columns are still reported. Filter direction
    counts: an unused dimension shared by two live fact tables is still a finding unless a
    relationship filters both ways. Every ingest format now reads cross-filter direction and
    cardinality.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • docs: split the scan page and reorganize the book by task by @bgarcevic in #185
  • fix(graph): keep bridge tables on a filter path between live tables by @bgarcevic in #186
  • chore(release): prepare 0.9.1 by @github-actions[bot] in #187

Full Changelog: v0.9.0...v0.9.1

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:39
f849aa2

Added

  • scan --emit tx-rm: the findings as JSON Lines for tomix's batch removal, so
    ripbi scan --emit tx-rm | tx rm --from - ./Model.SemanticModel --save removes every
    unused model object, dead auto date/time tables included, as one change. Each line names
    its object by type, table, and name, with ripbi's id beside it; report measures and
    bookmarks are comment lines. Needs a tx with rm --from.
  • Workspace-monitoring query logs (--queries-from PATH on scan and deps, or
    queries_from in ripbi.toml): an export of Fabric workspace monitoring's
    SemanticModelLogs (or Log Analytics' PowerBIDatasetsWorkspace) QueryEnd events
    — CSV, JSON rows, a Kusto REST or Log Analytics query API response, plain,
    gzipped, or zipped — makes every object a logged DAX or MDX
    query names a reachability root, so what Excel pivots, thin reports, and XMLA
    clients read stops being reported unused. ripbi deps --impact shows those objects
    in a Queried section (how often, how many users, last seen, clients, reports) and
    in queried plain records and a JSON queried array; scan --json counts them in
    summary.queried. User names never reach the output. A workspace-wide export is
    narrowed to the scanned model by ItemName/ItemId (--queries-item or
    queries_item when the service name differs), so another model's queries never
    keep this one's objects alive; a log that does not identify the model is a
    stale_state skip notice, so --strict fails on it. A queried table keeps its
    columns alive (a table expression returns every one), not its measures.

Changed

  • Broken visual bindings name the visual and page as Power BI Desktop shows them:
    the visual's type and literal title and the page's tab name, with the generated
    IDs in parentheses — lineChart visual 'Sick leave %' (id '6caf…') on page 'Absence' (id 'b725…') instead of only the IDs. Human, Markdown and SARIF
    output use the new phrase; scan --json adds it as broken[].location and
    keeps provenance unchanged, so baselines still match.
  • Builds against zip 9. An archive member whose name cannot be read now fails
    with an error instead of being skipped silently.

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

  • Add workspace-monitoring query logs as consumers (--queries-from) by @bgarcevic in #169
  • Neutralize a test comment and fix Clippy 1.99 lints by @bgarcevic in #174
  • ci: automate releases with a release PR by @bgarcevic in #175
  • ci: give Dependabot PRs conventional titles by @bgarcevic in #179
  • build(deps): bump source-map-js from 1.2.1 to 1.2.2 in /desktop by @dependabot[bot] in #178
  • build(deps): bump rustls from 0.23.44 to 0.23.45 by @dependabot[bot] in #177
  • test: add Excel OLAP pivot fixtures for the upcoming xlsx ingest by @bgarcevic in #170
  • build(deps): bump cargo dependencies and adapt to zip 9 by @bgarcevic in #181
  • build(deps): bump the cargo-dependencies group across 1 directory with 2 updates by @dependabot[bot] in #182
  • feat(scan): name visuals and pages as Power BI Desktop shows them in broken bindings by @bgarcevic in #183
  • feat(scan): --emit tx-rm, findings as JSON Lines for tx rm --from by @bgarcevic in #184
  • chore(release): prepare 0.9.0 by @github-actions[bot] in #176

New Contributors

  • @github-actions[bot] made their first contribution in #176

Full Changelog: v0.8.1...v0.9.0

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 29 Sep 21:48
38d3921

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

Full Changelog: v0.8.0...v0.8.1

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 09:33
0a6b339

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 17:57
2a3eafe

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

Full Changelog: v0.6.1...v0.7.0

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 09:33
030f268

Downloads

  • CLI: the ripbi-<version>-<target>.zip / .tar.gz archives contain ripbi and rib.
  • Desktop (experimental, Windows x64): use ripbi-desktop-<version>-x86_64-pc-windows-msvc-setup.exe for the graphical interface. It shares this release's version and analysis engine.

The desktop installer is currently unsigned, so Windows may display an unknown-publisher or SmartScreen warning. It installs for the current user and downloads WebView2 if the runtime is missing (internet access required). Desktop updates are manual: download and run the installer from a newer release. ripbi update updates only the CLI.

sha256sums.txt covers both the CLI archives and desktop installer.

What's Changed

Full Changelog: v0.6.0...v0.6.1