Skip to content

[v3-4-test] Hide assets the caller may not read from the UI dependencies graph (#73008) - #75390

Merged
vatsrahul1001 merged 3 commits into
v3-4-testfrom
backport-edcd4a5-v3-4-test
Oct 23, 2026
Merged

vatsrahul1001 merged 3 commits into
v3-4-testfrom
backport-edcd4a5-v3-4-test

Conversation

@github-actions

Copy link
Copy Markdown
Contributor
  • Hide assets the caller may not read from the UI dependencies graph

The dependencies graph scoped its nodes by which Dags the caller may read,
but never by which assets. A caller who can read a Dag saw every asset that
Dag produces or consumes, name included, even when the auth manager scopes
that asset away from them; the data graph would also expand outward through
such an asset. Asset names commonly encode bucket, table or dataset names,
so this is the same class of gap the rest of the asset API closed.

  • Hide an unenriched asset leaf from the data dependencies graph

An asset_expression leaf whose id the Dag processor has not filled in yet
cannot be authorized, so it must be hidden like any other asset the caller
may not read. The data graph instead parsed the id out of the node, which
failed the request outright rather than dropping the node.
(cherry picked from commit edcd4a5)

Co-authored-by: Henry Chen [email protected]

…ies graph (#73008)

* Hide assets the caller may not read from the UI dependencies graph

The dependencies graph scoped its nodes by which Dags the caller may read,
but never by which assets. A caller who can read a Dag saw every asset that
Dag produces or consumes, name included, even when the auth manager scopes
that asset away from them; the data graph would also expand outward through
such an asset. Asset names commonly encode bucket, table or dataset names,
so this is the same class of gap the rest of the asset API closed.

* Hide an unenriched asset leaf from the data dependencies graph

An asset_expression leaf whose id the Dag processor has not filled in yet
cannot be authorized, so it must be hidden like any other asset the caller
may not read. The data graph instead parsed the id out of the node, which
failed the request outright rather than dropping the node.
(cherry picked from commit edcd4a5)

Co-authored-by: Henry Chen <[email protected]>
The #73008 cherry-pick reintroduced patches of
BaseAuthManager.get_authorized_assets, but SimpleAuthManager overrides
that method, so patching the base class is a no-op and the readable-asset
filtering is never exercised. v3-4-test already carries the
check-auth-manager-mock-targets guard (via #75140), which also rejects
the base-class target. Patch SimpleAuthManager.get_authorized_assets
instead, matching main.
@vatsrahul1001
vatsrahul1001 merged commit f4bf6e1 into v3-4-test Oct 23, 2026
73 checks passed
@vatsrahul1001
vatsrahul1001 deleted the backport-edcd4a5-v3-4-test branch October 23, 2026 10:12
@github-actions github-actions Bot added this to the Airflow 3.4.1 milestone Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor Author

Hi maintainer, this PR was merged without a milestone set.
We've automatically set the milestone to Airflow 3.4.1 based on: merged to version branch
If this milestone is not correct, please update it to the appropriate milestone.

This comment was generated by Milestone Tag Assistant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:API Airflow's REST/HTTP API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants