The deps parameter for @asset and @multi_asset now supports directly passing @multi_asset definitions. If an @multi_asset is passed to deps, dependencies will be created on every asset produced by the @multi_asset.
Added an optional data migration to convert storage ids to use 64-bit integers instead of 32-bit integers. This will incur some downtime, but may be required for instances that are handling a large number of events. This migration can be invoked using dagster instance migrate --bigint-migration.
[ui] Dagster now allows you to run asset checks individually.
[ui] The run list and run details page now show the asset checks targeted by each run.
[ui] In the runs list, runs launched by schedules or sensors will now have tags that link directly to those schedules or sensors.
[ui] Clicking the "N assets" tag on a run allows you to navigate to the filtered asset graph as well as view the full list of asset keys.
[ui] Schedules, sensors, and observable source assets now appear on the resource “Uses” page.
[dagster-dbt] The DbtCliResource now validates at definition time that its project_dir and profiles_dir arguments are directories that respectively contain a dbt_project.yml and profiles.yml.
[dagster-databricks] You can now configure a policy_id for new clusters when using the databricks_pyspark_step_launcher (thanks @zyd14!)
[ui] Added an experimental sidebar to the Asset lineage graph to aid in navigating large graphs. You can enable this feature under user settings.
Fixed an issue where the dagster-webserver command was not indicating which port it was using in the command-line output.
Fixed an issue with the quickstart_gcp example wasn’t setting GCP credentials properly when setting up its IOManager.
Fixed an issue where the process output for Dagster run and step containers would repeat each log message twice in JSON format when the process finished.
[ui] Fixed an issue where the config editor failed to load when materializing certain assets.
[auto-materialize] Previously, rematerializing an old partition of an asset which depended on a prior partition of itself would result in a chain of materializations to propagate that change all the way through to the most recent partition of this asset. To prevent these “slow-motion backfills”, this behavior has been updated such that these updates are no longer propagated.
Previously, when importing a dbt project in Cloud, naming the code location “dagster” would cause build failures. This is now disabled and an error is now surfaced.
[dagster-ext] An initial version of the dagster-ext module along with subprocess, docker, databricks, and k8s pod integrations are now available. Read more at https://github.com/dagster-io/dagster/discussions/16319. Note that the module is temporarily being published to PyPI under dagster-ext-process, but is available in python as import dagster_ext.
[asset checks] Added an ‘execute’ button to run checks without materializing the asset. Currently this is only supported for checks defined with @asset_check or AssetChecksDefinition.
[asset checks] Added check_specs argument to @graph_multi_asset
[asset checks] Fixed a bug with checks on @graph_asset that would raise an error about nonexistant checks
The double evaluation of log messages in sensor logging has been fixed (thanks @janosroden !)
Cron schedules targeting leap day (ending with 29 2 *) no longer cause exceptions in the UI or daemon.
Previously, if multiple partitioned observable_source_assets with different partition definitions existed in the same code location, runs targeting those assets could fail to launch. This has been fixed.
When using AutoMaterializePolicies with assets that depended on prior partitions of themselves, updating the start_date of their underlying PartitionsDefinition could result in runs being launched for partitions that no longer existed. This has been fixed.
Fixed an issue where auto-materilization could sometimes produce duplicate runs if there was an error in the middle of an auto-materialization tick.
[dagster-census] A recent change to the Census API broke compatibility with
this integration. This has been fixed (thanks @ldnicolasmay!)
[dagster-dbt] Fixed an issue where DagsterDbtTranslator did not properly invoke get_auto_materialize_policy and get_freshness_policy for load_assets_from_dbt_project.
[ui] Fixed a number of interaction bugs with the Launchpad config editor, including issues with newlines and multiple cursors.
[ui] Asset keys and partitions presented in the asset checks UI are sorted to avoid flickering.
[ui] Backfill actions (terminate backfill runs, cancel backfill submission) are now available from an actions menu on the asset backfill details page.
[Experimental] Added support for freeing global op concurrency slots after runs have finished, using the deployment setting: run_monitoring > free_slots_after_run_end_seconds
Fixed an issue where the dagster scheduler would sometimes raise an error if a schedule set its cron_schedule to a list of strings and also had its default status set to AUTOMATICALLY_RUNNING.
Fixed an issue where the auto-materialize daemon would sometimes raise a RecursionError when processing asset graphs with long upstream dependency chains.
[ui] Fixed an issue where the Raw Compute Logs dropdown on the Run page sometimes didn’t show the current step name or properly account for retried steps.
Asset checks are now displayed in the asset graph and sidebar.
[Breaking] Asset check severity is now set at runtime on AssetCheckResult instead of in the @asset_check definition. Now you can define one check that either errors or warns depending on your check logic. ERROR severity no longer causes the run to fail. We plan to reintroduce this functionality with a different API.
[Breaking] @asset_check now requires the asset= argument, even if the asset is passed as an input to the decorated function. Example:
Dagster code servers now wait to shut down until any calls that they are running have finished, preventing them from stopping while in the middle of executing sensor ticks or other long-running operations.
The dagster execute job cli now accepts —-op-selection (thanks @silent-lad!)
[ui] Option (Alt) + R now reloads all code locations (OSS only)
Adds a check to validate partition mappings when directly constructing AssetsDefinition instances.
Assets invoked in composition functions like @graph and @job now work again, fixing a regression introduced in 1.4.5.
Fixed an issue where a race condition with parallel runs materializing the same asset could cause a run to raise a RecursionError during execution.
Fixed an issue where including a resource in both a schedule and a job raised a “Cannot specify resource requirements” exception when the definitions were loaded.
The ins argument to graph_asset is now respected correctly.
Fixed an issue where the daemon process could sometimes stop with a heartbeat failure when the first sensor it ran took a long time to execute.
Fixed an issue where dagster dev failed on startup when the DAGSTER_GRPC_PORT `environment variable was set in the environment.
deps arguments for an asset can now be specified as an iterable instead of a sequence, allowing for sets to be passed.
[dagster-aws] Fixed a bug where the S3PickleIOManager didn’t correctly handle missing partitions when allow_missing_partitions was set. Thanks @o-sirawat!
[dagster-k8s] in the helm chart, the daemon securityContext setting now applies correctly to all init containers (thanks @maowerner!)
New APIs for defining and executing checks on software-defined assets. These APIs are very early and subject to change. The corresponding UI has limited functionality. Docs
Adds a new auto-materialize skip rule AutoMaterializeRule.skip_on_not_all_parents_updated that enforces that an asset can only be materialized if all parents have been materialized since the asset's last materialization.
Exposed an auto-materialize skip rule – AutoMaterializeRule.skip_on_parent_missing –which is already part of the behavior of the default auto-materialize policy.
Auto-materialize evaluation history will now be stored for 1 month, instead of 1 week.
The auto-materialize asset daemon now includes more logs about what it’s doing for each asset in each tick in the Dagster Daemon process output.