{"id":"f5ca06c1-34f4-4282-80e8-54270cdd4500","task":"Use Airflow 3 AssetAlias to resolve dynamically-determined asset URIs at task execution time","domain":"airflow.apache.org","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."],"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."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/f5ca06c1-34f4-4282-80e8-54270cdd4500"}