NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1355 most downloaded on PyPI
Shared code between dagster and dagster-dg-core.
Last release 3 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Most releases are documented
notes for 53 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
2 years old
98 releases · first in 2025
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Assets whose failed partitions are all awaiting an automatic retry now report a warning health status instead of degraded. The asset health popover an
SnowflakeDbtProjectComponent now supports configuring defs_state, so Dagster+ deployments can opt into versioned state storage.SnowflakeDbtProjectComponent observation sensor could report Dagster-triggered dbt runs as externally triggered.SnowflakeDbtProjectComponent raised an error when dbt built models outside the selected subset of assets.An asset whose materialization failures are all pending an automatic retry now reports a WARNING health status instead of DEGRADED, and Slack, Microso
WARNING health status instead of DEGRADED, and Slack, Microsoft Teams, and email alerts render a "Failed, retry pending" line for it.SnowflakeDbtProjectComponent now accepts a defs_state configuration, matching DbtCloudComponent, so deployments can opt into versioned state storage instead of the local filesystem.tomlkit version constraint to allow newer releases. (Thanks, @geoHeil!)configmaps, which the latest agent Helm chart includes, restores fast reloads.SnowflakeDbtProjectComponent: the observation sensor could eventually report Dagster-triggered runs as externally triggered, executing a subset failed when dbt built models outside the requested subset, and a genuine import error in an optional dependency could silently hide the component.spark_resource and create_spark_op: spark-submit is now invoked directly instead of through a shell, so shell metacharacters in application_arguments are no longer interpreted. Multiple and quoted arguments continue to work.Declarative Automation can now automate jobs, available as a preview feature. Pass an automation_condition to define_asset_job — wrapping an asset-lev
automation_condition to define_asset_job — wrapping an asset-level condition with AutomationCondition.any_job_root_assets_match or AutomationCondition.all_job_root_assets_match — to launch a single run of the job when the condition becomes true. Evaluation history is viewable in the new Automation tab on job pages.request_max_retries setting. (Thanks, @MercureTony!)[dagster-snowflake] Added the SnowflakeDbtProjectComponent (Preview) for natively orchestrating dbt projects on Snowflake.
SnowflakeDbtProjectComponent (Preview) for natively orchestrating dbt projects on Snowflake.Fixed a 401 error from the serverless I/O manager when materializing assets in an organization with more than one full deployment.
[ui] The asset launch dialog now automatically expands the warnings section when alerts are present.
dagster could resolve an incompatible version of grpcio-health-checking, breaking code server imports due to a protobuf version conflict.[ui] Improved the performance of the runs feed for runs that target large numbers of assets and asset checks. The feed now fetches a bounded preview o
dashboard_refresh_interval parameter to PipesEMRServerlessClient and increased its default so that Spark UI URLs are no longer invalidated prematurely during a run. (Thanks, @noy-solvin!)CheckError and halt the entire automation tick when it was requested on a tick that did not materialize the asset it targets.DagsterUserCodeUnreachableError. (Thanks, @jmoldow!)KeyError on failures when converting dbt run results to Dagster events for runs that omit that key (such as dbt Fusion).[ui] The asset catalog page now renders as a single virtualized list, so workspaces with many asset groups or code locations no longer freeze the UI w
"insights" option to DbtProjectComponent's include_metadata field, enabling Dagster+ Insights tracking from YAML config.limit argument and new assetSelectionCount / assetCheckSelectionCount fields to the Run GraphQL type, so clients can render a bounded preview of a run's asset/check selection alongside the true totals..with_insights() now logs a warning instead of raising when called against an unsupported adapter.pool config in the "Preventing concurrent dbt snapshots" DbtProjectComponent example.Fixed a bug where DagsterInstance.get_latest_materialization_event (and get_asset_records) could return a stale pre-wipe materialization for a wiped a
DagsterInstance.get_latest_materialization_event (and get_asset_records) could return a stale pre-wipe materialization for a wiped asset once a new run targeting the asset started or an observation was reported. In Dagster+, fixed the analogous bug where wiping partitions could leave the wiped partition's materialization as the asset's latest materialization.0,30 * * * *) computed partition counts much more slowly than the equivalent */30 schedule.dagster_cloud.serverless could fail with a missing boto3 dependency on serverless deployments that did not install the [serverless] extra.Asset group names may now contain / separators to define hierarchical groups (e.g. marketing/ads). Hierarchical groups can be selected with wildcards
/ separators to define hierarchical groups (e.g. marketing/ads). Hierarchical groups can be selected with wildcards in asset selections (e.g. group:"marketing/*") and are rendered as nested groups in the asset graph.is: filter to the asset selection syntax and search filters to select assets by type (e.g. is:external, is:materializable).DG_PROJECT_PYTHON_EXECUTABLE in a project's .env is now parsed via python-dotenv, so export KEY=value, quoted values, and trailing comments are honored.DltLoadCollectionComponent now supports partitions_def and backfill_policy. (Thanks, @Benjamin0313!)replicaCount. All replicas of a deployment share a consistent gRPC server ID, so multi-replica deployments do not trigger spurious code location reloads. (Thanks, @HynekBlaha!)"2021-10-30") in YAML config files were converted to datetime objects instead of being passed through as strings.*/15 9-16 * * 1-5) were incorrectly treated as ticking uniformly throughout the day, which could produce overcounted partition counts and oversized backfills.TemplatedSqlComponent now generates a unique default op name based on its template, preventing op name collisions when multiple components omit an explicit execution name.Fixed a SQL injection vulnerability in dagster-clickhouse, dagster-clickhouse-pandas, and dagster-clickhouse-polars when using dynamic partition keys.…
owners for jobs, schedules, and sensors. (Thanks, @dragos-pop!)kinds tags and icons for Microsoft Fabric and OneLake. (Thanks, @MartyP233!)/docs links continue to work via redirect.code_server.* metrics now carry a server_instance_id tag identifying the underlying gRPC server process. For multi-replica code locations, the tag identifies whichever replica answered the most recent metrics ping.InstigationLogger now stringifies log record attributes that are not JSON-serializable instead of failing to emit the log. (Thanks, @jonaslb!)dagster-clickhouse, dagster-clickhouse-pandas, and dagster-clickhouse-polars when using dynamic partition keys. ClickHouse partition queries now bind partition key values as driver parameters instead of interpolating them into SQL strings.dg labs ai dispatch no longer writes a plan.md artifact into version control.TypedDict-typed fields in component configuration.DbtProject.prepare() to always run dbt deps when dependency files are present.DbtProjectComponent subclasses to also translate dependency keys.DbtProjectComponent..local_defs_state() directory when a dbt project was located at the repository root.dg plus deploy failing with No module named pip in uv-managed environments.dagster-elasticsearch.dagster-hf-datasets.Fixed a SQL injection vulnerability in dagster-clickhouse, dagster-clickhouse-pandas, and dagster-clickhouse-polars when using dynamic partition keys.…
owners parameter to build_schedule_from_partitioned_job to set owners on the resulting schedule. (Thanks, @dragos-pop!)fetch_column_metadata option to fetch column-level metadata for synced tables.includeConfigInLaunchedRuns.enabled is set in the Helm chart, run pods now inherit nodeSelector, tolerations, and podSecurityContext from user deployment configuration.dagster-clickhouse, dagster-clickhouse-pandas, and dagster-clickhouse-polars when using dynamic partition keys. ClickHouse partition queries now use driver parameter binding instead of interpolating partition key values into SQL strings.FAILURE could observe the failed status before the dagster/failure_reason tag was written.indirect_selection: cautious or buildable) could silently cause downstream assets to be skipped. Missing blocking check results now allow downstream assets to proceed and log a warning; failed blocking checks continue to fail the step and the run as before.AutomationCondition.any_downstream_conditions() to prevent recursive blowups in condition size when combined with other automation conditions.AttributeError when using kubernetes client v36+, which uses PEP 585 dict syntax (e.g. dict[str, str]) in its OpenAPI type annotations. (Thanks, @vanika02!)Schedule, sensor, and asset daemon ticks now dispatch instigators round-robin across code locations, preventing a single code location with many insti
dg api run launch command for launching runs from the CLI against the Dagster+ API.DbtCloudComponent and DbtCloudWorkspace to work around dbt Cloud's one-concurrent-run-per-job limit.base_path.indirect_selection: cautious or buildable) would silently cause downstream assets to be skipped. Missing check results now allow downstream assets to proceed; failed checks still fail the step.job_snapshot_id mismatch invariant in execution plan persistence from a crash to a warning, preventing run launch failures when client and server compute slightly different snapshot IDs.antlr4-python3-runtime to <4.14 to prevent potential breakage from future ANTLR minor version bumps.dict[str, str] syntax used by the kubernetes client v36+ when snake-casing model dictionaries, fixing an AttributeError: module 'kubernetes.client.models' has no attribute 'dict[str, str]' raised on kubernetes>=36. (Thanks, @vanika02!)dg utils CLI reference documentation.DAGSTER_POSTGRES_HOST environment variable to the Docker deployment documentation.FROM_ASSET_FAILURE retry strategy for dbt asset jobs.Added kinds tags for Alteryx, Boomi, and SAP.
busy_timeout default from 5s to 30s on SqliteEventLogStorage and ConsolidatedSqliteEventLogStorage to better tolerate slow or network-backed $DAGSTER_HOME filesystems.delete_pod_on_completion flag to PipesK8sClient.run, allowing callers to opt out of the automatic pod deletion at the end of a Pipes run.dagstermill now requires papermill>=2.0.0.DAGSTER_MAX_ASSET_BACKFILL_RETRIES environment variable has been renamed to DAGSTER_MAX_BACKFILL_RETRIES, with a fallback to the old name for backwards compatibility.JobDefinition when selected as part of a subset selection.AssetCheckResult could record a target_materialization pointing to a different partition's materialization.OutputContext.asset_partition_key_range and InputContext.asset_partition_key_range could raise CheckError: The instance is not available to load partitions for assets using a MultiPartitionsDefinition that includes a DynamicPartitionsDefinition.partition_loading_context.--select/--exclude to a temporary selectors.yml, runtime --exclude arguments were silently dropped.@dbt_assets ops.dagstermill notebook ops from 60s to 120s.Nothing published for this version
typing.Mapping and typing.Sequence annotations are now supported on op and asset inputs.
typing.Mapping and typing.Sequence annotations are now supported on op and asset inputs.path_prefix parameter to DagsterGraphQLClient to support connecting to webserver deployments behind a non-root path prefix.storage_kind field to TableMetadataSet to denote the storage system that backs a table (e.g., snowflake, databricks, bigquery).define_asset_job now validates owner strings at definition time, producing clearer error messages for invalid owners.schedule: and sensor: selector syntax now matches assets in jobs targeted by the schedule or sensor, in addition to assets directly in the asset selection.endpoint_suffix parameter to ADLS2 and Blob Storage utilities, resources, components, and compute log manager (also exposed as endpointSuffix in the Helm chart for AzureBlobComputeLogManager), enabling Azure Government Cloud, Azure China, and other sovereign cloud endpoints.translation parameter to DbtCloudComponent for customizing how dbt models are translated into Dagster assets.dagster-soda library (preview) containing the SodaScanComponent for executing Soda Core data quality checks.dg plus deploy did not read the local config stored by dg plus login.InsufficientFreeAddressesInSubnet and "Task provisioning failed" are now treated as transient ECS stop reasons, so affected runs are retried instead of marked as a permanent failure.[dagster-snowflake] Replaced deprecated Pydantic validator usage with field_validator to eliminate Pydantic deprecation warnings.
owners parameter to define_asset_job, mirroring the field on regular jobs.LOGS_CAPTURED event messages no longer say "Started capturing logs", since compute log managers typically upload logs on completion rather than streaming in real time.dagster-clickhouse, dagster-clickhouse-pandas, and dagster-clickhouse-polars libraries with native ClickHouse resources, IO managers, and dg components.EcsUserCodeLauncher now accepts a repository_credentials config option, allowing ECR credentials to be configured at the agent or deployment level instead of only per code location.auth_provider config option (azure_wif, gcp_wif, or aws_wif), with optional extras dagster-postgres[azure], dagster-postgres[gcp], and dagster-postgres[aws]. The Helm chart supports WIF via global.postgresqlAuthWifEnabled. (Thanks, @JohnMav!)dg plus deploy configure.key:value autocompletion in search inputs not advancing into value-suggestion context when accepting a key with the Enter key.--defs-state-info argument was applied to the multipex server command but not to the gRPC server command in serverless deployments.enable_duplicate_source_asset_keys could emit duplicate dependency entries and ambiguous source metadata when multiple dbt sources resolved to the same asset key.NO_PROXY or no_proxy environment variable did not affect the configuration of Kubernetes API calls.validator usage with field_validator to eliminate Pydantic deprecation warnings.dg CLI configuration option for setting a custom virtual environment path.[ui] Users can now hold Cmd or Ctrl while clicking launch, materialize, re-execute, or retry buttons to open the resulting run in a new browser tab in
azuredevops kind.dg utils integrations sub-command has been removed.DatabricksClientResource now accepts a credentials_strategy argument, enabling federated and custom authentication flows via the Databricks SDK's CredentialsStrategy protocol. (Thanks, @hbellur0526!)--api-token flag was ignored when passed to dg CLI commands.dg api asset-checks where the command used a non-existent top-level GraphQL resolver path.TypeError when credentials_strategy was None.Fixed a SQL injection vulnerability in several IO managers. We recommend all users upgrade. More details can be found at https://github.com/dagster-io…
PipesCompositeMessageReader (preview) to support multiple concurrent message streams in a single Pipes session.sensor:, schedule:, and job: attribute support to the asset selection syntax (e.g., sensor:my_sensor, job:my_job).automation_type: attribute support to the asset selection syntax, allowing queries like automation_type:schedule or automation_type:sensor. (Thanks, @bengotow!)AirbyteWorkspaceComponent, FivetranWorkspaceComponent) now default to LOCAL_FILESYSTEM state storage instead of legacy_code_server_snapshots.dg api issue create and dg api issue update commands.dg api issue list.DagsterDbtTranslatorSettings.enable_source_metadata now defaults to True, enabling upstream asset key remapping based on dbt source table names by default.execute_in_process() would sometimes fail to display the step timeline in the Dagster UI.PickledObjectS3IOManager now defaults the S3 key prefix to an empty string when none is provided. (Thanks, @aksestok!)PipesDatabricksClient.run_multi_task and PipesDatabricksServerlessClient.run_multi_task now give each submitted task its own message destination by default, fixing chunk-file collisions between concurrent tasks.free_slots_after_run_end_seconds concurrency configuration option.Removed deprecated external_asset_from_spec and external_assets_from_specs. Use AssetSpec inputs directly to Definitions(...) or AssetsDefinition(spec…
dg api commands for programmatic inspection of assets, runs, jobs, schedules, and more.is_virtual parameter on @asset and AssetSpec for modeling assets like database views that automatically reflect upstream changes without explicit materialization.external_asset_from_spec and external_assets_from_specs. Use AssetSpec inputs directly to Definitions(...) or AssetsDefinition(specs=[...]) instead.AssetKey deps argument support from asset dependencies. Use a sequence of AssetDep objects instead.get_all_asset_specs from Definitions.legacy_freshness_policy parameter from @observable_source_asset.auto_observe_interval_minutes parameter from @observable_source_asset.legacy_freshness_policies_by_output_name parameter from AssetsDefinition.load_component_at_path from ComponentLoadContext. Use context.load_component instead.build_defs_at_path from ComponentLoadContext.AirbyteState enum (use AirbyteJobStatusType instead) and removed deprecated legacy_freshness_policy and auto_materialize_policy parameters from build_airbyte_assets().DagsterLookerResource.build_defs, get_asset_key, get_dashboard_asset_key, get_explore_asset_key, get_view_asset_key methods, and Type[DagsterLookerApiTranslator] support from API helpers.PowerBIWorkspace.build_defs(), translator key helpers (use get_asset_spec() instead), and Type[DagsterPowerBITranslator] support in load_powerbi_asset_specs() (pass an instance instead).SigmaOrganization.build_defs(), DagsterSigmaTranslator.get_asset_key() (use get_asset_spec(...).key instead), and Type[DagsterSigmaTranslator] support in load_sigma_asset_specs() (pass an instance instead).@asset decorator and AssetSpec now accept an is_virtual parameter for defining assets that represent views or derived tables that don't need to be materialized. Virtual assets are supported in staleness calculations, execution planning, and declarative automation.enable_dbt_views_as_virtual_assets setting to DbtTranslatorSettings for automatically treating dbt views as virtual assets.run_tags and specifying an asset_selection in the RunRequest would not apply the job's run_tags to the resulting run.None fields.dg plus deploy configure generating a GitHub Action that used Docker instead of the PEX build strategy.ansi-to-react library update.members.value eq queries.DAGSTER_CLOUD_RAW_GIT_URL and DAGSTER_CLOUD_GIT_URL environment variables when onlyAllowUserDefinedK8sConfigFields was set.[dg] dg projects can now configure agent_queue and image in pyproject.toml under [tool.dg.project], which are included in the generated dagster_cloud.
dg projects can now configure agent_queue and image in pyproject.toml under [tool.dg.project], which are included in the generated dagster_cloud.yaml when running dg plus deploy.dg api job list and dg api job get commands for querying job metadata including schedules, sensors, and tags.dg api asset-check list, dg api asset-check get-executions, and dg api asset get-partition-status commands.flagAssetCatalogSidebar feature flag. The asset catalog sidebar is now always enabled.EcsRunLauncher and Dagster+ ECS agent now supply idempotency tokens when creating ECS services and tasks, improving retry behavior after transient failures.DbtCloudComponent now supports an option to include a polling sensor for monitoring dbt Cloud job runs.snap_to_yaml incorrectly removing empty dicts that represent valid config values for Permissive, Map, and Noneable config types.DagsterInvalidDefinitionError during nested component post_processing resolution. (Thanks, @vidiyala99!)PipesECSClient incorrectly treating a task that failed to start as a successful execution.dg plus deploy not correctly pulling in environment variables when refreshing definitions state for state-backed components.dg plus integrations dbt download-manifest command to download dbt manifests from Dagster Plus for local development.Removed the setuptools<82 pin from the dagster package.
setuptools<82 pin from the dagster package.partitions attribute in asset selection syntax to filter assets by partition definition type (e.g., partitions:"static").DbtProjectComponents with custom translation methods to not work with utilities like build_schedule_from_dbt_selection.service_discovery_role_arn configuration parameter.Execution context classes (OpExecutionContext, AssetExecutionContext, AssetCheckExecutionContext) now expose a multi_partition_key property that retur
OpExecutionContext, AssetExecutionContext, AssetCheckExecutionContext) now expose a multi_partition_key property that returns a MultiPartitionKey when the current run is a multi-partition run.Braze and Runpod kind tags. (Thanks, @dragos-pop!)DbtCloudComponent for loading dbt Cloud projects as Dagster assets using the Components API.dbt_cloud_assets decorator now supports partitioned assets via the partitions_def parameter.FivetranWorkspace now supports a retry_on_reschedule option to automatically retry syncs rescheduled by Fivetran due to quota limits, as well as resync operations.k8sApiCaBundlePath to configure a custom CA certificate path for Kubernetes API communication.service_spec_config field for arbitrary Kubernetes Service spec overrides (for example, clusterIP: None for headless services).s3_pickle_io_manager failing with dynamic outputs when step keys contain bracket characters in the generated S3 object path.PipesEMRServerlessClient where a custom CloudWatch log group name configured in monitoringConfiguration.cloudWatchLoggingConfiguration.logGroupName was ignored, causing log streaming to always use the default /aws/emr-serverless log group. (Thanks, @kchainani-figma!)Added a "Report Execution" dialog to the asset checks detail view, allowing users to manually record check evaluation results.
--db-pool-recycle, --db-pool-pre-ping, and others) to dg dev and dagster dev.dg plus config view command for inspecting the current CLI configuration.dagster-azure, including AzureBlobStorageResourceComponent and ADLS2ResourceComponent for declarative YAML configuration of Azure resources.DatabricksAssetBundleComponent is now subsettable at the job level, enabling selective execution of individual Databricks tasks.DatabricksAssetBundleComponent now uses the Databricks CLI to resolve variable references to task and job names in bundle templates.DatabricksWorkspaceComponent.dagster-dbt now prefers dbt-core for manifest parsing when it is installed.BigQueryResourceComponent, GCSResourceComponent, GCSFileManagerResourceComponent, and DataprocResourceComponent for declarative YAML configuration of GCP resources.BigQueryIOManager now supports a configurable write_mode parameter (truncate, replace, or append).dg plus pull env now merges pulled secrets into the existing .env file instead of replacing it, preserving any locally-set variables not present in Dagster Plus.KeyError for run_page_url in DatabricksWorkspaceComponent.DatabricksAssetBundleComponent and DatabricksWorkspaceComponent to use job and task key combinations, preventing conflicts when task keys are not unique across jobs.Added event type filtering to the asset Recent Updates timeline, allowing users to toggle between Materializations and Observations when both event ty
psycopg2-binary has been removed as a dependency from dagster-postgres. If you were previously relying on this transitive dependency, you may need to explicitly add psycopg2-binary to your project.DbtProject and DbtProjectComponent now expose prepare_project_cli_args to allow customizing CLI arguments used to generate the manifest.dagster/table_name metadata. Additionally, dagster-tableau and dagster-looker assets now populate dagster/storage_kind based on the upstream connection type.sling package import is now deferred to improve import-time performance.__enter__ on nested resource attributes annotated with dagster.ResourceDependency during parent resource setup. (Thanks, @danielgafni!)Fix bug with inclusion of built webapp in dagster-webserver that caused the Dagster UI to fail to load.
dagster-webserver that caused the Dagster UI to fail to load.Nothing published for this version
Nothing published for this version
Nothing published for this version
Pool names can now be any non-whitespace character, instead of requiring alphanumbeic characters, slashes, and underscores.
EcsRunLauncher will now retry a task launch when a RunTask API call fails due to a throttling error in an underlying EC2 API call.workbook_selector and project_selector in TableauComponent.DbtProject constructor now correctly accepts strings for the target_path parameter.Nothing published for this version
Nothing published for this version
[dagster-github] Ensured compatibility with pyjwt>=2.11.0,which introduced breaking changes.
@asset_check and AssetCheckSpec now support a partitions_def parameter, allowing checks to execute against specific partitions of their upstream asset rather than the entire contents. If set, the partition definition must match the definition of the targeted asset.*/10 or */30) in the day-of-month field where invalid days weren't properly skipped.PipesK8sClient would sometimes fail when containers in the ignored_containers list failed.pyjwt>=2.11.0,which introduced breaking changes.Nothing published for this version
Nothing published for this version
Nothing published for this version
[dagster-polytomic] PolytomicComponent has been added and can be used to represent your Polytomic bulk sync schemas as external assets in Dagster
PolytomicComponent has been added and can be used to represent your Polytomic bulk sync schemas as external assets in DagsterNothing published for this version
dg plus deploy start now validates deployment akin to dagster-cloud ci check.
dg plus deploy start now validates deployment akin to dagster-cloud ci check.@asset, @multi_asset, and @graph_asset decorators.dg launch --partition-range for an asset without an explicitly defined single-run-backfill policy now provides a clean error message.config_source values were ignored. (Thanks, @danielbitzer!)dg plus deploy refresh-defs-state URL construction for EU regions.concurrency config with default queuedRunCoordinator values.dg list defs now correctly shows labels for automation conditions.dagster-dbt project prepare-and-package command where user files named dbt.py could shadow the dbt module. (Thanks, @alexaustin007!)The dagster-cloud ci check command is now marked as deprecated. Use dg plus deploy start instead, which now validates configuration during deployment…
dagster-cloud ci check command is now marked as deprecated. Use dg plus deploy start instead, which now validates configuration during deployment initialization.FivetranWorkspace now supports a request_backoff_factor parameter for enabling exponential backoff on request failures.exclude parameter of @dbt_assets could be ignored if the selection was too large.dagster/row_count metadata was sometimes not displayed on the Asset Overview page if it was being set by an asset observation rather than a materialization.[ui] Fixed an issue introduced in 1.12.9 where the "Catalog" tab in the Dagster UI sometimes failed to display any assets.
The core dagster package (and most libraries) are now compatible with Python 3.14.
dagster package (and most libraries) are now compatible with Python 3.14.dg plus deploy.dg plus login now supports a region flag for eu-based users: dg plus login --region eu.bulk_actions table body column from Text to LongText for Mysql storage. To take advantage of this migration run dagster instance migrate. (Thanks, @jenkoian!)asset_keys table cached_status_data column from Text to LongText for Mysql storage. To take advantage of this migration run dagster instance migrate. (Thanks, @jenkoian!)dagster/code_location tag when created with a remote_job_origin, enabling filtering and concurrency control by code location. (Thanks, @ssup2!)concurrency setting to the helm chart to configure concurrency pools.ADLS2PickleIOManager now overwrites blob keys when the same asset is materialized twice, instead of deleting then writing the blob.ecs/container_overrides tag can now be set on jobs (or on runs in the launchpad) to customize container-level overrides (like GPU resource requirements) for runs using the EcsRunLauncher.dagster-dbt now supports dbt-core 1.11. (Thanks, @nicoa!)DatabricksWorkspaceComponent to automatically discover Databricks jobs as Dagster assets.LookerComponent.k8s_job_executor.k8s_job_executor could result in a step continuing to run after the run failed.TimeWindowPartitionsDefinitions that contain multiple time windows that map to the same partition key (for example, an hourly partitions definition with a daily format key) will now raise an Exception during dagster definitions validate, instead of being allowed but causing undefined behavior.DbtCliEventMessage iterator to error while parsing certain error messages produced by dbt-core.dg plus deploy commands now support Python 3.13 and Python 3.14.
dg plus deploy commands now support Python 3.13 and Python 3.14.--skip-schema-validation flag to the Helm deploy command. Thanks @kang8!Optimized performance of calculating partition keys for time window partitions with exclusions.
timedelta and datetime are now available via the datetime context when rendering components (Thanks, @stevenayers!)FreshnessPolicy is now available via the dg context when rendering components. (Thanks, @stevenayers!)json_schema_extra={"dagster__is_secret": True} on the corresponding Field definition in the resource class.dg docs cli group has been removed. The integrations subcommand has been moved to dg utils integrations.gql dependency in dagster-graphql to be inclusive of v4 for broader transitive dependency compatibilityTableauWorkspace.connected_app_secret_value is now hidden in the UI.map_asset_specs on assets defined using the ins parameter. (Thanks, @Jongwan93!)dg plus deploy refresh-defs-state which could cause errors when refreshing state for components that required CLIs that were only available in the project environment.All CLI commands under dagster project have been removed. create-dagster should be used instead.
dagster project have been removed. create-dagster should be used instead.SINCE conditions in evaluation tables for automation conditions.Resolved that had fields using default_factory arguments.dg plus deploy refresh-defs-state which could cause errors when refreshing state for components that required CLIs that were only available in the project environment.DbtCliResource to use the project_dir attribute from the DbtProject instance rather than passing the entire DbtProject object.While these applications are unaffected by https://nextjs.org/blog/CVE-2025-66478 due to not using React 19, this upgrade ensures that dagster package…
dg docs serve command to 15.5.7. While these applications are unaffected by https://nextjs.org/blog/CVE-2025-66478 due to not using React 19, this upgrade ensures that dagster packages will not be flagged for that CVE by vulnerability scanners.CI workflows for Gitlab projects can now be scaffolded using dg plus deploy configure.
dg plus deploy configure.kind tag icon for Zendesk (Thanks, @kporter13!)enable_embedded_datasource_refresh and enable_published_datsource_refresh options to the TableauComponent, which allow creating materializable assets for the associated datasource types.SensorDefinition subclasses (e.g. AutomationConditionSensorDefinition, RunStatusSensorDefinition) to be converted to having the wrong sensor_type property when produced from a Component.Flower config map was included in the Helm chart even when Flower was disabled (Thanks, @LoHertel!)FileExistsError on Windows when reloading dbt project definitions by ensuring the local project directory creation handles pre-existing directories (Thanks, @Jongwan93!)workbook_selector_fn to filter assets. Now dependencies are only accessed if they exist in the workspace data. (Thanks, @miriamcastel!)workbook_selector_fn was only applied to the first 100 workbooks.. were improperly handled.dagster-iceberg docs to include recently-added features. (Thanks, @zyd14!)Updated the cursoring logic of AutomationCondition.since()/AutomationCondition.newly_true() to make them retain access to their stored data in a wider
AutomationCondition.since()/AutomationCondition.newly_true() to make them retain access to their stored data in a wider range of scenarios where the underlying condition structure is changed.--use-active-venv method to a variety of dg commands. (Thanks, @cmpadden!)build_defs_at_path and load_component_at_path methods on the ComponentLoadContext class have been renamed to build_defs and load_component respectively. The previous names have been preserved for backcompat.{{ automation_condition.on_cron(...) }} -> {{ dg.AutomationCondition.on_cron(...) }}AutomationCondition static constructors may be accessed via the dg context, e.g.:
{{ dg.AutomationCondition.on_missing() & dg.AutomationCondition.in_latest_time_window() }}PartitionsDefinition subclasses are now available via the dg context, e.g.:{{ dg.StaticPartitionsDefinition(['a', 'b', 'c']) }}{{ dg.DailyPartitionsDefinition('2025-01-01') }}{{ project_root }} -> {{ context.project_root }}{{ build_definitions_at_path(...) }} -> {{ context.build_defs(...) }}{{ load_component_at_path(...) }} -> {{ context.load_component(...) }}create_snowpark_session() which provides a convenient way to create a Snowpark session. (Thanks, @stevenayers!)get_databases(), get_schemas(), get_tables(), get_views(), get_pipes() & get_stages() which provide a pythonic interface for Snowflake introspection. (Thanks, @stevenayers!)op_config_schema property on the DbtProjectComponent to customize how your dbt execution can be configured at runtime.FileExistsError on Windows when reloading dbt project definitions by ensuring the local project directory creation handles pre-existing directories. (Thanks, @Jongwan93!)DbtProjectComponent to not produce asset checks for tests on dbt sources. (Thanks, @stevenayers!)Dagster has dropped support for Python 3.9 (due to end of life). The minimum supported Python version is now 3.10. This is a breaking change originall…
dg api schedule {list,get} command.dg plus deploy configure CLI group that generates all the files necessary to get an existing project ready for deployment via Dagster+.CensusComponent allowing Dagster assets to sync with census connections.poll_previous_running_sync, max_items_per_page, poll_interval, poll_timeout & cancel_on_termination. (Thanks, @stevenayers and @sonianuj287!)op_config_schema property on the DbtProjectComponent to customize how your dbt execution can be configured at runtime.Migrate SqlComponent to Pydantic v2 model_config pattern (Thanks, @LPauzies!)
dg api commands visible in dg --help output.dg plus commands visible in the dg --help output.dg scaffold github-actions now include commands to refresh state for StateBackedComponents.dg.AutomationCondition.freshness_passed(), dg.AutomationCondition.freshness_warned() and dg.AutomationCondition.freshness_failed(). (Thanks, @stevenayers!)ValueError: too many values to unpack (expected 3) when using Dask version 2022.4.2. (Thanks, @kudryk!)dbt CLI invocation to fail from too many arguments.These supersede the LegacyFreshnessPolicy API (formerly FreshnessPolicy, deprecated in 1.10.0), as well as freshness checks.
dg CLI are now marked as GA (previously Release Candidate). The APIs are fully supported throughout all parts of the product and remain the recommended defaults for new Dagster projects.execute() and get_asset_spec() methods that can be overridden by subclasses, making it easier and more consistent to customize your components.StateBackedComponent abstract base class that enables components to persist and manage state separately from their YAML / Python configuration. This is particularly useful for integration components that need to fetch external data. State can be managed locally, in versioned storage, or via code server snapshots. Many integration components (AirbyteWorkspaceComponent, FivetranAccountComponent, PowerBIWorkspaceComponent, AirflowInstanceComponent, and DbtProjectComponent) now extend StateBackedComponent to provide better control over state management. You can check out the docs here!dg scaffold build-artifacts scaffolds Docker and configuration files needed to build and deploy your Dagster project to Dagster Cloud, with support for multiple container registries (ECR, DockerHub, GHCR, ACR, GCR).dg scaffold github-actions generates a complete GitHub Actions CI/CD workflow for deploying to Dagster Cloud, with auto-detection of Serverless vs Hybrid agents and guided setup for required secrets.LegacyFreshnessPolicy API (formerly FreshnessPolicy, deprecated in 1.10.0), as well as freshness checks.
FreshnessPolicy and apply_freshness_policy are now exported from the top-level dagster module (instead of dagster.preview.freshness ).build_.*_freshness_checks methods have been marked as superseded . Their functionality will remain unchanged, but we recommend using FreshnessPolicy s for new use cases.FreshnessDaemon now runs by default, rather than needing to be explicitly enabled via dagster.yaml settings. To turn it off, set:freshness:
enabled: false
TimeWindowPartitionsDefinition now support an exclusions parameter, which allows you to exclude specific dates/times or recurring schedules from your partition set. This is useful for implementing custom calendars that exclude weekends, holidays, or maintenance windows. Exclusions can be specified as cron strings (e.g., "0 0 * * 6" for Saturdays) or datetime objects for specific dates.Executors have been updated to accept an optional step_dependency_config parameter with a require_upstream_step_success flag. When set to False via {"step_dependency_config": {"require_upstream_step_success": False}}, downstream steps can start as soon as their required upstream outputs are available, rather than waiting for the entire upstream step to complete successfully. This is particularly useful for large multi-assets where downstream assets only depend on a subset of upstream outputs.MultiprocessExecutor, DockerExecutor, and K8sJobExecutor now retry according to their configured retry policy when the step fails during resource initialization.key_prefix parameter to PipesS3ContextInjector (Thanks, @elipinska!)PipesAzureMLClient.AzureBlobStorage.TableauComponentLookerComponentSigmaComponent.DagsterDbtTranslator no longer has a get_freshness_policy method, nor does it automatically parse the legacy / deprecated LegacyFreshnessPolicy objects from dbt model configuration.DagsterSlingTranslator no longer has a get_freshness_policy method, nor does it automatically parse the legacy / deprecated LegacyFreshnessPolicy objects from sling configuration.DagsterInvalidConfigError.enable_code_references to result in errors for dbt assets.The proxy GRPC server heartbeat TTL can now be configured with the DAGSTER_GRPC_PROXY_HEARTBEAT_TTL_SECONDS env var (default remains 30 seconds).
gRPC Error code: RESOURCE_EXHAUSTED error.DbtProjectComponent, FivetranAccountComponent, and similar state-based components in k8s deployments due to a missing StateStorage object in context.python-dateutil to dagster-omni. (Thanks, @bollwyvl!)All sequences are now supported in AssetKey.with_prefix. (Thanks, @aksestok!)
AssetKey.with_prefix. (Thanks, @aksestok!)notebook_task in PipesDatabricksClient. (Thanks, @SoerenStahlmann!)fetch_row_counts and fetch_column_metadata do not execute in the same working directory as the underlying dbt command.AutomationCondition.execution_failed that would cause it to be evaluated as True for an unpartitioned asset in cases where the latest run failed, but the asset itself materialized successfully before that failure.cli_args: field of the DbtProjectComponent.Your coding agent can read these notes before it upgrades. Set up the MCP server →