diff --git a/.changeset/README.md b/.changeset/README.md index 6c68425e59..423552ee75 100644 --- a/.changeset/README.md +++ b/.changeset/README.md @@ -26,7 +26,7 @@ Optional description with code examples. Migration instructions (breaking changes only). -**Affected components:** button, card +**Affected components:** Button, Card ``` **Required:** @@ -40,7 +40,7 @@ Migration instructions (breaking changes only). ```markdown Fixed button hover state -**Affected components:** button +**Affected components:** Button ``` ````markdown @@ -56,7 +56,7 @@ Update imports: ``` ```` -**Affected components:** table +**Affected components:** Table ``` diff --git a/.changeset/add-actions-registry-examples.md b/.changeset/add-actions-registry-examples.md new file mode 100644 index 0000000000..5174bcc68d --- /dev/null +++ b/.changeset/add-actions-registry-examples.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-plugin-api': minor +'@backstage/backend-defaults': patch +'@backstage/backend-test-utils': patch +--- + +Added support for typed `examples` on actions registered via the actions registry. Action authors can now provide examples with compile-time-checked `input` and `output` values that match their schema definitions. diff --git a/.changeset/angry-clouds-tell.md b/.changeset/angry-clouds-tell.md new file mode 100644 index 0000000000..a01306d84a --- /dev/null +++ b/.changeset/angry-clouds-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli-module-new': patch +--- + +Rename the legacy `frontend-plugin` to `frontend-plugin-legacy` diff --git a/.changeset/app-defaults-clarify-failures.md b/.changeset/app-defaults-clarify-failures.md new file mode 100644 index 0000000000..c6321a3a3a --- /dev/null +++ b/.changeset/app-defaults-clarify-failures.md @@ -0,0 +1,5 @@ +--- +'@backstage/app-defaults': patch +--- + +Added `FetchMiddlewares.clarifyFailures()` to the default fetch API middleware stack. diff --git a/.changeset/app-routes-redirect-config.md b/.changeset/app-routes-redirect-config.md new file mode 100644 index 0000000000..ce43e3c159 --- /dev/null +++ b/.changeset/app-routes-redirect-config.md @@ -0,0 +1,17 @@ +--- +'@backstage/plugin-app': patch +--- + +Added support for configuring URL redirects on the `app/routes` extension. Redirects can be configured through `app-config` as an array of `{from, to}` path pairs, which will cause navigation to the `from` path to be redirected to the `to` path. + +For example: + +```yaml +app: + extensions: + - app/routes: + config: + redirects: + - from: /old-path + to: /new-path +``` diff --git a/.changeset/auditor-zod-v4-refactor.md b/.changeset/auditor-zod-v4-refactor.md new file mode 100644 index 0000000000..c1ac7ce0aa --- /dev/null +++ b/.changeset/auditor-zod-v4-refactor.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-defaults': patch +--- + +Refactored auditor severity log level mappings to use `zod/v4` with schema-driven defaults and type inference. diff --git a/.changeset/auth-node-logout-result.md b/.changeset/auth-node-logout-result.md new file mode 100644 index 0000000000..9eaf842f14 --- /dev/null +++ b/.changeset/auth-node-logout-result.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-node': patch +--- + +Added `OAuthAuthenticatorLogoutResult` type. The `logout` method on `OAuthAuthenticator` can now optionally return `{ logoutUrl }` to trigger a browser redirect after sign-out. This allows providers like Auth0 to clear their session cookies by redirecting to their logout endpoint. diff --git a/.changeset/auth0-federated-logout.md b/.changeset/auth0-federated-logout.md new file mode 100644 index 0000000000..83dda17a71 --- /dev/null +++ b/.changeset/auth0-federated-logout.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-auth0-provider': minor +--- + +Added federated logout support. Set `federatedLogout: true` in the Auth0 provider config to clear both the Auth0 session and any upstream IdP session on sign-out. The authenticator returns a logout URL that redirects the browser to Auth0's `/v2/logout?federated` endpoint, ensuring users must fully re-authenticate after signing out. diff --git a/.changeset/azure-scm-events-layer.md b/.changeset/azure-scm-events-layer.md new file mode 100644 index 0000000000..22ca304f96 --- /dev/null +++ b/.changeset/azure-scm-events-layer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-azure': patch +--- + +Add Azure DevOps SCM event translation layer for instant catalog reprocessing. diff --git a/.changeset/bump-glob-rollup-security.md b/.changeset/bump-glob-rollup-security.md new file mode 100644 index 0000000000..1738169fd1 --- /dev/null +++ b/.changeset/bump-glob-rollup-security.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-catalog-backend': patch +'@backstage/cli-module-auth': patch +'@backstage/cli-module-build': patch +'@backstage/cli-module-test-jest': patch +'@backstage/cli': patch +'@backstage/ui': patch +'@backstage/repo-tools': patch +--- + +Bumped `glob` dependency from v7/v8/v11 to v13 to address security vulnerabilities in older versions. Bumped `rollup` from v4.27 to v4.59+ to fix a high severity path traversal vulnerability (GHSA-mw96-cpmx-2vgc). diff --git a/.changeset/catalog-exists-query-optimization.md b/.changeset/catalog-exists-query-optimization.md new file mode 100644 index 0000000000..e0eb2cbb31 --- /dev/null +++ b/.changeset/catalog-exists-query-optimization.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Improved catalog entity filter query performance by switching from `IN (subquery)` to `EXISTS (correlated subquery)` patterns. This enables PostgreSQL semi-join optimizations and fixes `NOT IN` NULL-semantics pitfalls by using `NOT EXISTS` instead. diff --git a/.changeset/catalog-graph-nfs-page.md b/.changeset/catalog-graph-nfs-page.md new file mode 100644 index 0000000000..fac437c641 --- /dev/null +++ b/.changeset/catalog-graph-nfs-page.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-graph': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/catalog-import-nfs-page.md b/.changeset/catalog-import-nfs-page.md new file mode 100644 index 0000000000..2944565205 --- /dev/null +++ b/.changeset/catalog-import-nfs-page.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-import': patch +--- + +Added `title` and `icon` to the new frontend system plugin definition. diff --git a/.changeset/catalog-nfs-page-header.md b/.changeset/catalog-nfs-page-header.md new file mode 100644 index 0000000000..7f94a28cc8 --- /dev/null +++ b/.changeset/catalog-nfs-page-header.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': patch +--- + +Exported the NFS variant of the catalog index page as `CatalogIndexPage` from the `./alpha` entry point, along with supporting types `CatalogIndexPageProps`, `CatalogTableRow`, and `CatalogTableColumnsFunc`. This allows adopters to use and customize the catalog index page within a `PageBlueprint` in the new frontend system. diff --git a/.changeset/catalog-search-table-sync.md b/.changeset/catalog-search-table-sync.md new file mode 100644 index 0000000000..3a3bcea96a --- /dev/null +++ b/.changeset/catalog-search-table-sync.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Reduced search table write churn during stitching by syncing only changed rows instead of doing a full delete and re-insert. On Postgres this uses a single writable CTE, on MySQL a temporary table merge with deadlock retry, and on SQLite the previous bulk replace. diff --git a/.changeset/chatty-cups-create.md b/.changeset/chatty-cups-create.md new file mode 100644 index 0000000000..0fa05b14f3 --- /dev/null +++ b/.changeset/chatty-cups-create.md @@ -0,0 +1,24 @@ +--- +'@backstage/ui': minor +--- + +**BREAKING**: The `Header` component's `tabs` prop now uses `HeaderNavTabItem[]` instead of `HeaderTab[]`. Tabs render as a `