This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
Your file has been submitted successfully. We’re processing it now - please check back in a few minutes to view your report.
04-19-2026 00:19 AM - last edited 04-19-2026 10:51 AM
One notebook. 13 tools. Zero guesswork.
A comprehensive diagnostic, remediation, and security auditing toolkit for Microsoft Fabric semantic models — delivered as a single self-contained Fabric notebook with an interactive ipywidgets console. Scans any Import / Direct Lake / DirectQuery model, produces a full HTML dashboard with scores and findings, and auto-applies fixes via TOM writes.
Three features in this notebook solve problems that no existing Fabric or Power BI tool addresses end-to-end:
🔒 Security X-Ray — Effective Access Map
Enterprise Power BI security is managed through Azure AD groups, not individual users. An AD group assigned to an RLS role might contain 200 users, nested sub-groups, and service principals. Until now there was no tool, no REST API, no sempy function that answered:
"Given all the RLS filters, OLS restrictions, AD group memberships, and workspace roles — what does each real human actually see?"
Security X-Ray combines TOM + DAX INFO.ROLES() + Microsoft Graph /transitiveMembers + Fabric REST roleAssignments into a single Effective Access Map that flags the critical blind spot: users who bypass RLS via workspace Admin/Member/Contributor privileges — a silent risk the standard Power BI UI never surfaces.
🤖 AI Generation — Schema-Aware Descriptions at Scale
Writing meaningful descriptions, synonyms, and AI instructions across hundreds of tables, columns, and measures is impractical by hand. Generic AI prompts miss business context and produce bland, interchangeable text that weakens Copilot quality. Bringing rich schema context into AI generation from inside a Fabric notebook hasn't been possible — until now.
"How do I make every measure, column, and table in my model Copilot-ready with descriptions, synonyms, and AI instructions that actually reflect my business — without writing them all by hand?"
AI Generation combines Azure OpenAI via Fabric Copilot auth (no API key, no endpoint config — just synapse.ml.fabric.credentials.get_openai_httpx_sync_client()) with full schema context injection: relationships, data types, DAX expressions, and user-supplied business domain. Every generated description is grounded in the actual model, not hallucinated. Reviewable plan before any TOM write, with graceful fallback to rule-based templates when AI is unavailable.
🔄 Model Diff — Cross-Workspace Drift Detection
Semantic models live across multiple workspaces — dev, test, UAT, prod, client A, client B. There is no built-in Fabric tool that compares two models to answer "what changed?" Drift happens silently: someone adds a measure in dev, tweaks a DAX formula in prod, removes a column during a refactor — and these changes go unnoticed until a report breaks.
"What changed between my dev model and my prod model? Which tables, columns, or measures were added, removed, or modified — and are any DAX expressions different?"
Model Diff uses sempy TOM reads across two workspaces + tabular schema comparison + DAX expression normalization to produce a structured drift report covering tables, columns, measures, relationships, and DAX changes. Essential for DataOps / release workflows and multi-tenant engagements where models live in many places.
🎯 13 Tools In One Scan
⚙️ Auto-Fix 9 Categories Via TOM
Preview all generated fixes in a reviewable plan, then apply selected ones: AI/template descriptions, synonyms (Culture ObjectTranslation), hidden keys, format strings, summarize-by, model CustomInstructions, AI instructions, schema reduction (isAvailableInMDX + LinguisticMetadata Entity Visibility), role descriptions.
🏗️ Technical Highlights
🚀 Quick Start
Cell 1 (install) → Cell 2 (engine) → Cell 3 (console + Run Scan) → Cell 4 (scan log) → Cell 5 (dashboard) → Cell 6 (apply fixes).
Graceful degradation: works without SPN (skips Graph expansion), without Copilot (falls back to template descriptions), without Directory.Read.All (shows object GUIDs), and read-only mode if no write access.
📦 Complete Repo
GitHub — full repo, 37 screenshots, sample HTML dashboard, MIT license
Author: Natarajan Manivasagan
LinkedIn · Fabric Community Profile
https%3A%2F%2Fgithub.com%2FNatarajanManivasagan%2FFabric-Semantic-Link-Developer-Experience-Challenge-2026-Apr%2Fblob%2Fmain%2F2026_SemanticLink_NatarajanManivasagan_ModelHealthAndSecuritySuite.ipynb