Commit Graph

72986 Commits

Author SHA1 Message Date
Marat Dyatko 09e17c8a65 test(org): add queryParams coverage for OwnershipCard useGetEntities
The existing tests never exercised `getQueryParams` because the mock
catalog API always returned empty items. These new tests verify that the
generated query parameters include correctly humanized owner entity refs,
handle multiple owners, and group entities by kind and type.

Made-with: Cursor
Signed-off-by: Marat Dyatko <maratd@spotify.com>
Made-with: Cursor
2026-04-09 10:25:33 +02:00
Fredrik Adelöw aba2f0a980 Merge pull request #33386 from mvanhorn/feat/catalog-graph-presentation-api
feat(catalog-graph): use Catalog Presentation API instead of humanizeEntityRef
2026-04-09 09:16:51 +02:00
Fredrik Adelöw 48b3883497 Merge pull request #33814 from backstage/dependabot/npm_and_yarn/fast-xml-parser-4.5.6 2026-04-09 06:26:59 +02:00
dependabot[bot] 2fdf902bc6 chore(deps): bump fast-xml-parser from 4.5.4 to 4.5.6
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.5.4 to 4.5.6.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.5.4...v4.5.6)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 4.5.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-09 02:30:02 +00:00
backstage-goalie[bot] 3848c82f64 Merge pull request #33813 from backstage/renovate/npm-nodemailer-vulnerability
chore(deps): update dependency nodemailer to v8.0.5 [security]
2026-04-08 23:54:11 +00:00
Patrik Oldsberg 814f61a526 Merge pull request #33767 from EoinTrial/docs/i18n-available-languages
docs: document availableLanguages and defaultLanguage for i18n in new frontend system
2026-04-09 01:30:41 +02:00
renovate[bot] 7f8cf514a2 chore(deps): update dependency nodemailer to v8.0.5 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 23:16:35 +00:00
Patrik Oldsberg 178f58687d Merge pull request #33802 from davidfestal/fix-bundle-cli-error-in-ci
fix(cli-module-build): ignore MF version warning for secondary entry points
2026-04-09 01:08:23 +02:00
Matt Van Horn 8a49e11936 refactor(catalog-graph): migrate to entityPresentationSnapshot helper
Replace direct entityPresentationApiRef usage with the new
entityPresentationSnapshot helper from #33576. This fixes the type
safety concern where CompoundEntityRef was passed to forEntity()
which only accepts Entity | string.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
2026-04-08 10:55:30 -07:00
Patrik Oldsberg 9a9a2fe92a Merge pull request #33807 from backstage/rugvip/fix-embedded-db-pid-file-timing
Fix embedded-postgres PID file written before initialization
2026-04-08 19:16:19 +02:00
Patrik Oldsberg f1b493f6bd Fix embedded-postgres PID file written before initialization
The PID file was written to the database directory before
`pg.initialise()`, which prevented initialization from succeeding.
Moved the PID file write to just after initialization but before
starting the database.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-08 17:04:36 +02:00
David Festal f52a296a53 fix(cli-module-build): ignore MF version warning for secondary entry points
Signed-off-by: David Festal <dfestal@redhat.com>
2026-04-08 14:01:43 +02:00
Patrik Oldsberg 5b1ba4ee3e Merge pull request #33718 from UsainBloot/auth0-cache-profile
auth0: cache profile API responses during token refresh
2026-04-08 11:39:21 +02:00
Jonathan Roebuck f73876a472 feat(ui): export TableBodySkeleton as public API (#33731)
* feat(ui): export TableBodySkeleton as public API

Export the TableBodySkeleton component so it can be used independently
of the built-in Table component. Relax the column type constraint from
ColumnConfig<T> to { id: string } for compatibility with custom column
types.

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

* fix(ui): use direct index instead of parsing skeleton item ID

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

* Update .changeset/export-table-body-skeleton.md

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

* docs(ui): add TableBodySkeleton to table primitives documentation

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

---------

Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Johan Persson <johanopersson@gmail.com>
2026-04-08 11:21:17 +02:00
backstage-goalie[bot] 1e97694b15 Merge pull request #33795 from backstage/renovate/minimatch-10.x-lockfile
chore(deps): update dependency minimatch to v10.2.5
2026-04-08 02:34:34 +00:00
renovate[bot] 495e73b902 chore(deps): update dependency minimatch to v10.2.5
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 01:03:04 +00:00
backstage-goalie[bot] 23b65ec7dd Merge pull request #33791 from backstage/renovate/express-rate-limit-8.x-lockfile
chore(deps): update dependency express-rate-limit to v8.3.2
2026-04-08 00:56:24 +00:00
renovate[bot] 7162f2aa93 chore(deps): update dependency express-rate-limit to v8.3.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-08 00:12:13 +00:00
backstage-goalie[bot] 7895eed228 Merge pull request #33781 from backstage/renovate/esbuild-loader-4.x-lockfile
chore(deps): update dependency esbuild-loader to v4.4.3
2026-04-08 00:06:35 +00:00
Patrik Oldsberg 1e8899a65f Merge pull request #33705 from schultzp2020/remove-jsx-codemod-guide
docs: replace JSX codemod tutorial with link to codemod.com
2026-04-07 20:33:47 +02:00
Patrik Oldsberg ffdbf66edb Merge pull request #33711 from backstage/changeset-release/master
Version Packages (next)
2026-04-07 18:23:35 +02:00
github-actions[bot] 6c10d88c13 Version Packages (next) 2026-04-07 15:30:58 +00:00
Johan Persson b4a187502b feat(ui): add automatic active tab detection to Header (#33783)
* feat(ui): widen activeTabId type to accept null

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

* feat(ui): add automatic active tab detection to HeaderNav

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

* feat(ui): update Header stories to demonstrate auto-detection and explicit activeTabId

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

* refactor(ui): remove manual useActiveTabId from PluginHeaderAndHeader recipe

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

* docs(ui): update Header docs for activeTabId auto-detection

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

* chore(ui): add API report and changeset for activeTabId auto-detection

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

* fix(ui): resolve relative hrefs in HeaderNav tabs

Add resolveHref to HeaderNavItemDefinition so tab links with relative
hrefs are resolved against the router context before rendering.

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

* chore(ui): add breaking change changeset for HeaderNav resolveHref

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

---------

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-07 17:22:01 +02:00
Johan Persson fa232da324 refactor(catalog-react): migrate InspectEntityDialog from MUI to BUI
Replace Material UI components with Backstage UI (BUI) equivalents
across the InspectEntityDialog and all its tab pages (Overview,
Ancestry, Colocated, JSON, YAML).

- Dialog shell uses BUI Dialog, DialogHeader, DialogBody, Tabs
- Horizontal tab bar replaces vertical MUI tabs
- Card sections use BUI Card, CardHeader, CardBody
- Key-value pairs rendered as semantic dl/dt/dd elements
- Copy buttons use BUI ButtonIcon with remixicon icons
- Help links use BUI ButtonLink
- Alerts use BUI Alert
- Tags use BUI TagGroup/Tag
- Accessible live region for copy confirmation
- Proper heading hierarchy (h2 for tab pages, h3 for cards, h4 for sections)
- Added OverviewPage tests for identity rendering, link detection, and tags

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-07 17:20:34 +02:00
Matt Van Horn 416ad45fdd feat(catalog-graph): use Catalog Presentation API instead of humanizeEntityRef
Replace humanizeEntityRef with entityPresentationApiRef in CatalogGraphCard
and CatalogGraphPage for consistent entity display via the Catalog
Presentation API. Contributes to #20955.

Signed-off-by: Matt Van Horn <matt@osc.dev>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
2026-04-07 07:40:43 -07:00
Patrik Oldsberg 8632502abe Merge pull request #33436 from jonkoops/remove-legacy-proxy-docs
docs: remove legacy corporate proxy documentation
2026-04-07 16:30:05 +02:00
Patrik Oldsberg 894cd94312 Merge pull request #33699 from drodil/notifications_bui
feat(notifications): migrate to backstage ui
2026-04-07 16:28:07 +02:00
Patrik Oldsberg 55797b8cf4 Merge pull request #33748 from backstage/freben/permissions-cleanup-step-3-wip
Remove deprecated alpha exports from @backstage/plugin-catalog-node
2026-04-07 15:08:51 +02:00
Jack Palmer dfde6becee fix(auth0): skip profile cache when id_token has no sub claim
When the JWT id_token lacks a sub claim, the cache key would be
auth0-profile:undefined, causing all users without a sub to share
the same cached profile. Now skips caching entirely when sub is
missing and fetches the profile directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jack Palmer <jackpalmer@spotify.com>
2026-04-07 14:07:09 +01:00
Jack Palmer 44a42bf8e7 fix(auth0): use jose to decode id_token sub claim for cache key
Replace manual base64 JWT decoding with jose's decodeJwt for
correctness and consistency with other auth modules. Add jose
as a dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jack Palmer <jackpalmer@spotify.com>
2026-04-07 14:06:59 +01:00
Jonathan Roebuck ca3ef847f5 fix(auth0): use stable sub claim as cache key instead of refresh token
Auth0 rotates refresh tokens on each use, causing cache misses every
time. Use the user's sub claim from the ID token as the cache key
instead, which is stable per user.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>
2026-04-07 14:05:41 +01:00
Jack Palmer b3bbd42f91 auth0: cache profile API responses during token refresh
Every page refresh triggers the auth0 authenticator to fetch the user
profile from Auth0's /userinfo API. Auth0 enforces strict rate limits on
this endpoint, causing failures at scale.

Add a createAuth0Authenticator factory that accepts an optional
CacheService to cache profile responses with a 1-minute TTL. The module
now uses the cached variant by default. The existing auth0Authenticator
export remains available for use without caching.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jack Palmer <jackpalmer@spotify.com>
2026-04-07 14:05:41 +01:00
Johan Persson 386972f871 fix(ui): hide Tabs active indicator when no tab matches route
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-07 15:05:23 +02:00
Fredrik Adelöw 587981973c Merge pull request #33576 from backstage/maratd/replace-humanize-entity-ref
Replace deprecated humanizeEntityRef with Catalog Presentation API
2026-04-07 14:28:39 +02:00
Patrik Oldsberg 972edbc0eb Merge pull request #33747 from backstage/freben/migrate-techdocs-from-alpha-catalog-service-ref
Migrate techdocs plugins from alpha to stable catalogServiceRef
2026-04-07 13:54:08 +02:00
Patrik Oldsberg 43627fde49 Merge pull request #33775 from yuhanwwu/master
add incident.io plugin to the marketplace
2026-04-07 13:44:11 +02:00
Fredrik Adelöw 7a031965b1 Remove deprecated alpha exports from @backstage/plugin-catalog-node
Removes the long-deprecated re-exports from the /alpha entry point that
were only kept for backwards compatibility:

- catalogServiceRef (the CatalogApi-based legacy one)
- CatalogLocationsExtensionPoint / catalogLocationsExtensionPoint
- CatalogProcessingExtensionPoint / catalogProcessingExtensionPoint
- CatalogAnalysisExtensionPoint / catalogAnalysisExtensionPoint

All of these have non-alpha equivalents that should be used directly.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-07 13:20:02 +02:00
Fredrik Adelöw 64663ede75 Merge pull request #33773 from koalaty-code/fix-mcp-actions-middleware
fix(backend-defaults): fixes actions registry http middleware conflicts
2026-04-07 13:02:57 +02:00
Fredrik Adelöw 5917638dcd Merge pull request #33753 from backstage/freben/locationlocation
catalog-backend: persist location_entity_ref in locations table
2026-04-07 12:59:38 +02:00
Marat Dyatko b32ab39670 Fix unsafe type casts via shared entityPresentationSnapshot utility
Extract entityPresentationSnapshot helper to eliminate unsafe `as Entity`
casts when passing CompoundEntityRef to EntityPresentationApi.forEntity(),
which only accepts Entity | string. The helper safely discriminates input
types and stringifies CompoundEntityRef before calling the API.

- Add entityPresentationSnapshot as a public export from catalog-react
- Remove duplicated getEntityTitle/getTitle helpers across 5 files
- Fix useAsync dependency array in TemplateFormPreviewer
- Update TSDoc across all presentation API surfaces to reference the
  new helper
- Update entity-presentation.md docs with usage guidance and migration
  table

Made-with: Cursor
Signed-off-by: Marat Dyatko <maratd@spotify.com>
2026-04-07 12:41:29 +02:00
Patrik Oldsberg 9718e62c2d Merge pull request #33667 from backstage/docs-features-new-frontend-migration
docs: migrate feature documentation to new frontend system as primary content
2026-04-07 12:01:07 +02:00
Patrik Oldsberg adf228cb16 Merge pull request #33720 from backstage/rugvip/add-to-error-utility
errors: add `toError` utility and migrate usages
2026-04-07 12:00:01 +02:00
Patrik Oldsberg a07127d4ba Merge pull request #33774 from backstage/blam/pathcy
Add some patches for release
2026-04-07 11:25:12 +02:00
deepthi-28 aa47a370eb Add CheckboxGroup story and initial implementation (#33051)
* Add CheckboxGroup story and initial implementation

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>

* Add CheckboxGroup implementation and docs coverage

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>

* update api-reports

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>

* fix: add more story variations, docs page, and fix JSDoc comments

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>

* fix: address review feedback for CheckboxGroup component

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>

---------

Signed-off-by: Deepthi Ajith <deepthi.ajith@infosys.com>
2026-04-07 10:58:29 +02:00
Yuhan Wu 5734a25545 format
Signed-off-by: Yuhan Wu <yuhanwu@DN66YYQWHX.local>
2026-04-07 09:51:35 +01:00
Yuhan Wu f132217505 run prettier and add status
Signed-off-by: Yuhan Wu <yuhanwu@DN66YYQWHX.local>
2026-04-07 09:19:35 +01:00
Yuhan Wu 1b5afabb12 add incident.io plugin to the marketplace
Signed-off-by: Yuhan Wu <yuhanwu@DN66YYQWHX.local>
2026-04-07 09:19:35 +01:00
renovate[bot] faccb8b74e chore(deps): update dependency esbuild-loader to v4.4.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-06 23:34:55 +00:00
backstage-goalie[bot] 38950237e3 Merge pull request #33780 from backstage/renovate/rspack-monorepo
chore(deps): update dependency @rspack/core to v1.7.11
2026-04-06 23:29:28 +00:00
renovate[bot] d2a724010c chore(deps): update dependency @rspack/core to v1.7.11
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-06 22:42:07 +00:00