Skip to content

Add Asset Tab plugin#69986

Merged
bbovenzi merged 2 commits into
apache:mainfrom
astronomer:claude/asset-level-plugins-b50c96
Jul 20, 2026
Merged

Add Asset Tab plugin#69986
bbovenzi merged 2 commits into
apache:mainfrom
astronomer:claude/asset-level-plugins-b50c96

Conversation

@bbovenzi

Copy link
Copy Markdown
Contributor

Add "asset" as a destination for UI Plugins. This will add a new tab to the Asset Details page.

An asset plugin can pass either an asset_id or the asset.uri as optional parameters to the iframe or react plugin.

Screenshot 2026-07-16 at 3 43 13 PM
Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)
    Claude Opus 4.8

  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {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.

@bbovenzi

Copy link
Copy Markdown
Contributor Author

cc: @gopidesupavan

@gopidesupavan

Copy link
Copy Markdown
Member

cc: @gopidesupavan

cool thanks @bbovenzi

@pierrejeambrun pierrejeambrun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment thread airflow-core/tests/unit/api_fastapi/core_api/datamodels/test_plugins.py Outdated
@bbovenzi
bbovenzi merged commit 4e01f40 into apache:main Jul 20, 2026
156 checks passed
@bbovenzi
bbovenzi deleted the claude/asset-level-plugins-b50c96 branch July 20, 2026 17:00
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed to create: airflow-ctl/v0-1-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
airflow-ctl/v0-1-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 4e01f40 airflow-ctl/v0-1-test

This should apply the commit to the airflow-ctl/v0-1-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

dheerajturaga added a commit to dheerajturaga/airflow that referenced this pull request Jul 21, 2026
…ugins

Follows the pattern established in apache#69986, which enriched the props passed
to React app plugins beyond bare route params by resolving assetUri from the
UI's TanStack Query cache. This extends that pattern to the full context
objects: React plugins now receive dag, dagRun, taskInstance, and asset as
typed props alongside the existing route-id strings.

Each object is resolved from the query cache and gated on the route params
it depends on, so it is served from the cache the parent details page
already populated (no extra request) where present, and is undefined on
routes or destinations that lack those ids (e.g. nav, base, dashboard).
dabla pushed a commit to dabla/airflow that referenced this pull request Jul 21, 2026
* Add Asset Tab plugin

* Delete test_plugins.py
dheerajturaga added a commit to dheerajturaga/airflow that referenced this pull request Jul 21, 2026
…ugins

Follows the pattern established in apache#69986, which enriched the props passed
to React app plugins beyond bare route params by resolving assetUri from the
UI's TanStack Query cache. This extends that pattern to the full context
objects: React plugins now receive dag, dagRun, taskInstance, and asset as
typed props alongside the existing route-id strings.

Each object is resolved from the query cache and gated on the route params
it depends on, so it is served from the cache the parent details page
already populated (no extra request) where present, and is undefined on
routes or destinations that lack those ids (e.g. nav, base, dashboard).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:airflow-ctl area:API Airflow's REST/HTTP API area:plugins area:UI Related to UI/UX. For Frontend Developers. kind:documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants