Skip to content

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.

    Learn more

  • DDL Notebook Generation


    Compile SQL or Python DDL into ordered, idempotent Fabric notebooks for lakehouse and warehouse targets.

    Learn more

  • Environment & Deployment


    Manage variables per environment, deploy workspace items, extract metadata, and track schema changes across dev, test, and prod.

    Learn more

  • Orchestrator Notebooks


    Auto-generate orchestrators that run DDL notebooks in sequence with logging and safety checks.

    Learn more

  • Notebook Utilities


    Scan, analyze, and transform notebook content with reusable helpers that work locally and in Fabric.

    Learn more

  • Python Libraries


    Shared Python and PySpark libraries with environment-aware variable injection and Fabric-friendly APIs.

    Learn more

  • Packages


    Plug-and-play workloads (ingestion, extracts, sync, synthetic data) you can compile and run.

    Learn more

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

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 projects
  • ddl - Compile DDL notebooks from templates
  • deploy - Deploy to environments and manage workspace items
  • dbt - 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

    Installation Guide

  • User Guide


    Learn how to use all features and commands

    User Guide

  • Developer Guide


    Understand the architecture and extend functionality

    Developer Guide

  • Examples


    See real-world examples and best practices

    Examples

  • Packages


    Explore reusable workload extensions

    Packages

Support

  • Documentation: Browse the complete documentation on this site
  • Help: Use ingen_fab --help for CLI assistance
  • Local Development: Use the sample project for testing and learning