A Fabric Package for Semantic/Dataset validation
Project description
Fabric Maverick
Table of Contents
Overview
fabric_maverick is a Python package designed for semantic level validation and comparison of Power BI reports across different workspaces. It provides a robust framework to programmatically compare the metadata and structure of your Fabric Analytics Reports (formerly Power BI datasets/reports) to ensure consistency and identify discrepancies.
This package is particularly useful for:
- CI/CD pipelines: Automating report validation as part of your deployment process.
- Regression testing: Ensuring that changes to reports or underlying data models do not introduce unintended breaking changes.
- Maintaining consistency: Verifying that reports deployed to different environments (Dev, QA, Prod) are structurally identical or conform to expected variations.
Features
- Report Comparison: Easily compare the structure (tables, columns, measures) of two Fabric Analytics Reports from different workspaces.
- Flexible Input: Supports comparing reports by providing individual report/workspace names or a consolidated dictionary structure.
- Authentication Management: Integrates with a flexible token provider for seamless authentication with Fabric/Power BI services.
- Detailed Insights: [TODO: Briefly describe what kind of comparison results/details the
ReportComparisonobject provides. E.g., "Identifies added, removed, or modified tables, columns, and measures."] - Extensible: Built with a modular design to allow for future expansion of comparison metrics and validation rules.
Installation
fabric_maverick can be installed directly from PyPI using pip:
pip install fabric_maverick
Usage
Comparing Reports
The primary function for comparing reports is ReportCompare. It offers two ways to specify the reports:
import knnpy
Compare = knnpy.ReportCompare(
OldReport="MySalesDashboard_V1",
OldReportWorkspace="Development",
NewReport="MySalesDashboard_V2",
NewReportWorkspace="Production",
Stream="SalesDashboard_Deployment",
ExplicitToken="YOUR_ACCESS_TOKEN_IF_NEEDED" # Optional
)
# Use the Compare object to run validations and view results
Compare.run_all_validations()
Authentication
By default, fabric_maverick will use token from fabric enviornment. However, you can explicitly provide an authentication token using the ExplicitToken parameter in ReportCompare:
import knnpy
# Obtain your Power BI/Fabric access token
my_token = "eyJ..." # Replace with your actual token
comparison_result = knnpy.ReportCompare(
# ... report details ...
Stream="MyStream",
ExplicitToken=my_token
)
Alternatively, you can initialize a token globally for the session using initializeToken:
import knnpy
# Initialize token globally (this affects all subsequent calls without ExplicitToken)
knnpy.initializeToken("YOUR_GLOBAL_ACCESS_TOKEN")
# Now, ReportCompare calls can omit ExplicitToken
comparison_result = knnpy.ReportCompare(
OldReport="ReportA",
OldReportWorkspace="WS_A",
NewReport="ReportB",
NewReportWorkspace="WS_B",
Stream="AnotherStream"
)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
For questions or feedback, please reach out to the maintainers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file fabric_maverick-0.1.0.dev2.tar.gz.
File metadata
- Download URL: fabric_maverick-0.1.0.dev2.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6518f9c289b46e9ff166d5e0be433a7ba72355ad719b7e772365ca531243b80
|
|
| MD5 |
6bb2c6ccddff5a8c5745d318f26f382f
|
|
| BLAKE2b-256 |
93ea7207efffa74db624bab6ac5139928c780e0250579a115e520cef0fafbcf7
|