74233 Commits

Author SHA1 Message Date
Patrik Oldsberg fa0593e6e5 plugin-catalog-import: add NFS page layout and plugin metadata
- Register title and icon on the new-frontend createFrontendPlugin export.
- Add NfsDefaultImportPage using @backstage/ui Header with shared grid body.
- Point the alpha PageBlueprint loader at the NFS variant.
- Depend on @backstage/ui and @remixicon/react.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 16:58:21 +01:00
Patrik Oldsberg 0e147e8e45 plugin-catalog-graph: nfs page variant and plugin title/icon
- Add title, icon, and NfsCatalogGraphPage to the new frontend plugin alpha entry
- Refactor catalog graph page with headerVariant for legacy vs Backstage UI header
- Export NfsCatalogGraphPage from the CatalogGraphPage module

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 16:58:21 +01:00
Stephanie Cao 309b7128c4 feat(scaffolder): create scaffolder mcp action to execute a template (#33124)
* create mcp action to execute a template

Signed-off-by: Stephanie <yangcao@redhat.com>

* include changeset

Signed-off-by: Stephanie <yangcao@redhat.com>

* address test errors and review comments from copilot

Signed-off-by: Stephanie <yangcao@redhat.com>

* address review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* add execute-template to mcp actions list

Signed-off-by: Stephanie <yangcao@redhat.com>

* fix: address review feedback for execute-template action

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: Stephanie <yangcao@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-25 16:30:49 +01:00
Peter Macdonald 1b8d4be5df reference analytics docs in prepping for ga and remove the dead links to ga from analytics plugin docs
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-25 13:56:48 +01:00
Peter Macdonald 5848bc40e8 add adoption to the golden paths sidebar items
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-25 13:35:03 +01:00
Peter Macdonald 2f88cef8f4 Merge branch 'master' into docs/golden-paths-prep-ga 2026-03-25 13:33:20 +01:00
Peter Macdonald 36d205a455 Merge pull request #33573 from Parsifal-M/docs/golden-paths-plugin-ownership
docs: golden paths plugin ownership
2026-03-25 13:18:18 +01:00
Patrik Oldsberg e7e2fb2a5a Merge pull request #33570 from backstage/rugvip/nfs-migration-skills
docs: add frontend system migration skills
2026-03-25 11:54:17 +01:00
Peter Macdonald c397a27d77 golden paths plugin ownership
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-25 11:08:48 +01:00
Patrik Oldsberg d031c9fe0f docs: fix missing import and replace deprecated HeaderPage with Header
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 10:52:48 +01:00
Peter Macdonald 65f3aa7c3d don't use comms use communication
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-25 10:34:33 +01:00
Peter Macdonald 1fcc30299d preparing for GA
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-25 10:27:46 +01:00
Jonathan Roebuck d0f055f949 feat(ui): add showPaginationLabel prop to TablePagination (#33552)
* feat(ui): add showPaginationLabel to type definitions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* feat(ui): wire showPaginationLabel through useTable and Table

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* feat(ui): conditionally render pagination label based on showPaginationLabel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* chore(ui): add changeset and update API reports for showPaginationLabel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* Update .changeset/show-pagination-label.md

Co-authored-by: Johan Persson <johanopersson@gmail.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* docs(ui): document showPaginationLabel prop in docs-ui

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* fix(ui): wrap component names in backticks in changeset

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* fix(ui): move pagination display options to inner useMemo dependency array

Move showPageSizeOptions, getLabel, and showPaginationLabel from the
outer useMemo dependency array to the inner pagination useMemo
dependency array so that changes to these options correctly trigger
a new pagination object reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>

* chore(ui): remove backticks from changeset

Signed-off-by: Johan Persson <johanopersson@gmail.com>

* Revert "chore(ui): remove backticks from changeset"

This reverts commit 9b7f8bb6e83c28587219b7734676b1c062661a8a.

Signed-off-by: Johan Persson <johanopersson@gmail.com>

---------

Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Johan Persson <johanopersson@gmail.com>
2026-03-25 09:21:55 +00:00
Patrik Oldsberg db7b6d1716 docs: refine skill descriptions
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 10:08:21 +01:00
Patrik Oldsberg fe6f4a03ab docs: add frontend system migration skills
Add three new skill documents for migrating to the new Backstage frontend system:

- App migration (old app-defaults to new frontend-defaults)
- Plugin dual-support (adding new system support while keeping old system working)
- Plugin full migration (completely moving to the new frontend system)

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-25 09:58:27 +01:00
Fredrik Adelöw b78d3ba114 Merge pull request #33564 from backstage/fix/translation-ref-ts6-depth
fix(frontend-plugin-api): fix FlattenedMessages type depth for TypeScript 6
2026-03-25 08:57:43 +01:00
backstage-goalie[bot] df6739a90f Merge pull request #33567 from backstage/renovate/eslint-plugin-testing-library-7.x-lockfile
chore(deps): update dependency eslint-plugin-testing-library to v7.16.1
2026-03-25 03:18:44 +00:00
renovate[bot] 125b890632 chore(deps): update dependency eslint-plugin-testing-library to v7.16.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 02:18:23 +00:00
backstage-goalie[bot] 7b846497a2 Merge pull request #33566 from backstage/renovate/dockerode-4.x-lockfile
chore(deps): update dependency dockerode to v4.0.10
2026-03-25 02:12:44 +00:00
renovate[bot] 41f8a50c91 chore(deps): update dependency dockerode to v4.0.10
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 01:33:03 +00:00
backstage-goalie[bot] 5254a36148 Merge pull request #33550 from backstage/renovate/google-cloud-cloud-sql-connector-1.x-lockfile
chore(deps): update dependency @google-cloud/cloud-sql-connector to v1.9.2
2026-03-25 01:23:24 +00:00
Kurt King 90aadc6499 Be more specific in metric descriptions
Signed-off-by: Kurt King <kurtaking@gmail.com>
2026-03-24 17:44:02 -06:00
Kurt King 088454063c unpuralize run
Signed-off-by: Kurt King <kurtaking@gmail.com>
2026-03-24 17:37:27 -06:00
Kurt King 61f754504b Add type to tracker
Signed-off-by: Kurt King <kurtaking@gmail.com>
2026-03-24 17:28:00 -06:00
Fredrik Adelöw 7a39b2c4ea fix: change unreachable branch to never in FlattenedMessages
The last branch of the conditional is unreachable since TMessages[TKey]
is constrained to string | AnyNestedMessages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-24 22:54:11 +01:00
Fredrik Adelöw ddc5247f67 fix(frontend-plugin-api): fix FlattenedMessages type depth for TypeScript 6
Restructure the FlattenedMessages conditional type to check
`TMessages[TKey] extends string` directly instead of using an
intermediate `infer TValue` pattern, which caused excessive type
instantiation depth in TypeScript 6.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-24 22:30:56 +01:00
Peter Macdonald bdd21b9f9c Merge pull request #33547 from Parsifal-M/docs/golden-path-permissions
docs: golden paths permissions
2026-03-24 22:11:36 +01:00
Ben Lambert 4559806b96 feat(actionsRegistry): Adding support for examples (#33551)
* feat(backend-plugin-api): add typed examples to actions registry

Signed-off-by: benjdlambert <ben@blam.sh>

* fix: address review feedback for actions registry examples

Signed-off-by: benjdlambert <ben@blam.sh>

* fix: remove empty examples from scaffolder action bridge

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: add changeset for scaffolder-backend

Signed-off-by: benjdlambert <ben@blam.sh>

* fix: update router test to match removed examples field

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-03-24 18:16:23 +01:00
Fredrik Adelöw f29d18c2fd Merge pull request #33414 from backstage/changeset-release/master
Version Packages (next)
2026-03-24 17:12:34 +01:00
aramissennyeydd f9c57344d7 docs: deployment golden path guide
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-03-24 16:33:57 +01:00
Peter Macdonald 6c22088daa updates based on feedback
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-24 16:13:35 +01:00
Peter Macdonald d65d6d6d50 updates based on style new style guide
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-24 16:10:35 +01:00
Peter Macdonald a8e111f9b5 Merge branch 'master' into docs/golden-path-permissions 2026-03-24 16:06:22 +01:00
github-actions[bot] c1b510cabb Version Packages (next) 2026-03-24 14:54:00 +00:00
Peter Macdonald e0209029d6 docs: update golden paths sustainable-plugin-development section (#33539)
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-24 15:47:41 +01:00
Aramis Sennyey 7f26ea88c5 docs: add documentation style guide for Backstage contributors (#33538)
* docs: add documentation style guide for Backstage contributors

Adapted from the Kubernetes documentation style guide, tailored
for the Backstage project with Backstage-specific terminology,
Docusaurus conventions, tone guidelines, and project word list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* docs: soften "we" guidance and link style guide from CONTRIBUTING.md

Relax the "avoid we" rule to allow "we" in tutorials and walkthroughs
where it means "you and I, working through this together." Also add
references to the style guide from CONTRIBUTING.md and AGENTS.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

* fix link checker

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* skip block

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* address feedback

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

---------

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-24 15:44:35 +01:00
renovate[bot] ed368c0cfc chore(deps): update dependency @google-cloud/cloud-sql-connector to v1.9.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 14:22:19 +00:00
renovate[bot] 7c99d4f302 fix(deps): update nextjs monorepo to v16.2.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 15:15:48 +01:00
Patrik Oldsberg 77ab7d570e core-compat-api: hide page header for compat-wrapped legacy pages
Legacy plugins already render their own headers, so the additional
PageLayout header from the PageBlueprint results in duplicate headers.
Pass noHeader: true in both convertLegacyPageExtension and
collectLegacyRoutes to suppress the outer header.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-24 06:57:41 -07:00
Peter Macdonald f34dc2a6f3 update golden paths permissions section
Signed-off-by: Peter Macdonald <peterm4c@pm.me>
2026-03-24 14:48:51 +01:00
Fredrik Adelöw 94a4037fcc Merge pull request #33481 from walsm232/fix/catalog-refresh-state-deadlock
fix(catalog): Fix catalog refresh_state deadlock when running multiple replicas
2026-03-24 14:21:18 +01:00
Fredrik Adelöw 7fc0daebd7 Merge pull request #33388 from Deepesh123455/fix/oauth-dom-nesting-warning
fix(core-components): resolve DOM nesting warning in OAuthRequestDialog
2026-03-24 14:20:08 +01:00
Johan Persson 3d67aebd35 fix(ui): add prefers-reduced-motion support to Tab indicators
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-24 09:32:54 +01:00
Johan Persson 8659f3331c feat(ui): replace Header tabs with nav-based grouped navigation
Replace the RA Tabs/TabList/Tab rendering in the Header component
with a nav-based approach that supports grouped dropdown items via
BUI Menu. Active state is consumer-controlled via a new activeTabId
prop. The indicator system follows the TabsIndicators CSS custom
property pattern for animated active/hover/focus states.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-24 09:32:54 +01:00
Kurt King 961e274548 refactor: use MetricsService
Signed-off-by: Kurt King <kurtaking@gmail.com>
2026-03-23 23:37:58 -06:00
Charles de Dreuille 6bfcd9967b Merge pull request #33504 from backstage/bui-pluginheader 2026-03-23 15:48:45 +00:00
Charles de Dreuille 03266f3013 Merge pull request #33524 from backstage/bui-menu-fix 2026-03-23 15:48:14 +00:00
Charles de Dreuille 441c4c86e8 Merge branch 'master' into bui-menu-fix 2026-03-23 15:25:23 +00:00
Charles de Dreuille f9fc8c2dd6 Merge branch 'master' into bui-pluginheader 2026-03-23 15:25:12 +00:00
Charles de Dreuille b5d08664d6 Replace div with Box
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-23 15:24:23 +00:00