Skip to content

Projects

What is a dagctl Project?

A project connects a Git repository to the dagctl platform. It defines:

  • Which repository and branch to track
  • The framework (SQLMesh or dbt)
  • Environment variables and credentials
  • Job schedules for automated execution

dagctl continuously syncs with your repository and makes your models available for scheduling, monitoring, and plan-based deployments.

Project Lifecycle

  1. Create — Define repository, framework, and settings through the web UI
  2. Deploy — Provision infrastructure in your organization's namespace
  3. Sync — Continuous git sync picks up changes from your repository
  4. Schedule — Create jobs to run framework commands on a cron
  5. Monitor — Track runs, view logs, and browse model metadata
  6. Undeploy — Remove from execution environment

Creating a Project

Create projects through the web UI using the guided project wizard. You'll need:

  1. Git repository URL (HTTPS or SSH)
  2. Branch name (usually main)
  3. Framework selection (SQLMesh or dbt)
  4. Environment variables (warehouse credentials)

During project creation, you will be prompted to create an SSH key for private repositories.

Framework-Specific Details

The project setup and deployment model differs between frameworks:

  • SQLMesh Projects — Shared service deployment with managed state database and Kyverno-based pod configuration.
  • dbt Projects — Per-project deployment with dedicated containers, Kaniko image builds, and version-based change detection.

Next Steps