Merge branch 'backstage:master' into milliehartnt123-create-ui-doc

This commit is contained in:
milliehartnt123
2026-02-17 09:23:28 -05:00
committed by GitHub
2658 changed files with 122677 additions and 44061 deletions
+55
View File
@@ -6,3 +6,58 @@ find the full documentation for it [in our repository](https://github.com/change
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)
---
## Backstage UI Changesets
For `@backstage/ui` changesets, use this format:
```markdown
---
'@backstage/ui': patch
---
Brief summary
Optional description with code examples.
**Migration:**
Migration instructions (breaking changes only).
**Affected components:** button, card
```
**Required:**
- End with `**Affected components:**` + comma-separated component names
- For breaking changes: Add `**Migration:**` section
- No headings (`##`, `###`) inside - use bold markers
**Examples:**
```markdown
Fixed button hover state
**Affected components:** button
```
````markdown
**BREAKING**: New Table API
**Migration:**
Update imports:
```diff
- import { Table } from '@backstage/ui';
+ import { Table, type ColumnConfig } from '@backstage/ui';
```
````
**Affected components:** table
```
```
-33
View File
@@ -1,33 +0,0 @@
---
'@backstage/backend-defaults': minor
---
Added action filtering support with glob patterns and attribute constraints.
The `ActionsService` now supports filtering actions based on configuration. This allows controlling which actions are exposed to consumers like the MCP backend.
Configuration example:
```yaml
backend:
actions:
pluginSources:
- catalog
- scaffolder
filter:
include:
- id: 'catalog:*'
attributes:
destructive: false
- id: 'scaffolder:*'
exclude:
- id: '*:delete-*'
- attributes:
readOnly: false
```
Filtering logic:
- `include`: Rules for actions to include. Each rule can specify an `id` glob pattern and/or `attributes` constraints. An action must match at least one rule to be included. If no include rules are specified, all actions are included by default.
- `exclude`: Rules for actions to exclude. Takes precedence over include rules.
- Each rule combines `id` and `attributes` with AND logic (both must match if specified).
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/ui': patch
---
Added a new `FullPage` component that fills the remaining viewport height below the `PluginHeader`.
```tsx
<PluginHeader title="My Plugin" tabs={tabs} />
<FullPage>
{/* content fills remaining height */}
</FullPage>
```
**Affected components:** FullPage
+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.
+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' }),
],
],
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-app-visualizer': minor
---
Migrated to use `SubPageBlueprint` for tabbed navigation and added a copy-tree-as-JSON plugin header action using `PluginHeaderActionBlueprint`. The plugin now specifies a `title` and `icon`.
@@ -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.
@@ -0,0 +1,5 @@
---
'@backstage/backend-test-utils': patch
---
Updated `startTestBackend` to support factory-based extension points (v1.1 format) in addition to the existing direct implementation format.
+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
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
Fixes app background color on dark mode.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Fixes a bug where the `EntityListProvider` would not correctly hydrate query parameters if more than 20 were provided for the same key.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-plugin-api': patch
'@backstage/cli-common': patch
---
Move some of the symlink resolution to `isChildPath`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-app-visualizer': patch
---
Bump react-aria-components to v1.14.0
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-app-backend': patch
'@backstage/plugin-app-node': patch
---
Updated plugin metadata.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-auth0-provider': patch
---
Add support for organizational invites in auth0 strategy
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/ui': patch
---
Added indeterminate state support to the Checkbox component for handling partial selection scenarios like table header checkboxes.
Affected components: Checkbox
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/ui': patch
---
Added missing `aria-label` attributes to `SearchField` components in `Select`, `MenuAutocomplete`, and `MenuAutocompleteListbox` to fix accessibility warnings.
Affected components: Select, MenuAutocomplete, MenuAutocompleteListbox
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/frontend-plugin-api': patch
---
Updated documentation for `createApiRef` to clarify the role of the ID in specifying the owning plugin of an API.
+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,23 @@
---
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-catalog-backend-module-aws': patch
'@backstage/plugin-catalog-backend-module-azure': patch
'@backstage/plugin-catalog-backend-module-backstage-openapi': patch
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
'@backstage/plugin-catalog-backend-module-gcp': patch
'@backstage/plugin-catalog-backend-module-gerrit': patch
'@backstage/plugin-catalog-backend-module-gitea': patch
'@backstage/plugin-catalog-backend-module-github': patch
'@backstage/plugin-catalog-backend-module-github-org': patch
'@backstage/plugin-catalog-backend-module-gitlab': patch
'@backstage/plugin-catalog-backend-module-gitlab-org': patch
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
'@backstage/plugin-catalog-backend-module-ldap': patch
'@backstage/plugin-catalog-backend-module-msgraph': patch
'@backstage/plugin-catalog-backend-module-openapi': patch
'@backstage/plugin-catalog-backend-module-puppetdb': patch
'@backstage/plugin-catalog-backend-module-scaffolder-entity-model': patch
---
Updated imports to use stable catalog extension points from `@backstage/plugin-catalog-node` instead of the deprecated alpha exports.
@@ -0,0 +1,13 @@
---
'@backstage/plugin-catalog-node': minor
---
Promoted stable catalog extension points from alpha to main export. The following extension points are now exported from `@backstage/plugin-catalog-node` instead of `@backstage/plugin-catalog-node/alpha`:
- `catalogLocationsExtensionPoint` and `CatalogLocationsExtensionPoint`
- `catalogProcessingExtensionPoint` and `CatalogProcessingExtensionPoint`
- `catalogAnalysisExtensionPoint` and `CatalogAnalysisExtensionPoint`
The old alpha exports for these extension points are now deprecated with `@deprecated` markers pointing to the new stable exports. Please update your imports from `@backstage/plugin-catalog-node/alpha` to `@backstage/plugin-catalog-node`.
Note: The `catalogModelExtensionPoint`, `catalogPermissionExtensionPoint`, and related types remain in alpha.
@@ -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-backend': minor
---
Failures to connect catalog providers are now attributed to the module that provided the failing provider. This means that such failures will be reported as module startup failures rather than a failure to start the catalog plugin, and will therefore respect `onPluginModuleBootFailure` configuration instead.
@@ -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.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-auth0-provider': minor
---
feat: Added organization option to authorization params of the strategy
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
---
Changed the logger level from 'warning' to 'debug' when we are unable to load the user's photo.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
Fixes disabled state in primary and secondary buttons in Backstage UI.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/ui': patch
---
Fixed dark theme `--bui-fg-secondary` and `--bui-fg-disabled` tokens using black-based `oklch(0% ...)` instead of white-based `oklch(100% ...)`, making secondary and disabled text visible on dark backgrounds.
+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/repo-tools': patch
---
Add newline to OpenAPI license template files.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-defaults': patch
---
Implementing `readTree` for `GoogleGcsReader`
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Updated catalog provider module template to use stable catalog extension points from `@backstage/plugin-catalog-node` instead of alpha exports.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs-backend': patch
---
Some AWS `publisher` config options such as `region`, `endpoint`, `accountId` are now marked as `@visibility backend` instead of `secret`.
+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
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Updated the app template sidebar to use the new `NavContentBlueprint` API for page-based navigation.
+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.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-app-react': minor
---
Initial release of this web library for `@backstage/plugin-app`.
+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' }),
});
```
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/ui': patch
---
Fixed Box component to forward HTML attributes to the underlying div element.
**Affected components:** Box
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-mcp-actions-backend': patch
---
build(deps): bump `@modelcontextprotocol/sdk` from 1.24.3 to 1.25.2
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
build(deps-dev): bump `storybook` from 10.1.9 to 10.1.10
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': minor
---
Migrated `UnregisterEntityDialog` from Material UI to Backstage UI components.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-app-api': patch
---
Clean up process event listeners on backend stop to prevent leaks
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
Fixed disabled tertiary buttons incorrectly showing hover effects on surfaces.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
Added new Popover component for Backstage UI with automatic overflow handling, and full placement support. Also introduced `--bui-shadow` token for consistent elevation styling across overlay components (Popover, Tooltip, Menu).
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-catalog': patch
---
Header in EntityLayout should always be shown.
Monitoring the loading status caused flickering when the refresh() method of the Async Entity was invoked.
+31
View File
@@ -0,0 +1,31 @@
---
'@backstage/plugin-catalog-backend': minor
---
Implemented handling of events from the newly introduced alpha
`catalogScmEventsServiceRef` service, in the builtin entity providers. This
allows entities to get refreshed, and locations updated or removed, as a
response to incoming events. In its first iteration, only the GitHub module
implements such event handling however.
This is not yet enabled by default, but this fact may change in a future
release. To try it out, ensure that you have the latest catalog GitHub module
installed, and set the following in your app-config:
```yaml
catalog:
scmEvents: true
```
Or if you want to pick and choose from the various features:
```yaml
catalog:
scmEvents:
# refresh (reprocess) upon events?
refresh: true
# automatically unregister locations based on events? (files deleted, repos archived, etc)
unregister: true
# automatically move locations based on events? (repo transferred, file renamed, etc)
move: true
```
+80
View File
@@ -0,0 +1,80 @@
---
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch
'@backstage/plugin-search-backend-module-stack-overflow-collator': patch
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
'@backstage/plugin-auth-backend-module-azure-easyauth-provider': patch
'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
'@backstage/plugin-auth-backend-module-pinniped-provider': patch
'@backstage/plugin-auth-backend-module-aws-alb-provider': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket': patch
'@backstage/plugin-search-backend-module-elasticsearch': patch
'@backstage/plugin-auth-backend-module-oidc-provider': patch
'@backstage/backend-dynamic-feature-service': patch
'@backstage/plugin-scaffolder-backend-module-gerrit': patch
'@backstage/plugin-scaffolder-backend-module-github': patch
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
'@backstage/plugin-scaffolder-backend-module-sentry': patch
'@backstage/plugin-scaffolder-backend-module-yeoman': patch
'@backstage/plugin-scaffolder-backend-module-gitea': patch
'@backstage/plugin-scaffolder-backend-module-rails': patch
'@backstage/plugin-catalog-backend-module-openapi': patch
'@backstage/plugin-search-backend-module-techdocs': patch
'@backstage/plugin-catalog-backend-module-gerrit': patch
'@backstage/plugin-catalog-backend-module-github': patch
'@backstage/plugin-catalog-backend-module-gitlab': patch
'@backstage/plugin-search-backend-module-catalog': patch
'@backstage/plugin-search-backend-module-explore': patch
'@backstage/plugin-catalog-backend-module-ldap': patch
'@backstage/plugin-catalog-backend-module-aws': patch
'@backstage/plugin-scaffolder-node-test-utils': patch
'@backstage/plugin-techdocs-addons-test-utils': patch
'@backstage/plugin-search-backend-module-pg': patch
'@backstage/backend-openapi-utils': patch
'@backstage/plugin-bitbucket-cloud-common': patch
'@backstage/integration-aws-node': patch
'@backstage/plugin-notifications-backend': patch
'@backstage/backend-plugin-api': patch
'@backstage/backend-test-utils': patch
'@backstage/plugin-search-backend-node': patch
'@backstage/backend-dev-utils': patch
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-permission-backend': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/backend-defaults': patch
'@backstage/core-components': patch
'@backstage/plugin-devtools-backend': patch
'@backstage/plugin-kubernetes-react': patch
'@backstage/plugin-techdocs-backend': patch
'@backstage/e2e-test-utils': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-kubernetes-node': patch
'@backstage/plugin-scaffolder-node': patch
'@backstage/plugin-signals-backend': patch
'@backstage/config-loader': patch
'@backstage/eslint-plugin': patch
'@backstage/plugin-events-backend': patch
'@backstage/plugin-search-backend': patch
'@techdocs/cli': patch
'@backstage/plugin-proxy-backend': patch
'@backstage/plugin-search-common': patch
'@backstage/plugin-techdocs-node': patch
'@backstage/integration': patch
'@backstage/plugin-auth-backend': patch
'@backstage/plugin-catalog-node': patch
'@backstage/cli-common': patch
'@backstage/create-app': patch
'@backstage/repo-tools': patch
'@backstage/plugin-app-backend': patch
'@backstage/plugin-scaffolder': patch
'@backstage/cli-node': patch
'@backstage/codemods': patch
'@backstage/plugin-auth-node': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-app-node': patch
'@backstage/cli': patch
'@backstage/ui': patch
---
Use node prefix on native imports
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-notifications': patch
---
Added `renderItem` prop to `NotificationsSidebarItem` component, allowing custom UI rendering while retaining all built-in notification logic (unread count, snackbar, signals, web notifications).
+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
@@ -1,5 +0,0 @@
---
'@backstage/plugin-home': minor
---
Widget configurations are now only saved to storage when the Save button is explicitly clicked. Added a Cancel button that allows users to discard unsaved changes and revert to the last saved state.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/ui': patch
---
Fixed Table sorting indicator not being visible when a column is actively sorted.
Affected components: Table, Column
+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
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Bump `@swc/core` to support `ES2023` and `ES2024`
-44
View File
@@ -1,44 +0,0 @@
---
'@backstage/ui': minor
---
**BREAKING**: Redesigned Table component with new `useTable` hook API.
- The `Table` component (React Aria wrapper) is renamed to `TableRoot`
- New high-level `Table` component that handles data display, pagination, sorting, and selection
- The `useTable` hook is completely redesigned with a new API supporting three pagination modes (complete, offset, cursor)
- New types: `ColumnConfig`, `TableProps`, `TableItem`, `UseTableOptions`, `UseTableResult`
New features include unified pagination modes, debounced query changes, stale data preservation during reloads, and row selection with toggle/replace behaviors.
**Migration guide:**
1. Update imports and use the new `useTable` hook:
```diff
-import { Table, useTable } from '@backstage/ui';
-const { data, paginationProps } = useTable({ data: items, pagination: {...} });
+import { Table, useTable, type ColumnConfig } from '@backstage/ui';
+const { tableProps } = useTable({
+ mode: 'complete',
+ getData: () => items,
+});
```
2. Define columns and render with the new Table API:
```diff
-<Table aria-label="My table">
- <TableHeader>...</TableHeader>
- <TableBody items={data}>...</TableBody>
-</Table>
-<TablePagination {...paginationProps} />
+const columns: ColumnConfig<Item>[] = [
+ { id: 'name', label: 'Name', isRowHeader: true, cell: item => <CellText title={item.name} /> },
+ { id: 'type', label: 'Type', cell: item => <CellText title={item.type} /> },
+];
+
+<Table columnConfig={columns} {...tableProps} />
```
Affected components: Table, TableRoot, TablePagination
+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
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
'@backstage/backend-defaults': patch
'@backstage/plugin-scaffolder-node': patch
---
Wrap some of the action logic with `resolveSafeChildPath` and improve symlink handling when fetching remote and local files
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Removed `/alpha` from `scaffolderActionsExtensionPoint` import
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
The MarkdownContent component now handles HTML content the same way as GitHub when rendering GitHub-flavored Markdown
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/ui': patch
---
Fixed Menu component trigger button not toggling correctly. Removed custom click-outside handler that was interfering with React Aria's built-in state management, allowing the menu to properly open and close when clicking the trigger button.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-org': patch
---
Adds the Resource kind to the `useGetEntities` fallback so that Resources are included by default when no specific kinds are provided in the group ownership card.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-mui-to-bui': patch
---
Updated CSS token references to use renamed `--bui-bg-app` and `--bui-border-2` tokens.
+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.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
Fixed bug in Table component where the toolbar layout would break when both a title and filters were present.
@@ -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
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
---
Fully enable API token functionality for Bitbucket-Cloud.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-puppetdb': patch
---
Fixed crash when `latest_report_status` is undefined
@@ -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
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Added `--include` and `--format` options to `backstage-cli info` command for including additional packages via glob patterns and outputting as JSON or Text.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-defaults': minor
---
**BREAKING**: The constructor for `FetchUrlReader` is now private. If you have to construct an instance of it, please use `FetchUrlReader.fromConfig` instead.
+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.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Implemented support for the `internal` extension input option.
+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
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
Update colour token again in ItemCardHeader to respect theme definition.
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/frontend-app-api': patch
---
Updated error reporting and app tree resolution logic to attribute errors to the correct extension and allow app startup to proceed more optimistically:
- If an attachment fails to provide the required input data, the error is now attributed to the attachment rather than the parent extension.
- Singleton extension inputs will now only forward attachment errors if the input is required.
- Array extension inputs will now filter out failed attachments instead of failing the entire app tree resolution.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
cleaned up repo creation to make the unique portions explicit
@@ -2,4 +2,4 @@
'@backstage/plugin-scaffolder-backend': patch
---
Remove unused abort controller in debug:wait action
Removed unused dependency
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/core-compat-api': patch
'@backstage/plugin-app-visualizer': patch
---
Internal updates for blueprint moves to `@backstage/plugin-app-react`.
+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

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