lineage-analysis

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

6|3|Updated Jul 4, 2026
One-click install
npx skills add https://github.com/InsightfulAnalytics/PBI_Agentic_Dev --skill lineage-analysis-insightfulanalytics
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: lineage-analysis
Source: https://github.com/InsightfulAnalytics/PBI_Agentic_Dev/tree/main/plugins/semantic-models/skills/lineage-analysis
Command: npx skills add https://github.com/InsightfulAnalytics/PBI_Agentic_Dev --skill lineage-analysis-insightfulanalytics

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Before modifying or deleting a Power BI semantic model, you need to know which reports depend on it and where they live. Manually checking every workspace is slow and error-prone, and missing a dependent report can break dashboards across the tenant. ## Core Features & Use Cases - Downstream Report Discovery: Scans all accessible Fabric workspaces in parallel 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; output results as formatted text or JSON for further processing. - Impact Analysis: Identify high-impact models, orphaned reports, and unexpected cross-workspace dependencies before making changes. - Use Case: Before deprecating a production semantic model, run the scan to list all connected reports across workspaces, then coordinate migrations 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 in parallel and lists every report whose datasetId matches the target model.

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

Use this lineage scan to enumerate all downstream reports bound to the dataset across workspaces before deletion. Reports in workspaces you cannot access will not appear, so combine with the admin lineage API for full tenant coverage.

Does Power BI report lineage 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 see, use the admin/reports or admin lineage APIs with a tenant admin token.

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 Power BI report dependencies?▼

The script only discovers Power BI reports, not Excel connections, composite models, paginated reports, notebooks, or dataflows. It also scans all workspaces per invocation, so running it in loops over many models risks API throttling.