Skip to content

[v3-3-test] Mask list-shaped Variable values on deserialization (#70891) - #71069

Merged
vatsrahul1001 merged 1 commit into
v3-3-testfrom
backport-b968192-v3-3-test
Aug 4, 2026
Merged

[v3-3-test] Mask list-shaped Variable values on deserialization (#70891)#71069
vatsrahul1001 merged 1 commit into
v3-3-testfrom
backport-b968192-v3-3-test

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
  • Mask list-shaped Variable values on deserialization

_mask_and_deserialize_variable dispatched on the top-level type of the
deserialized value and handled only str and dict, so a Variable whose JSON is a
list was returned with no masking applied to anything inside it. add_mask walks
iterables itself, so the same list nested one level inside a dict was already
masked -- only a top-level one was skipped.

The list is passed under the variable's key rather than anonymously: elements
have no key names of their own, so they follow the variable key's sensitivity,
and a list of ordinary values such as region names is not added to the global
pattern set. Dicts inside the list are still masked by their own key names.

  • Tighten the comments around Variable masking dispatch

The rationale was spread across three sites saying the same thing; keep it at
the branch where the decision is made.
(cherry picked from commit b968192)

Co-authored-by: Jarek Potiuk jarek@potiuk.com

* Mask list-shaped Variable values on deserialization

_mask_and_deserialize_variable dispatched on the top-level type of the
deserialized value and handled only str and dict, so a Variable whose JSON is a
list was returned with no masking applied to anything inside it. add_mask walks
iterables itself, so the same list nested one level inside a dict was already
masked -- only a top-level one was skipped.

The list is passed under the variable's key rather than anonymously: elements
have no key names of their own, so they follow the variable key's sensitivity,
and a list of ordinary values such as region names is not added to the global
pattern set. Dicts inside the list are still masked by their own key names.

* Tighten the comments around Variable masking dispatch

The rationale was spread across three sites saying the same thing; keep it at
the branch where the decision is made.
(cherry picked from commit b968192)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
@vatsrahul1001
vatsrahul1001 marked this pull request as ready for review August 4, 2026 12:55
@vatsrahul1001 vatsrahul1001 added this to the Airflow 3.3.1 milestone Aug 4, 2026
@vatsrahul1001 vatsrahul1001 added the type:bug-fix Changelog: Bug Fixes label Aug 4, 2026
@vatsrahul1001
vatsrahul1001 merged commit b080248 into v3-3-test Aug 4, 2026
117 of 126 checks passed
@vatsrahul1001
vatsrahul1001 deleted the backport-b968192-v3-3-test branch August 4, 2026 14:10
vatsrahul1001 pushed a commit that referenced this pull request Aug 5, 2026
…) (#71069)

* Mask list-shaped Variable values on deserialization

_mask_and_deserialize_variable dispatched on the top-level type of the
deserialized value and handled only str and dict, so a Variable whose JSON is a
list was returned with no masking applied to anything inside it. add_mask walks
iterables itself, so the same list nested one level inside a dict was already
masked -- only a top-level one was skipped.

The list is passed under the variable's key rather than anonymously: elements
have no key names of their own, so they follow the variable key's sensitivity,
and a list of ordinary values such as region names is not added to the global
pattern set. Dicts inside the list are still masked by their own key names.

* Tighten the comments around Variable masking dispatch

The rationale was spread across three sites saying the same thing; keep it at
the branch where the decision is made.
(cherry picked from commit b968192)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:task-sdk type:bug-fix Changelog: Bug Fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants