Enterprise-grade DBT template with advanced CLI tooling, automated workflows, and production-ready data pipelines
An opinionated, battle-tested DBT project template designed for enterprise data teams. Features intelligent CLI automation, comprehensive validation, and seamless integration with modern data orchestration platforms like Dagster.
- π― Smart CLI Interface - Interactive command-line tools for rapid development
- ποΈ Enterprise Architecture - Staging β Marts data modeling patterns
- π Dagster Integration - Native support for asset-based orchestration
- π‘οΈ Advanced Validation - SQL linting, model validation, and data quality checks
- π CI/CD Ready - Production-grade GitHub Actions workflows
- π Multi-Warehouse Support - BigQuery, Snowflake, and more
- π Data Observability - Built-in monitoring with Elementary Data
- π Auto-Documentation - Self-documenting models and lineage
# Set up your environment in seconds
task setup-env
# Launch the interactive CLI
task cli
# Create a new data domain with models
create domain security_tools --sub-domain crowdstrike
create model --domain security_tools --type staging --name endpoint_data
# Run your pipeline
task dbt:build
π models/
βββ π§ staging/ # Clean, standardized source data
β βββ integration_tools/
β β βββ okta/ # Identity & access management
β β βββ crowdstrike/ # Endpoint security
β β βββ active_directory/
β βββ infra/ # Pipeline metadata & metrics
βββ πͺ marts/ # Business-ready analytics tables
βββ security/ # Security analytics
βββ compliance/ # Compliance reporting
βββ operations/ # Operational insights
- Go-task - Task runner
- Python 3.12+
- Access to BigQuery or Snowflake
# Automated setup (installs gh, uv, pre-commit)
task setup-env
# Or use dev container for containerized development
# (see .devcontainer configuration)
# Copy and configure environment
cp .env_example .env
# Edit .env with your warehouse credentials
# Test your setup
task test-setup
# Start interactive CLI with autocomplete
task cli
# Verify warehouse connection
task dbt:debug
Our intelligent CLI provides guided workflows for common tasks:
create domain <domain_name> # Create new data domain
create model --domain <name> --type <staging|marts> # Generate models
create integration-tool <tool_name> # Add new data source
create macro --name <macro_name> # Reusable SQL components
task dbt:run --select <model> # Run specific models
task dbt:test # Execute data tests
task dbt:build # Full build pipeline
task dbt:docs # Generate documentation
validate all # Run all validations
task dbt:lint # SQL formatting
task dbt:format # Auto-fix formatting
task dbt:edr-report # Elementary data report
learn catalog # Explore data catalog
select organization # Switch contexts
models/
βββ staging/ # π§Ή Data cleaning & standardization
β βββ _sources.yml # Source definitions
β βββ stg_<source>_<entity>.sql
βββ marts/ # π― Business logic & analytics
β βββ core/ # Core business entities
β βββ finance/ # Financial analytics
β βββ security/ # Security metrics
βββ intermediate/ # π Reusable transformations
macros/
βββ create_database/ # Database management
βββ generate_schema_name/ # Dynamic schema naming
βββ get_custom_alias/ # Table aliasing
βββ normalization/ # Data standardization
- Generic Tests: Uniqueness, not-null, referential integrity
- Singular Tests: Custom business logic validation
- Data Quality: Elementary data monitoring
- SQL Linting: SQLFluff integration
Our GitHub Actions workflow provides:
- π Slim CI - Only test changed models
- π§ͺ Automated Testing - Data quality validation
- π Documentation - Auto-generated data catalog
- π Deployment - Multi-environment support
- π Monitoring - Performance tracking
- Validation β SQL linting, model validation
- Testing β Unit tests, data quality checks
- Build β Compile and run models
- Deploy β Environment-specific deployment
- Monitor β Data freshness and quality alerts
- Schema Enforcement - Automatic schema validation
- Data Freshness - Source data recency checks
- Referential Integrity - Cross-table relationship validation
- Custom Business Rules - Domain-specific data quality tests
- π Security scanning (detect private keys)
- π SQL formatting (SQLFluff)
- π Python code quality (black, isort, mypy)
- π§ͺ DBT validations (parsing, testing)
# Warehouse Configuration
SNOWFLAKE_ACCOUNT=your-account
SNOWFLAKE_USER=your-username
SNOWFLAKE_PASSWORD=your-password
SNOWFLAKE_DATABASE=your-database
# BigQuery Configuration
GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json
BQ_PROJECT=your-project-id
BQ_DATASET=your-dataset
# Pipeline Configuration
ORG_ID=your-organization-id
DBT_TARGET=dev # dev, staging, prod
The project supports multiple target environments with automatic schema and database naming conventions.
Connection Problems
task dbt:debug # Validate warehouse connection
Model Compilation Errors
dbt build --debug # Verbose logging
# Check compiled SQL in target/compiled/
Performance Issues
task dbt:run --select "+state:modified" # Slim runs
Enable detailed logging for troubleshooting:
export DBT_LOG_LEVEL=debug
task dbt:run --debug
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork and clone the repository
- Create a feature branch
- Make your changes with tests
- Run validation:
task validate
- Submit a pull request
- Data Quality Monitoring - Automated anomaly detection
- Lineage Tracking - Visual data flow representation
- Performance Metrics - Query performance insights
- Alerting - Slack/email notifications for issues
Track model usage, performance, and data freshness with built-in monitoring dashboards.
- Multi-tenant Architecture - Organization and instance isolation
- Role-based Access Control - Fine-grained permissions
- Audit Logging - Complete change tracking
- Disaster Recovery - Backup and restore procedures
- Compliance Ready - SOX, GDPR, HIPAA support
This project is licensed under the MIT License - see the LICENSE.md file for details.
Built with β€οΈ by the Tikal CNE team using:
- DBT - Data transformation framework
- Dagster - Data orchestration platform
- Elementary - Data observability
- Go-task - Task automation
- SQLFluff - SQL linting
Ready to transform your data pipeline? π Get started or explore the docs!