Use Airflow 3 AssetAlias to resolve dynamically-determined asset URIs at task execution time
domain: airflow.apache.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Import Asset and AssetAlias from the current Airflow 3 module path instead of the deprecated Dataset/DatasetAlias names used in Airflow 2.
Define a task's outlets using an AssetAlias placeholder when the concrete asset URI (e.g. a partitioned storage path) isn't known until the task runs.
Inside the task, resolve the alias to one or more concrete Asset URIs at runtime and emit them so downstream DAGs scheduled on those concrete assets are triggered correctly.
Configure a downstream DAG's schedule to depend on the AssetAlias (or the resolved assets it expands to) so it fires once the producing task resolves the alias.
Verify in the Airflow UI's Assets view that the alias correctly expands to the expected concrete asset URIs after a run.
Known gotchas
AssetAlias only resolves to concrete assets after the producing task actually executes and emits them; a downstream DAG scheduled purely on the alias before any resolution has occurred will not trigger.
Airflow 3 renamed Dataset to Asset and DatasetAlias to AssetAlias; DAGs upgraded from Airflow 2 need their imports and class references updated, not just a version bump.
Asset-based scheduling triggers on asset events, not on DAG success/failure, so where exactly in the task the alias is resolved and emitted affects when downstream DAGs actually fire.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?