docs/releases/v1.21.0-changelog.md
readTree for Gitea provider to support TechDocs functionalityReadable.from to fix some of the stream issuesarchiver to ^6.0.0.
Updated dependency @types/archiver to ^6.0.0.@kubernetes/client-node to 0.20.0.@google-cloud/storage to ^7.0.0.--runAsDefaultUser for @techdocs/cli generate to bypass running the docker builds as host user for macOS and Linux.onAuth handler for git actions to provide custom credentialsCatalogClient are now auto-generated using the backstage-repo-tools schema openapi generate-client command.**/src/generated/**.tsx loader to work on Node 18.19 and uppackage start command.vite-plugin-node-polyfills to ^0.17.0.@rollup/plugin-node-resolve to ^15.0.0.@rollup/plugin-json to ^6.0.0.bfj to ^8.0.0.@typescript-eslint/eslint-plugin to 6.12.0.@typescript-eslint/eslint-plugin to 6.11.0.@rollup/plugin-commonjs to ^25.0.0.@typescript-eslint/eslint-plugin dependency back to using a ^ version range.TransformFunc contextcollectLecacyRoutes'app'.collectLegacyRoutes has been removed and is replaced by convertLegacyApp now being able to convert a FlatRoutes element directly.convertLegacyRouteRef utility to convert existing route refs to be used with the new experimental packages.FrontendFeature type to simplify interfacescompatWrapper, which can be used to wrap any React element to provide bi-directional interoperability between the @backstage/core-*-api and @backstage/frontend-*-api APIs.core.router.featureLoader from createApp, features instead accepts both FrontendFeature and CreateAppFeatureLoader'app'.AppContext from @backstage/core-plugin-api. Components that require this context to be available should use the compatWrapper helper from @backstage/core-compat-api.Progress, BootErrorPage, NotFoundErrorPage and ErrorBoundaryFallback.FrontendFeature type to simplify interfaces@backstage/plugin-graphiql dependency.configLoader passed to createApp now returns an object, to make room for future expansioncreateSpecializedApp, which is a synchronous version of createApp where config and features already need to be loaded.AppRouteBinder to CreateAppRouteBindernode`` instead of extensionId` to resolved extension inputs.ExtensionDefinition and new extension ID naming patterns.node to extension factories instead of id and source.Extension and ExtensionDefinition as they are now opaque.coreExtensionData structure.component option of createComponentExtension to loader.af7bc3e: Switched all core extensions to instead use the namespace 'app'.
5cdf2b3: Changed Extension and ExtensionDefinition to use opaque types.
8f5d6c1: Extension inputs are now wrapped into an additional object when passed to the extension factory, with the previous values being available at the output property. The ExtensionInputValues type has also been replaced by ResolvedExtensionInputs.
8837a96: BREAKING: This version changes how extensions are created and how their IDs are determined. The createExtension function now accepts kind, namespace and name instead of id. All of the new options are optional, and are used to construct the final extension ID. By convention extension creators should set the kind to match their own name, for example createNavItemExtension sets the kind nav-item.
The createExtension function as well as all extension creators now also return an ExtensionDefinition rather than an Extension, which in turn needs to be passed to createPlugin or createExtensionOverrides to be used.
f9ef632: Moved several extension data references from coreExtensionData to their respective extension creators.
a5a0473: The extension factory function now longer receives id or source, but instead now provides the extension's AppNode as node. The ExtensionBoundary component has also been updated to receive a node prop rather than id and source.
FrontendFeature type, which is the union of BackstagePlugin and ExtensionOverridescreateSignInPageExtension.createTranslationExtension.node`` instead of extensionId` to resolved extension inputs.component option of createComponentExtension to loader.@backstage/frontend-app-api and @backstage/frontend-plugin-api.'app'.createExtensionTester for rendering extensions in tests.createExtensionTester helper is now able to render more than one route in the test app.renderInTestApp to @backstage/frontend-test-utils for testing individual React components in an app.core.router addition.TestApiProvider, TestApiRegistry, withLogCollector, and setupRequestMockHandlers from @backstage/test-utils.readTree for Gitea provider to support TechDocs functionality@azure/identity to ^4.0.0.api-report-alpha.md instead of alpha-api-report.md. When upgrading to this version you'll need to re-create any such API reports and delete the old ones.schema openapi generate-client that creates a Typescript client with Backstage flavor, including the discovery API and fetch API. This command doesn't currently generate a complete client and needs to be wrapped or exported manually by a separate Backstage plugin. See @backstage/catalog-client/src/generated for example output.f909e9d: Includes templates in @backstage/repo-tools package and use them in the CLI
da3c4db: Updates the schema openapi generate-client command to export all generated types from the generated directory.
7959f23: The api-reports command now checks for api report files that no longer apply.
If it finds such files, it's treated basically the same as report errors do, and
the check fails.
For example, if you had an api-report-alpha.md but then removed the alpha
export, the reports generator would now report that this file needs to be
deleted.
f49e237: Fixed a bug where schema openapi init created an invalid test command.
f91be2c: Updated dependency @stoplight/types to ^14.0.0.
45bfb20: Execute openapi-generator-cli from @backstage/repo-tools directory to force it to use our openapitools.json config file.
Updated dependencies
--runAsDefaultUser for @techdocs/cli generate to bypass running the docker builds as host user for macOS and Linux.mkdocs-server CLI parameters (--dirtyreload, --strict and --clean) when run in containerized mode.OverrideComponentNameToClassKeys for other plugins and packages to populate using module augmentation. This will in turn will provide component style override types for createUnifiedTheme.Paper component background color in dark mode to v4.@backstage/plugin-auth-backend that adds an atlassian auth providerpassport to ^0.7.0.oauth2-proxy-provider pluginfeatureDiscoveryServiceFactory()oauth2ProxyProvider to oauth2Proxy844969c: BREAKING New fromConfig static method must be used now when creating an instance of the AzureDevOpsApi
Added support for using the AzureDevOpsCredentialsProvider
encodeURIComponent when building URL used to get credentials from credential providerAzureDevOpsAnnotatorProcessor that adds the needed annotations automatically. Also, moved constants to common package so they can be shared more easily/alpha.columns prop can be an array or a function that returns an array in order to override the default columns of the CatalogIndexPage.bc7e6d3: Fix copy entity url function in http contexts.
5360097: Ensure that passed-in icons are taken advantage of in the presentation API
4785d05: Add permission check to catalog create and refresh button
cd910c4: - Fixes bug where after unregistering an entity you are redirected to /.
unregisterRedirect to override this behaviour to another route.03d0b6d: The convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api.
2d708d8: Internal naming updates for /alpha exports.
a5a0473: Internal refactor of alpha exports due to a change in how extension factories are defined.
4d9e3b3: Register component overrides in the global OverrideComponentNameToClassKeys provided by @backstage/theme. This will in turn will provide component style override types for createUnifiedTheme.
a1227cc: Wrap /alpha export extension elements in backwards compatibility wrapper.
78a10bb: Adding in spec.type chip to search results for clarity
8f5d6c1: Updates to the /alpha exports to match the extension input wrapping change.
36c94b8: Refactor of the alpha exports due to API change in how extension IDs are constructed.
8587f06: Added pagination support to CatalogIndexPage
CatalogIndexPage now offers an optional pagination feature, designed to accommodate adopters managing extensive catalogs. This new capability allows for better handling of large amounts of data.
To activate the pagination mode, simply update your App.tsx as follows:
const routes = (
<FlatRoutes>
...
- <Route path="/catalog" element={<CatalogIndexPage />} />
+ <Route path="/catalog" element={<CatalogIndexPage pagination />} />
...
In case you have a custom catalog page and you want to enable pagination, you need to pass the pagination prop to EntityListProvider instead.
fb8f3bd: Updated alpha translation message keys to use nested format and camel case.
531e1a2: Updated alpha plugin to include the unregisterRedirect external route.
Updated dependencies
CatalogPermissionExtensionPoint interface.openapi-generator.pipelineLoop of TaskPipeline in a span for better traces@types/glob to ^8.0.0.EntitiesSearchFilter and EntityFilter, which can now be imported from @backstage/plugin-catalog-node insteadEntitiesSearchFilter and EntityFilter from @backstage/plugin-catalog-backend, for reuseCatalogPermissionExtensionPoint interface./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns./alpha exports to match the extension input wrapping change.@rjsf/utils to 5.14.3.
Updated dependency @rjsf/core to 5.14.3.
Updated dependency @rjsf/material-ui to 5.14.3.
Updated dependency @rjsf/validator-ajv8 to 5.14.3.@rjsf/utils to 5.14.1.
Updated dependency @rjsf/core to 5.14.1.
Updated dependency @rjsf/material-ui to 5.14.1.
Updated dependency @rjsf/validator-ajv8 to 5.14.1.@rjsf/utils to 5.15.0.
Updated dependency @rjsf/core to 5.15.0.
Updated dependency @rjsf/material-ui to 5.15.0.
Updated dependency @rjsf/validator-ajv8 to 5.15.0.@rjsf/utils to 5.14.2.
Updated dependency @rjsf/core to 5.14.2.
Updated dependency @rjsf/material-ui to 5.14.2.
Updated dependency @rjsf/validator-ajv8 to 5.14.2.getEntitiesByRefs instead of getEntities to improve performance since we have the entityRefs52050ad: You can now select single kubernetes cluster that the entity is part-of from all your defined kubernetes clusters, by passing backstage.io/kubernetes-cluster annotation with the defined cluster name.
If you do not specify the annotation by default it fetches all defined kubernetes cluster.
To apply
catalog-info.yaml
annotations:
'backstage.io/kubernetes-id': dice-roller
'backstage.io/kubernetes-namespace': dice-space
+ 'backstage.io/kubernetes-cluster': dice-cluster
'backstage.io/kubernetes-label-selector': 'app=my-app,component=front-end'
6010564: The kubernetes-node plugin has been modified to house a new extension points for Kubernetes backend plugin;
KubernetesClusterSupplierExtensionPoint is introduced .
kubernetesAuthStrategyExtensionPoint is introduced .
kubernetesFetcherExtensionPoint is introduced .
kubernetesServiceLocatorExtensionPoint is introduced .
The kubernetes-backend plugin was modified to use this new extension point.
706fc3a: Updated dependency @kubernetes/client-node to 0.20.0.
ae94d3c: Updated dependency @aws-crypto/sha256-js to ^5.0.0.
99fb541: Updated dependency @azure/identity to ^4.0.0.
42c1aee: Updated dependency @google-cloud/container to ^5.0.0.
Updated dependencies
899d71a: Change formatClusterLink to be an API and make it async for further customization possibilities.
BREAKING
If you have a custom k8s page and used formatClusterLink directly, you need to migrate to new kubernetesClusterLinkFormatterApiRef
@kubernetes/client-node to 0.20.0.lighthouse.shedule and lighthouse.timeout respectively to lighthouse.schedule.frequency and lighthouse.schedule.timeout.gitea. This GiteaRepoPicker can be used in a template to scaffold a project to be cloned using gitea.ui:field: SecretheaderOptions to TemplateListPage to optionally override default values.
Changed themeId of TemplateListPage from website to home.@rjsf/utils to 5.14.3.
Updated dependency @rjsf/core to 5.14.3.
Updated dependency @rjsf/material-ui to 5.14.3.
Updated dependency @rjsf/validator-ajv8 to 5.14.3.@rjsf/utils to 5.14.1.
Updated dependency @rjsf/core to 5.14.1.
Updated dependency @rjsf/material-ui to 5.14.1.
Updated dependency @rjsf/validator-ajv8 to 5.14.1.@react-hookz/web to ^23.0.0.@rjsf/utils to 5.15.0.
Updated dependency @rjsf/core to 5.15.0.
Updated dependency @rjsf/material-ui to 5.15.0.
Updated dependency @rjsf/validator-ajv8 to 5.15.0.@rjsf/utils to 5.14.2.
Updated dependency @rjsf/core to 5.14.2.
Updated dependency @rjsf/material-ui to 5.14.2.
Updated dependency @rjsf/validator-ajv8 to 5.14.2.headerOptions not being passed through the TemplatePage componentpublish:gerrit action.scaffolder.defaultCommitMessage config value is now being used if provided and uses "initial commit" when it is not provided.github:autolinks:createui:field: Secretproperties is set to empty object when it should be empty for schema dependenciesReviewState where enum value was displayed in step review instead of the corresponding label when using enumNames@rjsf/utils to 5.14.3.
Updated dependency @rjsf/core to 5.14.3.
Updated dependency @rjsf/material-ui to 5.14.3.
Updated dependency @rjsf/validator-ajv8 to 5.14.3.@rjsf/utils to 5.14.1.
Updated dependency @rjsf/core to 5.14.1.
Updated dependency @rjsf/material-ui to 5.14.1.
Updated dependency @rjsf/validator-ajv8 to 5.14.1.@react-hookz/web to ^23.0.0.@rjsf/utils to 5.15.0.
Updated dependency @rjsf/core to 5.15.0.
Updated dependency @rjsf/material-ui to 5.15.0.
Updated dependency @rjsf/validator-ajv8 to 5.15.0.@rjsf/utils to 5.14.2.
Updated dependency @rjsf/core to 5.14.2.
Updated dependency @rjsf/material-ui to 5.14.2.
Updated dependency @rjsf/validator-ajv8 to 5.14.2.--runAsDefaultUser for @techdocs/cli generate to bypass running the docker builds as host user for macOS and Linux.@azure/identity to ^4.0.0.@google-cloud/storage to ^7.0.0.cc4228e: Switched module ID to use kebab-case.
b7de76a: Added support for PostgreSQL versions 15 and 16
Also introduced a new setDefaults(options: { ids?: TestDatabaseId[] }) static method that can be added to the setupTests.ts file to define the default database ids you want to use throughout your package. Usage would look like this: TestDatabases.setDefaults({ ids: ['POSTGRES_12','POSTGRES_16'] }) and would result in PostgreSQL versions 12 and 16 being used for your tests.
Updated dependencies
/testUtils sub-path that initially exports a mockBreakpoint helper.Table component.LogViewer was not able to handle very large logsOverrideComponentNameToClassKeys provided by @backstage/theme. This will in turn will provide component style override types for createUnifiedTheme.linkifyjs to 4.1.3.@react-hookz/web to ^23.0.0.linkify-react to version 4.1.3onChange prop within HeaderTabs was triggering twice upon tab-switching.convertLegacyRouteRef utility, which as been moved to @backstage/core-compat-apicreateTranslationRef function from the /alpha subpath can now also accept a nested object structure of default translation messages, which will be flatted using . separators.<EntityLinksCard /> for group entities by defaultno-undeclared-imports rule will now prefer using version queries that already exist en the repo for the same dependency type when installing new packages.mockBreakpoint, as it is now available from @backstage/core-components/testUtils instead./alpha exports to fit new naming patterns.send_page_view to get rid of events duplicationgraphql-config to compensate for graphql-language-service needing it but not shipping the dep properlygraphiql to 3.0.10.@asyncapi/react-component to 1.2.2.@asyncapi/react-component to 1.2.6.@asyncapi/react-component to 1.1.0.@apollo/explorer to ^3.0.0.oauth2-proxy auth implementation has been moved to @backstage/plugin-auth-backend-module-oauth2-proxy-provider@backstage/plugin-auth-backend-module-atlassian-provider modulepassport to ^0.7.0.@google-cloud/firestore to ^7.0.0.passport to ^0.7.0.passport to ^0.7.0.passport to ^0.7.0.passport to ^0.7.0.passport to ^0.7.0.passport to ^0.7.0.AzureDevOpsAnnotatorProcessor that adds the needed annotations automatically. Also, moved constants to common package so they can be shared more easilyAzureDevOpsAnnotatorProcessor that adds the needed annotations automatically. Also, moved constants to common package so they can be shared more easily@azure/identity to ^4.0.0.@azure/arm-appservice to ^14.0.0.ts-morph to ^20.0.0.@google-cloud/container to ^5.0.0.@azure/identity to ^4.0.0.convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns.8587f06: Added pagination support to EntityListProvider.
5360097: Ensure that passed-in icons are taken advantage of in the presentation API
fd9863c: Grouped all /alpha extension data reference exports under catalogExtensionData.
08d9e67: Add default icon for kind resource.
aaa6fb3: Minor updates for TypeScript 5.2.2+ compatibility
a5a0473: Internal refactor of alpha exports due to a change in how extension factories are defined.
4d9e3b3: Register component overrides in the global OverrideComponentNameToClassKeys provided by @backstage/theme. This will in turn will provide component style override types for createUnifiedTheme.
8f5d6c1: Updates to the /alpha exports to match the extension input wrapping change.
36c94b8: Refactor of the alpha exports due to API change in how extension IDs are constructed.
e223f22: Breaking alpha-API change to entity visibility filter functions to accept a bare entity as their first argument, instead of an object with an entity property.
Functions that accept such filters now also support the string expression form of filters.
eee0ff2: Fixed a issue where CatalogPage wasn't using the chosen initiallySelectedFilter as intended.
Updated dependencies
@react-hookz/web to ^23.0.0.Direction for the graph in the GroupsDiagram/alpha exports to fit new naming patterns.@react-hookz/web to ^23.0.0.convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns./alpha exports to match the extension input wrapping change.@rjsf/utils to 5.14.3.
Updated dependency @rjsf/core to 5.14.3.
Updated dependency @rjsf/material-ui to 5.14.3.
Updated dependency @rjsf/validator-ajv8 to 5.14.3.@rjsf/utils to 5.14.1.
Updated dependency @rjsf/core to 5.14.1.
Updated dependency @rjsf/material-ui to 5.14.1.
Updated dependency @rjsf/validator-ajv8 to 5.14.1.@rjsf/utils to 5.15.0.
Updated dependency @rjsf/core to 5.15.0.
Updated dependency @rjsf/material-ui to 5.15.0.
Updated dependency @rjsf/validator-ajv8 to 5.15.0.@rjsf/utils to 5.14.2.
Updated dependency @rjsf/core to 5.14.2.
Updated dependency @rjsf/material-ui to 5.14.2.
Updated dependency @rjsf/validator-ajv8 to 5.14.2.899d71a: Change formatClusterLink to be an API and make it async for further customization possibilities.
BREAKING
If you have a custom k8s page and used formatClusterLink directly, you need to migrate to new kubernetesClusterLinkFormatterApiRef
706fc3a: Updated dependency @kubernetes/client-node to 0.20.0.
Updated dependencies
@kubernetes/client-node to 0.20.0.6010564: The kubernetes-node plugin has been modified to house a new extension points for Kubernetes backend plugin;
KubernetesClusterSupplierExtensionPoint is introduced .
kubernetesAuthStrategyExtensionPoint is introduced .
kubernetesFetcherExtensionPoint is introduced .
kubernetesServiceLocatorExtensionPoint is introduced .
The kubernetes-backend plugin was modified to use this new extension point.
Updated dependencies
<EntityMembersListCard> would be rendered as squished when the card itself was shrunk down.-node instead and use the new external modulesgithub:autolinks:createsentry:project:create scaffolder action and unit tests.-node instead and use the new external modulesconvertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns./alpha exports to match the extension input wrapping change.@backstage/frontend-app-api dependency./alpha exports to fit new naming patterns./alpha exports to fit new naming patterns.convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns.convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns.@testing-library/react to be a peerDependency@react-hookz/web to ^23.0.0.convertLegacyRouteRef utility used by the alpha exports is now imported from @backstage/core-compat-api./alpha export extension elements in backwards compatibility wrapper./alpha exports to fit new naming patterns./alpha exports to match the extension input wrapping change.