docs/releases/v1.34.0-changelog.md
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.34.0
backend.add(serviceFactory).instanceMetadataService to hold information about a specific backend instance.express dependencies.toString on the default BackendFeatureMeta implementationsfd5d337: Added a new backend.health.headers configuration that can be used to set additional headers to include in health check responses.
BREAKING CONSUMERS: As part of this change the createHealthRouter function exported from @backstage/backend-defaults/rootHttpRouter now requires the root config service to be passed through the config option.
3f34ea9: Throttles Bitbucket Server API calls
de6f280: BREAKING Upgraded @keyv/redis and keyv packages to resolve a bug related to incorrect resolution of cache keys.
This is a breaking change for clients using the redis store for cache with useRedisSets option set to false since cache keys will be calculated differently (without the sets:namespace: prefix). For clients with default configuration (or useRedisSets set to false) the cache keys will stay the same, but since @keyv/redis library no longer supports redis sets they won't be utilised anymore.
If you were using useRedisSets option in configuration make sure to remove it from app-config.yaml:
backend:
cache:
store: redis
connection: redis://user:[email protected]:6379
- useRedisSets: false
29180ec: BREAKING PRODUCERS: The LifecycleMiddlewareOptions.startupRequestPauseTimeout has been removed. Use the backend.lifecycle.startupRequestPauseTimeout setting in your app-config.yaml file to customize how the createLifecycleMiddleware function should behave. Also the root config service is required as an option when calling the createLifecycleMiddleware function:
- createLifecycleMiddleware({ lifecycle, startupRequestPauseTimeout })
+ createLifecycleMiddleware({ config, lifecycle })
277092a: Implemented AzureBlobStorageUrlReader to read from the url of committed location from the entity provider
18a2c00: All middleware used by the default coreServices.http is now exported for use by custom implementations.
@opentelemetry/api to ^1.9.0.PluginTokenHandler and pluginTokenHandlerDecoratorServiceRef to allow for custom decoration of the plugin token handler without having to re-implement the entire handler.AuthService implementation will no longer forward verification errors to the caller, and instead log them as warnings.DefaultHttpAuthService to allow for custom token extraction logic.clf to utc.authServiceFactory now correctly depends on the plugin scoped Logger services rather than the root scoped one.connection.type: cloudsql in database client for usage with @google-cloud/cloud-sql-connector and iam authDefaultRootLifecycleService.addBeforeShutdownHook method, and updates DefaultRootHttpRouterService and DefaultRootHealthService to listen to that event to stop accepting traffic and close service connections.stoppable library on the DefaultRootHttpRouterService as Node's native http server close method already drains requests.instanceMetadataService to hold information about a specific backend instance.eef3ef1: Removed unused express dependencies.
0e9c9fa: The RootLifecycleService now has a new addBeforeShutdownHook method, and hooks added through this method will run immediately when a termination event is received.
The backend will not proceed with the shutdown and run the Shutdown hooks until all BeforeShutdown hooks have completed.
Updated dependencies
de6f280: BREAKING Upgraded @keyv/redis and keyv packages to resolve a bug related to incorrect resolution of cache keys.
This is a breaking change for clients using the redis store for cache with useRedisSets option set to false since cache keys will be calculated differently (without the sets:namespace: prefix). For clients with default configuration (or useRedisSets set to false) the cache keys will stay the same, but since @keyv/redis library no longer supports redis sets they won't be utilised anymore.
If you were using useRedisSets option in configuration make sure to remove it from app-config.yaml:
backend:
cache:
store: redis
connection: redis://user:[email protected]:6379
- useRedisSets: false
RootLifecycleService.addBeforeShutdownHook method.queryEntities method where errors were not being handled properly.generate-patch command will now add a single resolution entry for all versions of the patched package, rather than separate entries for each version query.CatalogTable title to use properly capitalized Kind facets (e.g. 'Component' instead of 'component')catalog.disableRelationsCompatibility configuration option that avoids JSON deserialization and serialization if possible when reading entities. This significantly reduces the memory usage of the catalog, and slightly increases performance, but it removes the backwards compatibility processing that ensures that both entity.relation[].target and entity.relation[].targetRef are present in returned entities./entities in terms of queryEntities to not run into memory and performance problems on large catalogs@opentelemetry/api to ^1.9.0.by-query endpoint could return nulls for entities that were not yet stitched./entities/by-name/:kind/:namespace/:name using getEntitiesByRefsanyOf and allOf nodes when there's only a single entry within themrestrictUsersToGroup should use the entire group path when getting memberscatalogServiceMock return type to match both CatalogService and CatalogApiEntityKindFilter to include a label field with the properly capitalized Kind facet stringEntityOwnerPicker to reset scrolling when more elements are loaded.<CatalogFilterLayout.Filters /> would re-render its children on page load for smaller screens, potentially leading to unnecessary additional backend requests.EntityOwnerPicker component failed to load when the mode prop was set to owners-only. In this mode, the EntityOwnerPicker does not load details about the owners, such as displayName or title. To display these details, use mode=all instead.@types/express version range from * to ^4.17.6.1577511: Allow configuring a timeout for event bus polling requests. This can be set like so in your app-config:
events:
notifyTimeoutMs: 30000
Updated dependencies
/notifications endpoints. Be sure to update the notifications plugin backend before deploying this frontend plugin change./health endpoint, switch to using the built-in endpoint instead./notifications instead.EventsService@opentelemetry/api to ^1.9.0.formDecorators to enable secret collection and mutations to the parameters for scaffolder taskstemplateManagementPermission was not being exposed through the /permissions/metadata endpoint.gitbeaker library to version 41. As part of this, the scopes parameter to the gitlab:projectDeployToken:create is no longer optional, so you will have to pass it a value (for example ['read_repository']).versions:bump.@types packages when generating dependency entries
during templatingcss-loader@v7 bumphtml-webpack-plugin to fix the htmlPluginExports.getCompilationHooks is not a function error when using experimental Rspack.@backstage/cli/config/prettier as a replacement for @spotify/prettier-config, but with the same configuration.@module-federation/enhanced to ^0.8.0.rollup to avoid issues with build output when running backstage-cli package build.--output-file option from ESLint to package lint and repo lint commands.package.json exports (when present) to complete the list of exposed modules.
This allows, for example, using exported alpha definitions through module federation.@oriflame/backstage-plugin-score-card to ^0.9.0.backstage.json file@backstage/cli/config/prettier instead of @spotify/prettier-config.error.cause.stack in addition to error.stack when trimming stack traces from serialized errors./ and /index.html paths.jwks endpoint returning invalid data with firestoreincludeGrantedScopes in order to persist scopes across refresh calls@types/express version range from * to ^4.17.6.GithubEntityProvider if none is provided@opentelemetry/api to ^1.9.0.IncrementalCatalogBuilderdev/index.ts entrypoint for yarn start79a06f6: Clarified purpose of subscriber ID in TSDoc for EventsServiceSubscribeOptions.
1577511: Allow configuring a timeout for event bus polling requests. This can be set like so in your app-config:
events:
notifyTimeoutMs: 30000
Updated dependencies
7248f3b: Added a new Quick Start Card to plugin-home, which can display basic info to get users the info they need to onboard to the Catalog.
import { QuickStartCard } from '@backstage/plugin-home';
<QuickStartCard
title="Onboarding to the Catalog"
modalTitle="Onboarding Quick Start"
docsLinkTitle="Learn more with getting started docs"
docsLink="https://backstage.io/docs/getting-started"
image={
}
cardDescription="Backstage system model will help you create new entities"
video={
<video
controls
preload="auto"
poster={"./videoPoster.png"}
>
<source src={"OnboardingDemo.mp4"} type="video/mp4" />
</video>
}
downloadImage={
<Button
href={QuickStartPDF}
target={'_blank'}
download={true}
>
Download infographic button
</Button>
}
/>
See the storybook examples
9951ba4: Updated dependency @rjsf/utils to 5.23.1.
Updated dependency @rjsf/core to 5.23.1.
Updated dependency @rjsf/material-ui to 5.23.1.
Updated dependency @rjsf/validator-ajv8 to 5.23.1.
Updated dependencies
@rjsf/utils to 5.23.1.
Updated dependency @rjsf/core to 5.23.1.
Updated dependency @rjsf/material-ui to 5.23.1.
Updated dependency @rjsf/validator-ajv8 to 5.23.1.dev/index.ts entrypoint for yarn start@types/express version range from * to ^4.17.6.createPermissionIntegrationRouter function now detects and prevents the exposure of duplicate permissions.formDecorators to enable secret collection and mutations to the parameters for scaffolder tasks@rjsf/utils to 5.23.1.
Updated dependency @rjsf/core to 5.23.1.
Updated dependency @rjsf/material-ui to 5.23.1.
Updated dependency @rjsf/validator-ajv8 to 5.23.1.FormFieldBlueprint are now collected in the useCustomFieldExtensions hook, enabling them for use in the scaffolder.github:environment:create action to request and use a token when resolving reviewer entity refs from the Backstage catalog.formDecorators to enable secret collection and mutations to the parameters for scaffolder tasksformDecorators to enable secret collection and mutations to the parameters for scaffolder tasksflatted to 3.3.2.@rjsf/utils to 5.23.1.
Updated dependency @rjsf/core to 5.23.1.
Updated dependency @rjsf/material-ui to 5.23.1.
Updated dependency @rjsf/validator-ajv8 to 5.23.1.FormFieldBlueprint are now collected in the useCustomFieldExtensions hook, enabling them for use in the scaffolder.@backstage/backend-defaults.@types/express version range from * to ^4.17.6.reduceDependency hook to replace backstage:^ versions. This
makes the same yarn.lock file valid whether or not the plugin is installed.