Release v1.42.0-next.3
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.42.0-next.3
@backstage/cli@0.34.0-next.2
Minor Changes
-
923ceb2: BREAKING: The new app build based on Rspack is now the default, and the
EXPERIMENTAL_RSPACKflag has been removed. To revert to the old behavior, set theLEGACY_WEBPACK_BUILDenvironment flag and install the following optional dependencies:{
"dependencies": {
"@module-federation/enhanced": "^0.9.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
"esbuild-loader": "^4.0.0",
"eslint-webpack-plugin": "^4.2.0",
"fork-ts-checker-webpack-plugin": "^9.0.0",
"mini-css-extract-plugin": "^2.4.2",
"terser-webpack-plugin": "^5.1.3",
"webpack": "^5.96.0",
"webpack-dev-server": "^5.0.0"
}
}If you do encounter a blocking issue that forces you to use the old WebPack build, please open an issue explaining the problem. The WebPack build will be removed in a future release.
-
eda80c7: BREAKING: Removed support for
.icon.svgimports, which have been deprecated since the 1.19 release.
Patch Changes
- 8b1bf6e: Deprecated new frontend system config setting
app.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release. - ead626f: The Node.js transform in
@backstage/cli/config/nodeTransformHooks.mjsnow supports the built-in type stripping in Node.js, which is enabled by default from v22.18.0.
@backstage/frontend-app-api@0.12.0-next.3
Minor Changes
-
8e21c4d: Use an app plugin for built-in extension app node specs.
-
8e21c4d: The
AppNodeSpec.pluginproperty is now required. -
5e12252: BREAKING: Restructured some of option fields of
createAppandcreateSpecializedApp.- For
createApp, all option fields exceptfeaturesandbindRouteshave been moved into a newadvancedobject field. - For
createSpecializedApp, all option fields exceptfeatures,config, andbindRouteshave been moved into a newadvancedobject field.
This helps highlight that some options are meant to rarely be needed or used, and simplifies the usage of those options that are almost always required.
As an example, if you used to supply a custom config loader, you would update your code as follows:
createApp({
features: [...],
- configLoader: new MyCustomLoader(),
+ advanced: {
+ configLoader: new MyCustomLoader(),
+ },
}) - For
Patch Changes
- f3f9d57: Renaming the
getNodesByRoutePathparameter fromsourcePathtoroutePath - 8b1bf6e: Deprecated new frontend system config setting
app.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release. - fda1bbc: Added a default implementation of the
SwappableComponentsApiand removing the legacyComponentsApiimplementation - 1c2cc37: Improved runtime error message clarity when extension factories don't return an iterable object.
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/frontend-defaults@0.3.0-next.3
@backstage/frontend-defaults@0.3.0-next.3
Minor Changes
-
5e12252: BREAKING: Restructured some of option fields of
createAppandcreateSpecializedApp.- For
createApp, all option fields exceptfeaturesandbindRouteshave been moved into a newadvancedobject field. - For
createSpecializedApp, all option fields exceptfeatures,config, andbindRouteshave been moved into a newadvancedobject field.
This helps highlight that some options are meant to rarely be needed or used, and simplifies the usage of those options that are almost always required.
As an example, if you used to supply a custom config loader, you would update your code as follows:
createApp({
features: [...],
- configLoader: new MyCustomLoader(),
+ advanced: {
+ configLoader: new MyCustomLoader(),
+ },
}) - For
Patch Changes
- 8b1bf6e: Deprecated new frontend system config setting
app.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release. - e5a0a99: BREAKING: The
loadingComponentoption has been renamed toloadingElement, which is now found underadvanced.loadingElement. The default loading element has also been switched to<Progress />from@backstage/core-components. This is of course an improvement over the previous"Loading..."text, but also helps prevent flicker when the app loading is fast. - Updated dependencies
- @backstage/plugin-app@0.2.0-next.2
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/frontend-app-api@0.12.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/frontend-plugin-api@0.11.0-next.2
Minor Changes
-
fda1bbc: BREAKING: The component system has been overhauled to use
SwappableComponentinstead ofComponentRef. Several APIs have been removed and replaced:- Removed:
createComponentRef,createComponentExtension,ComponentRef,ComponentsApi,componentsApiRef,useComponentRef,coreComponentRefs - Added:
createSwappableComponent,SwappableComponentBlueprint,SwappableComponentRef,SwappableComponentsApi,swappableComponentsApiRef
BREAKING: The default
componentRefsand exportedCore*Propshave been removed and have replacementSwappableComponentsand revised type names instead.- The
errorBoundaryFallbackcomponent andCoreErrorBoundaryFallbackPropstype have been replaced withErrorDisplayswappable component andCoreErrorDisplayPropsrespectively. - The
progresscomponent andCoreProgressPropstype have been replaced withProgressswappable component andProgressPropsrespectively. - The
notFoundErrorPagecomponent andCoreNotFoundErrorPagePropstype have been replaced withNotFoundErrorPageswappable component andNotFoundErrorPagePropsrespectively.
Migration for creating swappable components:
// OLD: Using createComponentRef and createComponentExtension
import {
createComponentRef,
createComponentExtension,
} from '@backstage/frontend-plugin-api';
const myComponentRef = createComponentRef<{ title: string }>({
id: 'my-plugin.my-component',
});
const myComponentExtension = createComponentExtension({
ref: myComponentRef,
loader: {
lazy: () => import('./MyComponent').then(m => m.MyComponent),
},
});
// NEW: Using createSwappableComponent and SwappableComponentBlueprint
import {
createSwappableComponent,
SwappableComponentBlueprint,
} from '@backstage/frontend-plugin-api';
const MySwappableComponent = createSwappableComponent({
id: 'my-plugin.my-component',
loader: () => import('./MyComponent').then(m => m.MyComponent),
});
const myComponentExtension = SwappableComponentBlueprint.make({
name: 'my-component',
params: {
component: MySwappableComponent,
loader: () => import('./MyComponent').then(m => m.MyComponent),
},
});Migration for using components:
// OLD: Using ComponentsApi and useComponentRef
import {
useComponentRef,
componentsApiRef,
useApi,
coreComponentRefs,
} from '@backstage/frontend-plugin-api';
const MyComponent = useComponentRef(myComponentRef);
const ProgressComponent = useComponentRef(coreComponentRefs.progress); - Removed:
// NEW: Direct component usage import { Progress } from '@backstage/frontend-plugin-api';
// Use directly as React Component
**Migration for core component references:**
```tsx
// OLD: Core component refs
import { coreComponentRefs } from '@backstage/frontend-plugin-api';
coreComponentRefs.progress
coreComponentRefs.notFoundErrorPage
coreComponentRefs.errorBoundaryFallback
// NEW: Direct swappable component imports
import { Progress, NotFoundErrorPage, ErrorDisplay } from '@backstage/frontend-plugin-api';
// Use directly as React components
<Progress />
<NotFoundErrorPage />
<ErrorDisplay plugin={plugin} error={error} resetError={resetError} />
- 6a75e00: BREAKING: Removed the deprecated
createFrontendPluginvariant where the plugin ID is passed via anidoption. To update existing code, switch to using thepluginIdoption instead. - 1e6410b: BREAKING: The
ResolveInputValueOverridestype is no longer exported.
Patch Changes
- 9831f4e: Adjusted the dialog API types to have more sensible defaults
- 1c2cc37: Improved runtime error message clarity when extension factories don't return an iterable object.
- 24558f0: Added inline documentation for
createExtension,createExtensionBlueprint,createFrontendPlugin, andcreateFrontendModule. - Updated dependencies
- @backstage/core-components@0.17.5-next.2
@backstage/ui@0.7.0-next.3
Minor Changes
- 0615e54: We are moving our DataTable component to React Aria. We removed our DataTable to only use Table as a single and opinionated option for tables. This new structure is made possible by using React Aria under the hood.
Patch Changes
- 230b410: Breaking change Move breadcrumb to fit in the
HeaderPageinstead of theHeaderin Backstage UI. - 8bdc491: Remove stylesheet import from Select component.
- 404b426: Add
startCollapsedprop on theSearchFieldcomponent in BUI.
@backstage/plugin-app@0.2.0-next.2
Minor Changes
-
fda1bbc: BREAKING: The
componentsApiimplementation has been removed from the plugin and replaced with the newSwappableComponentsApiinstead.If you were overriding the
componentsApiimplementation, you can now use the newSwappableComponentsApiinstead.// old
appPlugin.getExtension('api:app/components').override(...)
// new
appPlugin.getExtension('api:app/swappable-components').override(...)
Patch Changes
-
91cbdf4: Log a warning when
SwappableComponentextensions are installed outside of using theappplugin -
fda1bbc: Default implementations of core components are now provided by this package.
A backwards compatible
componentsApiimplementation is also provided from this package which uses theSwappableComponentsApias the implementation. This backwards compatible wrapper will be removed in the future. -
9831f4e: Adjusted the dialog API types to have more sensible defaults
-
Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-kubernetes-backend@0.20.0-next.1
Minor Changes
-
759568d: BREAKING CHANGE: Removed support for the legacy backend system. This means that the deprecated
createRouterandKubernetesBuilderand related types have been removed. Please refer to the relevant documentation to configure the Kubernetes plugin.BREAKING CHANGE: The deprecated types
AuthenticationStrategy,AuthMetadata,ClusterDetails,CustomResource,CustomResourcesByEntity,FetchResponseWrapper,KubernetesBuilder,KubernetesBuilderReturn,KubernetesClustersSupplier,KubernetesCredential,KubernetesEnvironment,KubernetesFetcher,KubernetesObjectsProvider,KubernetesObjectTypes,KubernetesServiceLocator,ObjectFetchParams,ObjectToFetch,RouterOptionsandServiceLocatorRequestContextshould all now be imported from@backstage/plugin-kubernetes-node.
Patch Changes
- Updated dependencies
- @backstage/plugin-kubernetes-node@0.3.3-next.0
@backstage/plugin-scaffolder@1.34.0-next.3
Minor Changes
- b1c0696: Add resizable panels width for the editor and preview panels in the template editor and template form playground layouts. Users can now resize these panels by dragging the divider between the two areas.
Patch Changes
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-scaffolder-backend@2.2.0-next.1
Minor Changes
- 2032660: Fixed fs:readdir action example
- 11dc90f: Implement max length for scaffolder auditor audit logging with default of 256
Patch Changes
- Updated dependencies
- @backstage/backend-openapi-utils@0.6.0-next.1
- @backstage/plugin-scaffolder-backend-module-gitlab@0.9.4-next.1
- @backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1
@backstage/backend-openapi-utils@0.6.0-next.1
Patch Changes
- 3760352: Update
express-openapi-validatorto 5.5.8 to fix security vulnerability in transitive dependencymulter
@backstage/core-compat-api@0.5.0-next.3
Patch Changes
- fda1bbc: The
compatWrapperhas been switched to use the newSwappableComponentsApiinstead of the oldComponentsApiin its bridging to the old frontend system. - Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
@backstage/core-components@0.17.5-next.2
Patch Changes
- 77467bb: Updated dependency
linkifyjsto4.3.2.
@backstage/create-app@0.7.2-next.3
Patch Changes
- 8b1bf6e: Updated the
app.packagesconfig setting now that it no longer is experimental
@backstage/repo-tools@0.15.1-next.1
Patch Changes
- 33060b5: Removed build-in ignore of the
packages/canonpackage for knip reports.
@backstage/plugin-api-docs@0.12.10-next.3
Patch Changes
- 8b1bf6e: Updated README instructions for the new frontend system
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-auth-backend-module-okta-provider@0.2.6-next.1
Patch Changes
- 94476d2: Updated dependency
@davidzemon/passport-okta-oauthto^0.0.7.
@backstage/plugin-catalog-backend@3.0.1-next.1
Patch Changes
-
1752be6: Attempt to circumvent event listener memory leak in compression middleware
-
9dd213c: Make the processing hash calculation not care about the order of the processors.
This change does not affect the behavior of the catalog, but it will make the processing hash calculation more robust against changes in the order of processors. This should lead to more stable processing hashes, which in turn should lead to fewer unnecessary reprocessing of entities.
After deploying this fix, you may see a period of increased processing and stitching, but this should stabilize over time as the processing hashes become more consistent.
-
fa6fa60: Fixed getLocationByEntity to use
original_valueinstead ofvaluewhen querying search table -
Updated dependencies
- @backstage/backend-openapi-utils@0.6.0-next.1
@backstage/plugin-catalog-backend-module-github@0.10.2-next.1
Patch Changes
- f6c64d1: Fix GitHub catalog entity provider branch matching on event processing.
- Updated dependencies
- @backstage/plugin-catalog-backend@3.0.1-next.1
@backstage/plugin-catalog-graph@0.4.22-next.3
Patch Changes
- 8b1bf6e: Updated README instructions for the new frontend system
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-events-backend-module-kafka@0.1.2-next.1
Patch Changes
- 0d38009: Remove luxon dependency and minor internal improvements
@backstage/plugin-kubernetes@0.12.10-next.3
Patch Changes
- 3025cf5: Removed the kubernetes content padding to avoid double padding on k8s entity page
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-org@0.6.42-next.3
Patch Changes
- 8b1bf6e: Updated README instructions for the new frontend system
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-proxy-backend@0.6.5-next.1
Patch Changes
- 0810cd8: correct rewrite rule to avoid extra subpath in proxy path
@backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1
Patch Changes
- a22cce0: Fixed bug in the
customPropertiestype which was preventing it being used to set a list of values against a key (e.g. for multi-select fields)
@backstage/plugin-scaffolder-backend-module-gitlab@0.9.4-next.1
Patch Changes
- 5bb870b: Show additional information about the cause in error messages from GitLab
example-backend@0.0.41-next.1
Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@3.0.1-next.1
- @backstage/plugin-kubernetes-backend@0.20.0-next.1
- @backstage/plugin-scaffolder-backend@2.2.0-next.1
- @backstage/plugin-proxy-backend@0.6.5-next.1
- @backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1