Merge branch 'master' into runtime-module-federation-enablement

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2026-02-12 23:46:00 +01:00
1674 changed files with 91852 additions and 34676 deletions
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/ui': minor
---
**BREAKING**: Alert no longer accepts a `surface` prop
The Alert component's background is now driven entirely by its `status` prop. The `surface` prop has been removed.
```diff
- <Alert surface="1" status="info" />
+ <Alert status="info" />
```
**Affected components:** Alert
+30
View File
@@ -0,0 +1,30 @@
---
'@backstage/ui': minor
---
**BREAKING**: Removed gray scale tokens and renamed background surface tokens to neutral tokens
The `--bui-gray-1` through `--bui-gray-8` tokens have been removed. The `--bui-bg-surface-*` and `--bui-bg-neutral-on-surface-*` tokens have been replaced by a unified `--bui-bg-neutral-*` scale.
**Migration:**
Replace surface tokens directly:
```diff
- background: var(--bui-bg-surface-0);
+ background: var(--bui-bg-neutral-0);
```
Replace on-surface tokens shifted by +1:
```diff
- background: var(--bui-bg-neutral-on-surface-0);
+ background: var(--bui-bg-neutral-1);
```
Replace gray tokens 1-4 with neutral equivalents (`--bui-gray-5` through `--bui-gray-8` have no direct replacement):
```diff
- background: var(--bui-gray-1);
+ background: var(--bui-bg-neutral-1);
```
@@ -0,0 +1,5 @@
---
'@backstage/frontend-defaults': minor
---
**BREAKING**: The `API_FACTORY_CONFLICT` warning is now treated as an error and will prevent the app from starting.
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': minor
---
**BREAKING**: Updated the behavior of the new API override logic to reject the override and block app startup instead of just logging a deprecation warning.
@@ -1,5 +0,0 @@
---
'@backstage/frontend-defaults': patch
---
The `API_FACTORY_CONFLICT` error is now treated as a warning and will not prevent the app from starting.
@@ -1,5 +0,0 @@
---
'@backstage/frontend-app-api': patch
---
Updated the behavior of the new API override logic to log a deprecation warning instead of rejecting the override and blocking app startup, as was originally intended.
+41
View File
@@ -0,0 +1,41 @@
---
'@backstage/frontend-test-utils': patch
---
Added an `apis` option to `createExtensionTester`, `renderInTestApp`, and `renderTestApp` to override APIs when testing extensions. Use the `mockApis` helpers to create mock implementations:
```typescript
import { identityApiRef } from '@backstage/frontend-plugin-api';
import { mockApis } from '@backstage/frontend-test-utils';
// Override APIs in createExtensionTester
const tester = createExtensionTester(myExtension, {
apis: [
[
identityApiRef,
mockApis.identity({ userEntityRef: 'user:default/guest' }),
],
],
});
// Override APIs in renderInTestApp
renderInTestApp(<MyComponent />, {
apis: [
[
identityApiRef,
mockApis.identity({ userEntityRef: 'user:default/guest' }),
],
],
});
// Override APIs in renderTestApp
renderTestApp({
extensions: [myExtension],
apis: [
[
identityApiRef,
mockApis.identity({ userEntityRef: 'user:default/guest' }),
],
],
});
```
@@ -0,0 +1,5 @@
---
'@backstage/backend-app-api': patch
---
Fixed memory leak by properly cleaning up process event listeners on backend shutdown.
@@ -0,0 +1,5 @@
---
'@backstage/backend-test-utils': minor
---
Added `createServiceMock`, a public utility for creating `ServiceMock` instances for custom service refs. This allows plugin authors to define mock creators for their own services following the same pattern as the built-in `mockServices` mocks.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': minor
---
**BREAKING**: Removed the `TestApiRegistry` class, use `TestApiProvider` directly instead, storing reused APIs in a variable, e.g. `const apis = [...] as const`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Allow setting optional description on group creation
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-auth0-provider': patch
---
Add support for organizational invites in auth0 strategy
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/integration': patch
'@backstage/plugin-catalog-backend-module-azure': patch
---
Added support for `{org}.visualstudio.com` domains used by Azure DevOps
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-api-docs': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-org': patch
---
Added `@backstage/frontend-test-utils` dev dependency.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-node': patch
---
Updated `catalogServiceMock.mock` to use `createServiceMock` from `@backstage/backend-test-utils`, replacing the internal copy of `simpleMock`. Added `@backstage/backend-test-utils` as an optional peer dependency.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
The `catalogApiMock` test utility now returns a `MockWithApiFactory`, allowing it to be passed directly to test utilities like `renderTestApp` and `TestApiProvider` without needing the `[catalogApiRef, catalogApiMock()]` tuple.
+94
View File
@@ -0,0 +1,94 @@
---
'@backstage/ui': minor
---
**BREAKING**: Replaced `Surface` / `onSurface` system with new provider/consumer background system
The old `Surface` type (`'0'``'3'`, `'auto'`) and its associated props (`surface`, `onSurface`) have been replaced by a provider/consumer `bg` architecture.
**Types:**
- `ContainerBg``'neutral-1'` | `'neutral-2'` | `'neutral-3'` | `'danger'` | `'warning'` | `'success'`
- `ProviderBg``ContainerBg | 'neutral-auto'`
Consumer components (e.g. Button) inherit the parent's `bg` via `data-on-bg`, and CSS handles the visual step-up. See "Neutral level capping" below for details on how levels are bounded.
**Hooks:**
- `useBgProvider(bg?)` — for provider components. Returns `{ bg: undefined }` when no `bg` is given (transparent). Supports `'neutral-auto'` to auto-increment from the parent context.
- `useBgConsumer()` — for consumer components. Returns the parent container's `bg` unchanged.
**Component roles:**
- **Provider-only** (Box, Flex, Grid): set `data-bg`, wrap children in `BgProvider`. **Transparent by default** — they do _not_ auto-increment; pass `bg="neutral-auto"` explicitly if you want automatic neutral stepping.
- **Consumer-only** (Button, ButtonIcon, ButtonLink): set `data-on-bg`, inherit the parent container's `bg` unchanged.
- **Provider + Consumer** (Card): sets both `data-bg` and `data-on-bg`, wraps children. Card passes `bg="neutral-auto"` to its inner Box, so it auto-increments from the parent context.
**Neutral level capping:**
Provider components cap at `neutral-3`. There is no `neutral-4` prop value. The `neutral-4` level exists only in consumer component CSS — for example, a Button sitting on a `neutral-3` surface uses `neutral-4` tokens internally via `data-on-bg`.
**Migration:**
Rename the `surface` prop to `bg` on provider components and update values:
```diff
- <Box surface="1">
+ <Box bg="neutral-1">
- <Card surface="2">
+ <Card bg="neutral-2">
- <Flex surface="0">
+ <Flex bg="neutral-1">
- <Grid.Root surface="1">
+ <Grid.Root bg="neutral-1">
```
Remove `onSurface` from consumer components — they now always inherit from the parent container:
```diff
- <Button onSurface="1" variant="secondary">
+ <Button variant="secondary">
- <ButtonIcon onSurface="2" variant="secondary" />
+ <ButtonIcon variant="secondary" />
- <ToggleButton onSurface="1">
+ <ToggleButton>
```
Update type imports:
```diff
- import type { Surface, LeafSurfaceProps, ContainerSurfaceProps } from '@backstage/ui';
+ import type { ContainerBg, ProviderBg } from '@backstage/ui';
```
Replace hook usage in custom components:
```diff
- import { useSurface, SurfaceProvider } from '@backstage/ui';
+ import { useBgProvider, useBgConsumer, BgProvider } from '@backstage/ui';
- const { surface } = useSurface({ surface: props.surface });
+ const { bg } = useBgProvider(props.bg);
- const { surface } = useSurface({ onSurface: props.onSurface });
+ const { bg } = useBgConsumer();
```
Update CSS selectors targeting surface data attributes:
```diff
- [data-surface='1'] { ... }
+ [data-bg='neutral-1'] { ... }
- [data-on-surface='1'] { ... }
+ [data-on-bg='neutral-1'] { ... }
```
Note: Provider components use `data-bg` (values: `neutral-1` through `neutral-3`, plus intent values). Consumer components use `data-on-bg`, which reflects the parent container's `bg` directly. The `neutral-4` level never appears as a prop or `data-bg` value — it is used only in consumer CSS.
**Affected components:** Box, Button, ButtonIcon, ButtonLink, ToggleButton, Card, Flex, Grid
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Updated to include the missing core plugins in the template used with the `--next` flag. Also updated `react-router*` versions and added Jest 30-related dependencies. Finally, moved the order of `@playwright/test` so it won't trigger a file change during the creation process.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/cli': patch
---
Added support for CSS exports in package builds. When a package declares a CSS file in its `exports` field (e.g., `"./styles.css": "./src/styles.css"`), the CLI will automatically bundle it during `backstage-cli package build`, resolving any `@import` statements. The export path is rewritten from `src/` to `dist/` at publish time.
Fixed `backstage-cli repo fix` to not add `typesVersions` entries for non-script exports like CSS files.
+15
View File
@@ -0,0 +1,15 @@
---
'@backstage/e2e-test-utils': patch
---
Added optional `channel` option to `generateProjects()` to allow customizing the Playwright browser channel for testing against different browsers variants. When not provided, the function defaults to 'chrome' to maintain backward compatibility.
Example usage:
```ts
import { generateProjects } from '@backstage/e2e-test-utils';
export default defineConfig({
projects: generateProjects({ channel: 'msedge' }),
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': minor
---
Migrated `UnregisterEntityDialog` from Material UI to Backstage UI components.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Changed `gitlab:group:ensureExists` action to use `Groups.show` API instead of `Groups.search` for checking if a group path exists. This is more efficient as it directly retrieves the group by path rather than searching and filtering results.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Updated the browser tab title on the template wizard page to display the specific template title instead of the generic "Create a new component" text.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend-module-elasticsearch': minor
---
Added `elasticsearchAuthExtensionPoint` to enable dynamic authentication mechanisms such as bearer tokens with automatic rotation.
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/plugin-catalog': patch
---
Add missing translation entries for catalog UI text.
This change adds translation keys and updates relevant UI components to use the correct localized labels and text in the catalog plugin. It ensures that catalog screens such as entity layout, tabs, search result items, table labels, and other UI elements correctly reference the i18n system for translation.
No functional behavior is changed aside from the improved internationalization support.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': patch
---
Added `snapshot()` method to `ExtensionTester`, which returns a tree-shaped representation of the resolved extension hierarchy. Convenient to use with `toMatchInlineSnapshot()`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-graph': patch
---
Fix large icon rendering in catalog graph nodes
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Removed `/alpha` from `scaffolderActionsExtensionPoint` import
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
Fixed vertical spacing between tags in the catalog table.
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Fixed nested Accordion icon state issue where the inner accordion's arrow icon would incorrectly show as expanded when only the outer accordion was expanded. The CSS selector now uses a direct parent selector to ensure the icon only responds to its own accordion's expanded state.
Affected components: Accordion
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Fixed CSS Module syntax to comply with Next.js 16 Turbopack validation by flattening nested dark theme selectors.
**Affected components:** Popover, Tooltip
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend-module-elasticsearch': patch
---
Fixed bulk indexing to refresh only the target index instead of all indexes, improving performance in multi-index deployments.
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': patch
---
Fixed memory leak caused by duplicate `AppThemeSelector` instances and missing cleanup in `AppThemeSelector` and `AppLanguageSelector`. Added `dispose()` method to both selectors for proper resource cleanup.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Added `destructive` prop to Button for dangerous actions like delete or remove. Works with all variants (primary, secondary, tertiary).
**Affected components:** Button
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': minor
---
Added `MockAlertApi` and `MockFeatureFlagsApi` implementations to the `mockApis` namespace. The mock implementations include useful testing methods like `clearAlerts()`, `waitForAlert()`, `getState()`, `setState()`, and `clearState()` for better test ergonomics.
@@ -0,0 +1,21 @@
---
'@backstage/frontend-test-utils': minor
---
**BREAKING**: The `mockApis` namespace is no longer a re-export from `@backstage/test-utils`. It's now a standalone namespace with mock implementations of most core APIs. Mock API instances can be passed directly to `TestApiProvider`, `renderInTestApp`, and `renderTestApp` without needing `[apiRef, impl]` tuples. As part of this change, the `.factory()` method on some mocks has been removed, since it's now redundant.
```tsx
// Before
import { mockApis } from '@backstage/frontend-test-utils';
renderInTestApp(<MyComponent />, {
apis: [[identityApiRef, mockApis.identity()]],
});
// After - mock APIs can be passed directly
renderInTestApp(<MyComponent />, {
apis: [mockApis.identity()],
});
```
This change also adds `createApiMock`, a public utility for creating mock API factories, intended for plugin authors to create their own `.mock()` variants.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': minor
---
Added experimental support for refresh tokens via the `auth.experimentalRefreshToken.enabled` configuration option. When enabled, clients can request the `offline_access` scope to receive refresh tokens that can be used to obtain new access tokens without re-authentication.
+16
View File
@@ -0,0 +1,16 @@
---
'@backstage/plugin-techdocs': minor
---
Add two config values to the `page:techdocs/reader` extension that configure default layout, `withoutSearch` and `withoutHeader`. Default are unchanged to `false`.
E.g. to disable the search and header on the Techdocs Reader Page:
```yaml
app:
extensions:
- page:techdocs/reader:
config:
withoutSearch: true
withoutHeader: true
```
+11
View File
@@ -0,0 +1,11 @@
---
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-org': patch
---
Adjusted to use the new `@backstage/filter-predicates` types for predicate expressions.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/ui': patch
---
Fixed `useDefinition` hook adding literal "undefined" class name when no className prop was passed.
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-kubernetes-common': patch
'@backstage/plugin-kubernetes-react': patch
'@backstage/plugin-kubernetes-node': patch
---
Add PersistentVolume and PersistentVolumeClaims Rendering
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/theme': patch
---
add square shape
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Allow `ref` as a prop on the `Tag` component
Affected components: Tag
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/ui': patch
---
Cleaned up `useDefinition` `ownProps` types to remove never-typed ghost properties from autocomplete.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
fixed bug in `UserListPicker` by getting the `kindParamater` from the `filters` rather than from the `queryParameters`
@@ -0,0 +1,5 @@
---
'@backstage/catalog-client': patch
---
Improved the `InMemoryCatalogClient` test utility to support ordering, pagination, full-text search, and field projection for entity query methods. Also fixed `getEntityFacets` to correctly handle multi-valued fields.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': minor
---
The AzureUrl class in the @backstage/integration package is now able to process BOTH git branches and git tags. Initially this class only processed git branches and threw an error when non-branch Azure URLs were passed in.
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/plugin-catalog-react': minor
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-catalog': minor
---
Add the ability to show icons for the tabs on the entity page (new frontend)
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/ui': patch
---
Allow data to be passed directly to the `useTable` hook using the property `data` instead of `getData()` for mode `"complete"`.
This simplifies usage as data changes, rather than having to perform a `useEffect` when data changes, and then reloading the data. It also happens immediately, so stale data won't remain until a rerender (with an internal async state change), so less flickering.
Affected components: Table
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend-module-pg': patch
---
Return `numberOfResults` count with search query responses
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Fixed changing columns after first render from crashing. It now renders the table with the new column layout as columns change.
Affected components: Table
@@ -0,0 +1,8 @@
---
'@backstage/plugin-api-docs': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-org': patch
---
Updated usage of deprecated APIs in the new frontend system.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': minor
---
Plugin IDs that do not match the standard format are deprecated (letters, digits, and dashes only, starting with a letter). Plugin IDs that do no match this format will be rejected in a future release.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-okta-provider': patch
---
Added a validation check that rejects `audience` configuration values that are not absolute URLs (i.e. missing `https://` or `http://` prefix).
+5
View File
@@ -0,0 +1,5 @@
---
'@techdocs/cli': patch
---
Migrate the Techdocs CLI embedded app to the New Frontend System (NFS)
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-defaults': patch
---
`createRateLimitMiddleware` is now exported from `@backstage/backend-defaults/httpRouter`
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/cli': patch
'@backstage/cli-node': patch
---
Added support for the new `peerModules` metadata field in `package.json`. This field allows plugin packages to declare modules that should be installed alongside them for cross-plugin integrations. The field is validated by `backstage-cli repo fix --publish`.
@@ -0,0 +1,8 @@
---
'@backstage/plugin-scaffolder-backend': patch
'@backstage/plugin-notifications-backend': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-techdocs-backend': patch
---
Added `peerModules` metadata declaring recommended modules for cross-plugin integrations.
+153 -6
View File
@@ -1,11 +1,11 @@
{
"mode": "pre",
"mode": "exit",
"tag": "next",
"initialVersions": {
"example-app": "0.2.117",
"example-app-legacy": "0.2.117",
"@backstage/app-defaults": "1.7.4",
"example-app-next": "0.0.31",
"app-next-example-plugin": "0.0.31",
"example-app": "0.0.31",
"app-example-plugin": "0.0.31",
"example-backend": "0.0.46",
"@backstage/backend-app-api": "1.4.1",
"@backstage/backend-defaults": "0.15.0",
@@ -206,7 +206,154 @@
"@backstage/plugin-techdocs-react": "1.3.7",
"@backstage/plugin-user-settings": "0.8.31",
"@backstage/plugin-user-settings-backend": "0.3.10",
"@backstage/plugin-user-settings-common": "0.0.1"
"@backstage/plugin-user-settings-common": "0.0.1",
"@backstage/filter-predicates": "0.0.0"
},
"changesets": []
"changesets": [
"angry-hornets-clap",
"api-override-conflict-error-defaults",
"api-override-conflict-error",
"api-override-test-utils",
"backend-process-listener-cleanup",
"backend-test-utils-create-service-mock",
"backend-test-utils-extension-points",
"beige-crabs-share",
"better-eggs-slide",
"big-rabbits-think",
"bright-pans-greet",
"brown-grapes-fold",
"calm-knives-glow",
"catalog-graph-test-deps",
"catalog-modules-update-extension-points",
"catalog-node-extension-points-to-stable",
"catalog-node-use-create-service-mock",
"catalog-provider-module-failures",
"catalog-react-catalog-api-mock-shorthand",
"chatty-tips-stop",
"clean-suits-follow",
"cli-template-catalog-node-stable",
"create-app-1770128583",
"create-app-1770740016",
"css-exports-support",
"custom-playwright-channel",
"cute-parts-smash",
"dull-ants-pull",
"early-kids-see",
"easy-deer-eat",
"eighty-steaks-brake",
"elasticsearch-auth-extension-point",
"empty-games-hug",
"extension-snapshot-testing",
"fair-ads-decide",
"famous-phones-chew",
"fix-catalog-tags-spacing",
"fix-nested-accordion-icon-state",
"fix-nextjs16-css-modules",
"fix-opensearch-bulk-refresh",
"fix-theme-language-selector-leak",
"floppy-actors-show",
"floppy-parks-decide",
"frontend-mock-apis-alert-featureflags",
"frontend-test-utils-mock-apis-and-shorthand",
"fuzzy-lights-start",
"fuzzy-shrimps-refuse",
"gentle-onions-occur",
"gold-lions-stick",
"good-cameras-repair",
"good-eggs-tell",
"green-bags-shave",
"green-flowers-brush",
"green-llamas-wink",
"grumpy-birds-teach",
"grumpy-signs-deny",
"hip-eyes-mate",
"improve-in-memory-catalog-client",
"lazy-groups-hunt",
"legal-impalas-shine",
"lemon-eyes-grin",
"lemon-lines-give",
"light-meals-cover",
"long-months-laugh",
"lucky-masks-doubt",
"many-bags-brake",
"many-ravens-move",
"migrate-entity-filters-to-predicates",
"module-failure-reporting",
"module-handle-api",
"odd-eagles-guess",
"odd-lemons-occur",
"peer-modules-cli-support",
"peer-modules-plugin-metadata",
"plenty-dryers-tan",
"plenty-monkeys-share",
"polite-glasses-throw",
"polite-symbols-act",
"proud-stars-grow",
"public-keys-sip",
"quiet-carpets-arrive",
"quiet-coats-sleep",
"quiet-humans-hammer",
"rare-papers-decide",
"red-chicken-juggle",
"red-rivers-make",
"remove-array-attachto-type",
"remove-backend-defaults-from-plugins",
"remove-multiple-attachment-points-frontend-app-api",
"remove-multiple-attachment-points-frontend-plugin-api",
"remove-summary-card-type",
"render-test-app-mounted-routes",
"renovate-02f9012",
"renovate-4e9885a",
"renovate-5d0b26d",
"renovate-deeb14e",
"renovate-fc2561e",
"repo-tools-app-rename",
"repo-tools-type-deps-ambient-jest",
"ripe-women-follow",
"rotten-paths-pump",
"scaffolder-form-fields-api-migration-react",
"scaffolder-form-fields-api-migration",
"scaffolder-react-test-utils-dep",
"scaffolder-test-utils-dep",
"seven-states-sleep",
"sharp-doodles-retire",
"slimy-dots-cross",
"slimy-dots-sing",
"slimy-zebras-lie",
"slow-numbers-study",
"small-jars-lick",
"small-rice-arrive",
"small-shirts-lose",
"smart-spoons-scream",
"smart-ties-attend",
"smooth-pants-wave",
"solid-dryers-leave",
"spicy-coins-switch",
"stupid-flies-shake",
"summary-card-backward-compat",
"tangy-wasps-invent",
"tasty-crabs-occur",
"techdocs-addons-api-migration-react",
"techdocs-addons-api-migration",
"ten-mammals-invite",
"test-entity-page-utility",
"test-utils-jest-peer-dep",
"thirty-meals-rest",
"thirty-mirrors-own",
"three-rooms-enjoy",
"tiny-lamps-give",
"tired-queens-cross",
"tired-sides-share",
"twelve-dolls-tap",
"twenty-clubs-itch",
"ui-standard-build",
"vast-rockets-dig",
"wet-cups-juggle",
"wicked-walls-accept",
"wild-emus-write",
"wise-rabbits-double",
"yellow-ties-dream",
"yellow-years-run",
"young-pens-wash"
]
}
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
Support Prettier v3 for api-reports
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Added new `gitlab:user:info` scaffolder action that retrieves information about a GitLab user. The action can fetch either the current authenticated user or a specific user by ID.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/ui': patch
---
Fixed an infinite render loop in Tabs when navigating to a URL that doesn't match any tab `href`.
+13
View File
@@ -0,0 +1,13 @@
---
'@backstage/plugin-catalog-react': minor
---
**BREAKING ALPHA**: All of the predicate types and functions have been moved to the `@backstage/filter-predicates` package.
When moving into the more general package, they were renamed as follows:
- `EntityPredicate` -> `FilterPredicate`
- `EntityPredicateExpression` -> `FilterPredicateExpression`
- `EntityPredicatePrimitive` -> `FilterPredicatePrimitive`
- `entityPredicateToFilterFunction` -> `filterPredicateToFilterFunction`
- `EntityPredicateValue` -> `FilterPredicateValue`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': minor
---
allow entity discoverability via gitlab search API
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/frontend-plugin-api': minor
---
**BREAKING**: Removed type support for multiple attachment points in the `ExtensionDefinitionAttachTo` type. Extensions can no longer specify an array of attachment points in the `attachTo` property.
The runtime still supports multiple attachment points for backward compatibility with existing compiled code, but new code will receive type errors if attempting to use this pattern.
Extensions that previously used multiple attachment points should migrate to using a Utility API pattern instead. See the [Sharing Extensions Across Multiple Locations](https://backstage.io/docs/frontend-system/architecture/27-sharing-extensions) guide for the recommended approach.
@@ -0,0 +1,10 @@
---
'@backstage/plugin-devtools-backend': patch
'@backstage/plugin-mcp-actions-backend': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/plugin-search-backend': patch
'@backstage/plugin-techdocs-backend': patch
'@backstage/plugin-user-settings-backend': patch
---
Moved `@backstage/backend-defaults` from `dependencies` to `devDependencies`.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog-react': minor
---
**BREAKING**: Removed the 'summary' entity card type from `EntityCardType`. Users should migrate to using 'content' or 'info' card types instead.
TypeScript will now show errors if you try to use `type: 'summary'` when creating entity cards.
@@ -0,0 +1,14 @@
---
'@backstage/frontend-test-utils': patch
---
Added `mountedRoutes` option to `renderTestApp` for binding route refs to paths, matching the existing option in `renderInTestApp`:
```typescript
renderTestApp({
extensions: [...],
mountedRoutes: {
'/my-path': myRouteRef,
},
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend-module-explore': patch
---
Updated dependency `@backstage-community/plugin-explore-common` to `^0.12.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@techdocs/cli': patch
---
Updated dependency `find-process` to `^2.0.0`.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Updated dependency `@xterm/addon-attach` to `^0.12.0`.
Updated dependency `@xterm/addon-fit` to `^0.11.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Updated dependency `webpack` to `~5.104.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-devtools-react': patch
---
Updated dependency `@testing-library/react` to `^16.0.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
Updated package-docs exclude list to reflect renamed example app packages.
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
The `type-deps` command now follows relative imports and re-exports into declaration chunk files, and detects ambient global types such as the `jest` namespace.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/ui': patch
---
export PasswordField component
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-react': patch
---
Added `@backstage/frontend-test-utils` as a dev dependency for mock API usage in tests.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Added `@backstage/frontend-test-utils` as a dev dependency for mock API usage in tests.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs-node': patch
---
Some security fixes
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/backend-plugin-api': minor
---
Plugin IDs that do not match the standard format are deprecated (letters, digits, and dashes only, starting with a letter). Plugin IDs that do no match this format will be rejected in a future release.
In addition, plugin IDs that don't match the legacy pattern that also allows underscores, with be rejected.
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/plugin-mui-to-bui': patch
---
Updated MUI to BUI theme converter to align with latest token changes
**Changes:**
- Removed generation of deprecated tokens: `--bui-fg-link`, `--bui-fg-link-hover`, `--bui-fg-tint`, `--bui-fg-tint-disabled`, `--bui-bg-tint` and all its variants
- Added generation of new `info` status tokens: `--bui-fg-info`, `--bui-fg-info-on-bg`, `--bui-bg-info`, `--bui-border-info`
- Updated status color mapping to generate both standalone and `-on-bg` variants for danger, warning, success, and info
- Status colors now use `.main` for standalone variants and `.dark` for `-on-bg` variants, providing better visual hierarchy
The converter now generates tokens that match the updated BUI design system structure, with clear distinction between status colors for standalone use vs. use on colored backgrounds.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': patch
---
Fixed GitLab search API scope parameter from `'blob'` to `'blobs'`, resolving 400 errors in discovery provider.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog': minor
---
Migrated `DeleteEntityDialog` and `EntityOrphanWarning` components to Backstage UI.
The `deleteEntity.description` translation key no longer includes "Click here to delete" text. A new `deleteEntity.actionButtonTitle` key was added for the action button.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': minor
---
Log group/user count, tenant ID, execution time as separate fields
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-defaults': patch
---
Support `connection.type: azure` in database client to use Microsoft Entra authentication with Azure database for PostgreSQL
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
Fixed O(n²) performance bottleneck in `buildEntitySearch` `traverse()` by replacing `Array.some()` linear scan with a `Set` for O(1) duplicate path key detection.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-user-settings-backend': minor
'@backstage/plugin-user-settings-common': minor
'@backstage/plugin-user-settings': minor
---
User-settings will now use DataLoader to batch consecutive calls into one API call to improve performance
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
The default entity content layout still supports rendering summary cards at runtime for backward compatibility, but logs a console warning when they are detected to help identify where migration is needed.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-home-react': patch
'@backstage/plugin-home': patch
---
Support new frontend system in the homepage plugin
+56
View File
@@ -0,0 +1,56 @@
---
'@backstage/frontend-dynamic-feature-loader': patch
'@backstage/plugin-api-docs-module-protoc-gen-doc': patch
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-catalog-unprocessed-entities': patch
'@backstage/plugin-scaffolder-node-test-utils': patch
'@backstage/plugin-techdocs-addons-test-utils': patch
'@backstage/frontend-plugin-api': patch
'@backstage/frontend-test-utils': patch
'@backstage/frontend-defaults': patch
'@backstage/integration-react': patch
'@backstage/plugin-kubernetes-cluster': patch
'@backstage/frontend-app-api': patch
'@backstage/core-compat-api': patch
'@backstage/core-components': patch
'@backstage/core-plugin-api': patch
'@backstage/plugin-kubernetes-react': patch
'@backstage/plugin-permission-react': patch
'@backstage/plugin-scaffolder-react': patch
'@backstage/version-bridge': patch
'@backstage/plugin-app-visualizer': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-techdocs-react': patch
'@backstage/app-defaults': patch
'@backstage/core-app-api': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-config-schema': patch
'@backstage/plugin-notifications': patch
'@backstage/plugin-signals-react': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-search-react': patch
'@backstage/repo-tools': patch
'@backstage/test-utils': patch
'@backstage/dev-utils': patch
'@backstage/plugin-auth-react': patch
'@backstage/plugin-home-react': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-mui-to-bui': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-org-react': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-devtools': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-signals': patch
'@backstage/theme': patch
'@backstage/plugin-search': patch
'@backstage/plugin-auth': patch
'@backstage/plugin-home': patch
'@backstage/ui': patch
'@backstage/plugin-app': patch
'@backstage/plugin-org': patch
---
Prepare for React Router v7 migration by updating to v6.30.2 across all NFS packages and enabling v7 future flags. Convert routes from splat paths to parent/child structure with Outlet components.
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/plugin-catalog-react': minor
---
Added `createTestEntityPage` test utility for testing entity cards and content extensions in the new frontend system. This utility creates a test page extension that provides `EntityProvider` context and accepts entity extensions through input redirects:
```typescript
import { renderTestApp } from '@backstage/frontend-test-utils';
import { createTestEntityPage } from '@backstage/plugin-catalog-react/testUtils';
renderTestApp({
extensions: [createTestEntityPage({ entity: myEntity }), myEntityCard],
});
```
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/test-utils': patch
'@backstage/backend-test-utils': patch
---
Added `@types/jest` as an optional peer dependency, since jest types are exposed in the public API surface.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Internal update to simplify testing utility implementations.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
The Table component now wraps the react-aria-components `Table` with a `ResizableTableContainer` only if any column has a width property set. This means that column widths can adapt to the content otherwise (if no width is explicitly set).
Affected components: Table
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search': minor
---
Added support for configuring the default search type in the search page via the `search.defaultType` option in `app-config.yaml`. This applies to both the legacy and new frontend systems. If not set, the default is empty, which means searching for "all" types.
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/ui': minor
---
**BREAKING**: Removed `large` size variant from Button component as it was never implemented.
**Migration:**
```diff
- <Button size="large">Click me</Button>
+ <Button size="medium">Click me</Button>
```
**Affected components:** Button
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-events-backend-module-google-pubsub': minor
---
Added an optional `filter` property to PubSub consumers/publishers
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Fixed Switch component disabled state styling to show `not-allowed` cursor and disabled text color.
**Affected components:** Switch

Some files were not shown because too many files have changed in this diff Show More