lineage-analysis

Trace downstream Power BI reports connected to a semantic model across Fabric workspaces.

887|131|Updated Jan 15, 2026
One-click install
npx skills add https://github.com/data-goblin/power-bi-agentic-development --skill lineage-analysis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: lineage-analysis
Source: https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/lineage-analysis
Command: npx skills add https://github.com/data-goblin/power-bi-agentic-development --skill lineage-analysis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires azure-identity, requests, and includes scripts (resource) components.

What problem does it solve?

Before modifying or deleting a semantic model, you need to know which reports depend on it and where they live. Manually checking every workspace in a Fabric tenant is slow and error-prone, and missing a dependent report can break dashboards for entire teams.

Core Features & Use Cases

  • Downstream Report Discovery: Scans all accessible workspaces via the Power BI REST API to find every report bound to a given semantic model, grouped by workspace.
  • Flexible Lookup: Resolve models by workspace and model name, or pass a dataset GUID directly with the --dataset-id flag; JSON output mode supports piping into other tools.
  • Impact Analysis: Identify high-impact models with many downstream reports, spot orphaned or test reports connected to production models, and detect unexpected cross-workspace dependencies before making changes.
  • Use Case: Before deprecating a shared semantic model, run the script to list all 15 connected reports across 4 workspaces, then coordinate migration with each report owner.

Quick Start

Ask the agent to find all downstream reports connected to the semantic model named "Sales Model" in the "Analytics" workspace.

Frequently Asked Questions about lineage-analysis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find all reports connected to a Power BI semantic model?

Run the get-downstream-reports.py script with the workspace and model name, or pass a dataset GUID with --dataset-id. It scans all accessible workspaces via the Power BI REST API and lists every report whose datasetId matches the model.

How to do impact analysis before deleting a Power BI dataset?

Use this lineage script to enumerate all downstream reports grouped by workspace before modifying or deleting a model. Reports in unexpected workspaces may indicate copies or thin reports that would break when the model changes.

Does Power BI lineage analysis require tenant admin permissions?

No, workspace contributor access is sufficient for this script since it only scans workspaces you can access. For full tenant coverage including workspaces you cannot access, use the admin/reports API with a tenant admin token instead.

What dependencies does the Power BI lineage script need?

The script requires the azure-identity and requests Python packages, installed via pip install azure-identity requests. Authentication uses DefaultAzureCredential, which works with az login, managed identity, or environment variables.

What are the limitations of scanning reports by datasetId?

The script only discovers Power BI reports, not Excel workbooks, composite models, paginated reports, notebooks, or dataflows that also consume the model. For complete lineage including those item types, use the Fabric admin lineage API or the lineage view in the Power BI service.