Repository navigation
Reject serde-reserved keys in HITL params_input - #71054
Conversation
|
This doesn't have to be in 3.3.1, but if we are comfortable (cc @Lee-W) we can consider it. |
|
A few nitpicks, but overall this looks good. I also don't think it's worth blocking the 3.3.1 release. |
|
Moved to 3.3.2 |
|
@Lee-W Applied changes left from review |
jason810496
left a comment
There was a problem hiding this comment.
Additionally, we could introduce a common function to handle at both side.
|
LGTM! @Lee-W can you review this again? |
There was a problem hiding this comment.
I prefer to move this to 3.3.3 milestone since the #71054 (comment) comment hasn't be addressed.
|
Addressed the comments |
jason810496
left a comment
There was a problem hiding this comment.
LGTM once these comments be addressed, thanks.
|
Addressed review comments |
jason810496
left a comment
There was a problem hiding this comment.
LGTM now, thanks for the update.
|
nit: This docstring also cites the old method ( |
|
Fixed stale reference |
Backport failed to create: v3-3-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker 1e1fcd2 v3-3-testThis should apply the commit to the v3-3-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
A HITL response whose
params_inputcontains a serde-reserved key (__classname__or__id__) cannot be serialized when the task resumes. Today the response is silently discarded and the user has no way to resubmit a corrected one.This validates
params_inputwhen the response is submitted and returns a 400 if it carries one of those keys, before anything is written. The task stays inAWAITING_INPUT, so the user can fix the input and resubmit.Only the public HITL route needs this. The execution API route builds its
params_inputfrom trusted operator code rather than user input, so it is left as is.closes: #71036