Skip to content

Repository files navigation

PBI Lineage Explorer

Version License

A Power BI custom visual that renders an interactive, topological lineage graph showing how Dataflows, Datasets, and Reports connect across your Power BI tenant.


Features

  • Topological stage layout — nodes arranged left-to-right by dependency depth
  • S-curve edges with directional arrows
  • Workspace, Dataflow, and Report filters with live search and workspace subtitle
  • Node search with lineage filter — searching collapses the graph to matching nodes plus their full upstream/downstream lineage; use / buttons to jump between exact matches with a 1 / 3 counter
  • Dynamic summary bar — Total / Success / Failed / In Progress counts update live to reflect filtered nodes; shows 180 (617) format when a filter is active
  • Click a node to highlight its full upstream/downstream lineage
  • Right panel — upstream/downstream list with direct/indirect indicators
  • Impact bar — shows how many datasets and reports depend on a selected node
  • Refresh status — Success / Failed / In Progress badges with relative timestamps
  • Stage collapse — collapse any pipeline stage column
  • Light / Dark theme — automatically matches the Power BI report theme
  • Normal / Compact view toggle
  • Timezone toggle — switch between your local timezone (UTC+5:30) and UTC; timezone label shown directly in every timestamp
  • Failed Only filter
  • Workspace color legend
  • Drag-to-pan — click and drag on empty canvas to scroll the graph
  • Zoom controls / + buttons (20%–200%) and Ctrl+Wheel to zoom; reset button restores 100% zoom and scroll position

Screenshots

Main View Main view of the PBI Lineage Explorer

Node Details Lineage node details and layout

Light Theme Light Theme Support


Quick Start

Option A — Use the pre-built visual (easiest)

  1. Download the latest .pbiviz file from the Releases page of this repository
  2. In Power BI Desktop or Service: Insert > More visuals > Import from file
  3. Select the .pbiviz file
  4. Follow the DAX Setup steps below

Option B — Build from source

# Prerequisites: Node.js 18+, npm
npm install -g powerbi-visuals-tools

# Clone and install
git clone <this-repo-url>
cd LineageVisualPBI
npm install

# Dev server (hot reload in Power BI)
npm run start

# Production package
npm run package
# Output: dist/LineageVisualPBI*.pbiviz

Data Setup

The visual requires a single flat table added to your Power BI model.

Required Table Schema

You need one table with the following concept representing a lineage connection between an upstream node (Source) and a downstream node (Target).

Field Type Required Description
sourceId Yes* Globally unique ID for the upstream item. *Required only if a source node exists.
sourceName No Display name of the upstream item
sourceType No Exactly: Dataflow, Dataset, or Report
sourceWs No Workspace display name for the upstream item
sourceStatus No One of: success, failed, progress
sourceTime No Last successful refresh timestamp for the upstream item (expected in UTC)
sourceUrl No Direct URL to the item in Power BI Service
targetId Yes* Globally unique ID for the downstream item. *Required only if a target node exists.
targetName No Display name of the downstream item
targetType No Exactly: Dataflow, Dataset, or Report
targetWs No Workspace display name for the downstream item
targetStatus No One of: success, failed, progress
targetTime No Last successful refresh timestamp for the downstream item (expected in UTC)
targetUrl No Direct URL to the item in Power BI Service

A sample Excel file (PBI_Lineage_Flat.xlsx) with the correct column structure is included in this repo. Import it into Power BI to see how the single flat table works.

Step 1 — Add the visual to your report

  1. Add the PBI Lineage Explorer visual to a report page
  2. In the Fields pane, map the sourceId, sourceName, sourceType, sourceWs, etc. to their respective placeholders under Source Data and Target Data.
  3. The lineage graph will render automatically!

Sample Data

PBI_Lineage_Flat.xlsx contains a single sheet:

Sheet Description
Sheet1 Flat table containing both node details and dependency edges

Import this single flat table into your Power BI model to get started immediately. No relationships or joins are necessary.


NodeType Values

Value Colour Represents
Dataflow Blue Power BI Dataflows (Gen1 or Gen2)
Dataset Green Semantic models / Datasets
Report Orange Power BI Reports

RefreshStatus Values

Value Badge Meaning
success Green Last refresh succeeded
failed Pink Last refresh failed
progress Yellow (animated) Refresh currently running
(blank) No refresh data

Keyboard & Mouse Shortcuts

Input Action
Ctrl+F Focus the search box
Esc Clear selection, search, and failed filter
/ buttons Jump to previous / next search match
Click + Drag (canvas) Pan the graph
Ctrl+Scroll Zoom in / out
/ + buttons Step zoom out / in (20% steps, 20%–200%)
Ctrl+0 Reset zoom to 100% and scroll to origin
Reset button Restore 100% zoom and scroll to origin

Project Structure

LineageVisualPBI/
├── src/
│   ├── visual.ts              # Main visual entry point + static DOM
│   ├── interfaces.ts          # NodeData, EdgeData types
│   ├── settings.ts            # Formatting settings
│   ├── renderer/
│   │   ├── Toolbar.ts         # Filter dropdowns with search
│   │   ├── CardBuilder.ts     # Node card renderer
│   │   ├── EdgeDrawer.ts      # SVG S-curve edge drawing
│   │   ├── LayoutEngine.ts    # Topological stage layout
│   │   ├── RightPanel.ts      # Upstream/downstream panel
│   │   ├── TooltipManager.ts  # Hover tooltips
│   │   └── ImpactBar.ts       # Impact analysis bar
│   └── utils/
│       ├── helpers.ts         # Color palette, escaping
│       └── graphUtils.ts      # Ancestor/descendant traversal
├── style/
│   └── visual.less            # All styles
├── capabilities.json          # Field well definitions
├── pbiviz.json                # Visual metadata
├── PBI_Lineage_Flat.xlsx
└── Working PBI DAX Code HTML viewer.txt   # Standalone HTML version (no custom visual needed)

Development

npm run start    # Dev server at https://localhost:8080 (enable in Power BI settings)
npm run package  # Build .pbiviz for distribution
npm run lint     # ESLint check

To test with the dev server in Power BI:

  1. Go to Power BI Service → Settings → Enable developer visual
  2. Add the Developer Visual from the visualization pane to a report

Support

If you find this visual useful, consider supporting the project:

Buy Me A Coffee


Author

Sunil Shettysnlshetty87@gmail.com


License

MIT

About

Uses Native table to create the visual

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages