This demo project showcases three different approaches to modeling ETL operations as Dagster assets, each with different trade-offs for visibility, control, and simplicity.
# Activate virtual environment
source .venv/bin/activateCreating a new persistent deployment requires coordinating two systems: the Dagster+ API and your Kubernetes agent configuration.
The deployment must exist in Dagster+ as a logical entity. This is done via the GraphQL API:
import httpxThis document explains how to limit concurrent executions of individual assets using Dagster's pool-based concurrency system.
By default, Dagster allows unlimited concurrent executions of the same asset across multiple runs. This can cause issues when:
| #!/usr/bin/env python3 | |
| # /// script | |
| # requires-python = ">=3.10" | |
| # dependencies = [ | |
| # "requests", | |
| # ] | |
| # /// | |
| """ | |
| Query Dagster's GraphQL API to get monthly credits (ops executed + asset materializations). |
This document outlines a detailed plan to add support for Sigma's new Data Models API to the dagster-sigma library. Data Models are replacing the deprecated datasets (end-of-life: June 2, 2026) and provide enhanced semantic layer capabilities including metrics, relationships, column/row-level security, and more.
Timeline: ~5-8 days development + testing Priority: Medium-High (18 month deprecation timeline for datasets) Complexity: Moderate
| mutation { | |
| createSecret( | |
| secretName: "MY_API_KEY" | |
| secretValue: "abc123" | |
| scopes: { fullDeploymentScope: true } | |
| locationNames: ["prod"] | |
| ) { | |
| __typename | |
| ... on Error { | |
| message |
This document provides comprehensive instructions for GitHub Copilot to replicate the Dagster demo generation workflow implemented in this repository.
The Dagster Demo Generator automates the creation of demonstration Dagster projects using a multi-tiered workflow:
/create-dagster-demo slash command (.claude/commands/create-dagster-demo-2.md)| from airflow import DAG | |
| from airflow.operators.python import PythonOperator | |
| from airflow.utils.dates import days_ago | |
| from airflow.settings import Session | |
| from airflow.models import DagRun | |
| from datetime import timedelta | |
| import pandas as pd | |
| import numpy as np | |
| # Constants for flexibility |
| pipeline { | |
| agent any | |
| environment { | |
| // Dagster Cloud Configuration | |
| DAGSTER_CLOUD_ORGANIZATION = 'your-org-name' // Replace with your Dagster+ org name | |
| DAGSTER_CLOUD_API_TOKEN = credentials('dagster-cloud-api-token') // Jenkins credential ID | |
| DAGSTER_BUILD_STATEDIR = "${WORKSPACE}/build_state" | |
| // AWS ECR Configuration |
| with daily as( | |
| select | |
| ds::date as reporting_date, | |
| sum(standard_credits) as daily_standard_credits, | |
| sum(high_velocity_credits) as daily_high_velo_credits, | |
| daily_standard_credits + daily_high_velo_credits as total_credits_daily | |
| from purina.product.usage_metrics_daily | |
| where usage_metrics_daily.organization_id = {org_id here} | |
| group by ds::date | |
| ) |