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
- Create — Define repository, framework, and settings through the web UI
- Deploy — Provision infrastructure in your organization's namespace
- Sync — Continuous git sync picks up changes from your repository
- Schedule — Create jobs to run framework commands on a cron
- Monitor — Track runs, view logs, and browse model metadata
- Undeploy — Remove from execution environment
Creating a Project
Create projects through the web UI using the guided project wizard. You'll need:
- Git repository URL (HTTPS or SSH)
- Branch name (usually
main) - Framework selection (SQLMesh or dbt)
- 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.