← Back to all products
$59
Databricks Notebook Framework
Production-grade notebook development framework with structured project templates, reusable utility modules, testing patterns, and CI/CD integration for Databricks.
PythonYAMLJSONMarkdownAzureDatabricksPySparkSparkCI/CD
📁 File Structure 15 files
databricks-notebook-framework/
├── README.md
├── cicd/
│ ├── databricks.yml
│ └── pre-commit-config.yaml
├── notebooks/
│ ├── bronze_ingest_template.py
│ ├── gold_aggregate_template.py
│ └── silver_transform_template.py
├── project-scaffold/
│ └── README.md
├── standards/
│ └── NOTEBOOK_STANDARDS.md
├── testing/
│ ├── conftest.py
│ └── test_framework.py
└── utils/
├── config_manager.py
├── logging_utils.py
├── quality_checks.py
└── secrets_manager.py
📖 Documentation Preview README excerpt
Databricks Notebook Framework
Production-grade notebook development framework for Databricks Lakehouse
By [Datanest Digital](https://datanest.dev) | Version 1.0.0 | $59
---
What You Get
A complete, battle-tested framework for building Databricks notebooks that follow medallion architecture best practices. Stop reinventing the wheel on every project — start with production-ready templates that handle logging, error handling, data quality, configuration, and CI/CD out of the box.
Key Features
- Medallion Architecture Templates — Bronze, Silver, and Gold layer notebook templates with real-world patterns
- Incremental & Full-Refresh Modes — Built-in watermark-based incremental ingestion with fallback to full refresh
- Data Quality Framework — Null checks, uniqueness validation, referential integrity, and freshness monitoring
- SCD Type 2 Support — Slowly changing dimension logic ready to use in Silver layer transformations
- Structured Logging — Consistent, queryable logging across all notebooks with run context capture
- Configuration Management — Widget-based parameters with environment variable fallbacks
- Secrets Management — Unified interface for Databricks secret scopes and Azure Key Vault
- Testing Framework — Nutter-pattern testing with pytest integration and mock fixtures
- CI/CD Ready — Pre-commit hooks, DABs bundle configuration, and deployment templates
- Development Standards — Comprehensive notebook standards document for team alignment
File Listing
databricks-notebook-framework/
├── README.md # This file
├── manifest.json # Package manifest
│
├── notebooks/
│ ├── bronze_ingest_template.py # Bronze layer ingestion template
│ ├── silver_transform_template.py # Silver layer transformation template
│ └── gold_aggregate_template.py # Gold layer aggregation template
│
├── utils/
│ ├── logging_utils.py # Structured logging module
│ ├── config_manager.py # Widget & environment config management
│ ├── quality_checks.py # Data quality validation functions
│ └── secrets_manager.py # Secrets retrieval wrapper
│
├── testing/
│ ├── test_framework.py # Nutter-pattern notebook testing framework
│ └── conftest.py # Pytest fixtures with mock dbutils & spark
│
├── cicd/
│ ├── pre-commit-config.yaml # Pre-commit hooks for notebook linting
│ └── databricks.yml # DABs bundle configuration template
│
├── standards/
│ └── NOTEBOOK_STANDARDS.md # Notebook development standards
│
└── project-scaffold/
└── README.md # Quick-start scaffold instructions
Getting Started
... continues with setup instructions, usage examples, and more.
📄 Code Sample .py preview
notebooks/bronze_ingest_template.py
# Databricks notebook source
# COMMAND ----------
# MAGIC %md
# MAGIC # Bronze Layer Ingestion Template
# MAGIC
# MAGIC **Framework**: Databricks Notebook Framework by [Datanest Digital](https://datanest.dev)
# MAGIC
# MAGIC ## Purpose
# MAGIC Ingest raw data from source into the Bronze layer of the Lakehouse.
# MAGIC Supports both incremental (watermark-based) and full-refresh modes.
# MAGIC
# MAGIC ## Parameters
# MAGIC | Widget | Description | Default |
# MAGIC |--------|-------------|---------|
# MAGIC | catalog | Unity Catalog name | `dev` |
# MAGIC | schema | Target schema | `bronze` |
# MAGIC | source | Source identifier / table name | *(required)* |
# MAGIC | watermark_column | Column for incremental loads | `modified_at` |
# MAGIC | run_mode | `incremental` or `full_refresh` | `incremental` |
# COMMAND ----------
# MAGIC %md
# MAGIC ## Setup & Configuration
# COMMAND ----------
import uuid
import json
from datetime import datetime, timezone
from pyspark.sql import functions as F
from pyspark.sql.types import TimestampType, StringType
# COMMAND ----------
# Widget Parameters
dbutils.widgets.text("catalog", "dev", "Target Catalog")
dbutils.widgets.text("schema", "bronze", "Target Schema")
dbutils.widgets.text("source", "", "Source Identifier")
dbutils.widgets.text("watermark_column", "modified_at", "Watermark Column")
dbutils.widgets.dropdown("run_mode", "incremental", ["incremental", "full_refresh"], "Run Mode")
catalog = dbutils.widgets.get("catalog")
schema = dbutils.widgets.get("schema")
source = dbutils.widgets.get("source")
watermark_column = dbutils.widgets.get("watermark_column")
run_mode = dbutils.widgets.get("run_mode")
assert source, "Parameter 'source' is required and cannot be empty."
# ... 228 more lines ...