Fix: allow PATCH /dags to filter by tags/owners without dag_id_pattern#63665
Open
justinpakzad wants to merge 1 commit intoapache:mainfrom
Open
Fix: allow PATCH /dags to filter by tags/owners without dag_id_pattern#63665justinpakzad wants to merge 1 commit intoapache:mainfrom
justinpakzad wants to merge 1 commit intoapache:mainfrom
Conversation
c032f2c to
3b2f945
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently the PATCH dags endpoint uses the QueryDagIdPatternSearchWithNone for the dag_id_pattern which has
skip_none = False, meaning if we try to pause/unpause via tags or owners it won't work unless a value for dag_id_pattern is passed as well. This seems intentional as we wouldn't want users to accidently unpause or pause all of their dags if they mistakenly don't pass in any filters/query-params but it does pose limitations - one of them being if I try to provide the following params to the request:params={ "update_mask": ["is_paused"], "tags": ["loader"], "tags_match_mode": "any" }no dags would be paused even though I have dags tagged with loader. If that is the intended behavior then that's fine we should probably just update the documentation so that's clear.
The changes I'm proposing would still have the "safeguard" in place by checking if the dag_id_pattern, tags, or owners filters were passed and if not it would do something similar to what it does now and just not PATCH any of the dags. With this guard in place, we can use the existing QueryDagIdPatternSearch (which has
skip_none=True) instead. This allows patching dags by tags, owners, or dag_id patterns independently.closes: #50555
Was generative AI tooling used to co-author this PR?
Claude Sonnet 4.5 (mainly for generating test dags)
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.