Ingenious Fabric Accelerator¶
Ingenious for Fabric is a comprehensive command line tool built with Typer that helps create and manage Microsoft Fabric assets. It provides a complete development workflow for Fabric workspaces, including project initialization, DDL notebook generation, environment management, testing and deployment automation.
Features¶
-
Project Initialization
Scaffold a workspace repo with a default variable library, sample DDL, and ready-to-run, workload-oriented notebooks.
-
DDL Notebook Generation
Compile SQL or Python DDL into ordered, idempotent Fabric notebooks for lakehouse and warehouse targets.
-
Environment & Deployment
Manage variables per environment, deploy workspace items, extract metadata, and track schema changes across dev, test, and prod.
-
Orchestrator Notebooks
Auto-generate orchestrators that run DDL notebooks in sequence with logging and safety checks.
-
Notebook Utilities
Scan, analyze, and transform notebook content with reusable helpers that work locally and in Fabric.
-
Python Libraries
Shared Python and PySpark libraries with environment-aware variable injection and Fabric-friendly APIs.
-
Packages
Plug-and-play workloads (ingestion, extracts, sync, synthetic data) you can compile and run.
Getting Started¶
New to Ingenious Fabric Accelerator?
Start with our Installation Guide to get up and running quickly.
Ready to dive in?
Check out our Sample Project for a complete walkthrough.
Quick Navigation¶
-
Getting Started
New to Ingenious? Start here for installation and your first project.
-
User Guides
Task-oriented guides for common workflows and operations.
-
Reference
Technical reference for configuration and architecture.
-
Developer Guide
Architecture, libraries, and extending the accelerator.
Common Workflows¶
5-Minute Start: Create and deploy your first project
# 1. Create project
ingen_fab init new --project-name "dp"
# 2. Set environment
export FABRIC_WORKSPACE_REPO_DIR="dp"
export FABRIC_ENVIRONMENT="development"
# 3. Generate notebooks
ingen_fab ddl compile --generation-mode Warehouse
# 4. Deploy
ingen_fab deploy deploy
Package Usage: Add data ingestion capabilities
# Compile flat file ingestion for lakehouse
ingen_fab package ingest compile --target-datastore lakehouse --include-samples
# Compile extract generation
ingen_fab package extract compile --include-samples --target-datastore warehouse
Architecture¶
The tool is organized into several key components:
ingen_fab/
├── cli_utils/ # CLI command implementations
├── ddl_scripts/ # Jinja templates for DDL notebook generation
├── notebook_utils/ # Notebook scanning and injection helpers
├── python_libs/ # Shared Python and PySpark libraries
├── python_libs_tests/ # Test suites for Python libraries
sample_project/ # Example workspace demonstrating project layout
project_templates/ # Templates for new project initialization
Command Groups¶
init- Initialize solutions and projectsddl- Compile DDL notebooks from templatesdeploy- Deploy to environments and manage workspace itemsdbt- Generate notebooks from dbt outputs and convert metadata
Core Concepts¶
Environment Management¶
Manage multiple environments (development, test, production) with environment-specific configurations and variable libraries.
DDL Script Management¶
Organize DDL scripts in numbered sequence for controlled execution, supporting both SQL and Python scripts with idempotent execution.
Notebook Generation¶
Automatically generate notebooks from templates with proper error handling, logging, and orchestration capabilities.
Packages¶
Reusable workload extensions that provide specialized functionality for common data processing scenarios like flat file ingestion and synapse sync.
Testing Framework¶
Comprehensive testing framework supporting both local development and Fabric platform testing.
Next Steps¶
-
Get Started
Install and configure Ingenious Fabric Accelerator
-
User Guide
Learn how to use all features and commands
-
Developer Guide
Understand the architecture and extend functionality
-
Examples
See real-world examples and best practices
-
Packages
Explore reusable workload extensions
Support¶
- Documentation: Browse the complete documentation on this site
- Help: Use
ingen_fab --helpfor CLI assistance - Local Development: Use the sample project for testing and learning