Unofficial Microsoft Fabric deployment toolkit by Obvience
Project description
obv-fab-deploy
Unofficial Microsoft Fabric deployment toolkit built by obviEnce.
Automates deployment of Lakehouses, Notebooks, Semantic Models, Reports, and Data Pipelines across Microsoft Fabric workspaces using direct REST API calls.
Install
pip install obv-fab-deploy
Authentication
In a Fabric notebook — no setup needed, uses DefaultAzureCredential automatically.
From a regular Python environment — pass a Service Principal credentials dict:
creds = {
"tenant_id": "your-tenant-id",
"client_id": "your-client-id",
"client_secret": "your-client-secret",
}
Quick Start
from obv_fab_deploy import (
deploy_lakehouse_with_shortcuts,
deploy_notebook,
deploy_semantic_model,
deploy_report,
deploy_pipeline,
)
creds = {
"tenant_id": "...",
"client_id": "...",
"client_secret": "...",
}
# Deploy a lakehouse with its shortcuts
deploy_lakehouse_with_shortcuts(
source_workspace_name="DEV",
source_lakehouse_name="my_lakehouse",
target_workspace_name="PROD",
target_lakehouse_name="my_lakehouse",
creds=creds,
)
# Deploy a notebook (auto-rebinds to target lakehouse)
deploy_notebook(
source_workspace_name="DEV",
source_notebook_name="my_notebook",
target_workspace_name="PROD",
target_notebook_name="my_notebook",
target_lakehouse_name="my_lakehouse",
creds=creds,
)
# Deploy a semantic model (rebinds Direct Lake connection)
deploy_semantic_model(
source_workspace_name="DEV",
source_semantic_model_name="my_model",
target_workspace_name="PROD",
target_semantic_model_name="my_model",
target_lakehouse_name="my_lakehouse",
creds=creds,
)
# Deploy a report (rebinds to target semantic model)
deploy_report(
source_workspace_name="DEV",
source_report_name="my_report",
target_workspace_name="PROD",
target_report_name="my_report",
target_dataset_name="my_model",
creds=creds,
)
# Deploy a data pipeline (rebinds sinks + notebook references)
deploy_pipeline(
source_workspace_name="DEV",
pipeline_name="my_pipeline",
target_workspace_name="PROD",
target_lakehouse_name="my_lakehouse",
creds=creds,
)
Utility Functions
from obv_fab_deploy import (
list_workspaces,
get_workspace_id_by_name,
list_items,
refresh_semantic_model,
rebind_report,
)
# List all workspaces
workspaces = list_workspaces(creds)
# Get a workspace ID
ws_id = get_workspace_id_by_name("My Workspace", creds)
# List items in a workspace (optionally filter by type)
items = list_items("My Workspace", "SemanticModel", creds)
# Refresh a semantic model
refresh_semantic_model("My Workspace", "My Model", creds=creds)
# Rebind a report to a different semantic model
rebind_report("My Report", "My Model", "My Workspace", creds=creds)
Features
- Lakehouse — Deploy lakehouses and replicate OneLake shortcuts
- Notebook — Deploy notebooks with automatic default lakehouse rebinding
- Semantic Model — Deploy with Direct Lake connection patching (TMDL)
- Report — Deploy reports with automatic dataset rebinding
- Data Pipeline — Deploy pipelines with sink and notebook activity rebinding
- Auth — Works with Service Principal (
ClientSecretCredential) or environment auth (DefaultAzureCredential) - No sempy/mssparkutils required — Uses direct Fabric REST API calls only
Dependencies
requestsazure-identity
Project Structure
obv_fab_deploy/
├── __init__.py # Public API exports
├── utils.py # Auth, workspace/item lookups, rebind, refresh
├── lakehouse.py # Lakehouse deployment with shortcuts
├── notebook.py # Notebook deployment
├── semantic_model.py # Semantic model deployment with Direct Lake rebinding
├── report.py # Report deployment with dataset rebinding
└── pipeline.py # Pipeline deployment with activity rebinding
tests/
└── test_cases.py # Manual test script (not included in package)
License
MIT © obviEnce
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file obv_fab_deploy-0.3.0.tar.gz.
File metadata
- Download URL: obv_fab_deploy-0.3.0.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ced12e787b0b2ab986819c3fc99a51c39714a7261c41e6a83c02588decd9560
|
|
| MD5 |
8ff85fbd87bdf3844cfea98055e32381
|
|
| BLAKE2b-256 |
fdb19de23777401c701cf562f948a25e702a7b04217ca34a014dfc453125d5bd
|
File details
Details for the file obv_fab_deploy-0.3.0-py3-none-any.whl.
File metadata
- Download URL: obv_fab_deploy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1808b9a381c21de3ae3c5f2e26bc2c26fa301f324d5da516b2d12a0389f9418c
|
|
| MD5 |
a778ade6bf0276f2eb1ae5297264bd72
|
|
| BLAKE2b-256 |
79b488a99576736298e71ea8ad9ae619819194213a1810b9874abcdb9b2282c2
|