docs/releases/v1.26.0-changelog.md
10327fb: Deprecate the getPath option for the httpRouterServiceFactory and more generally the ability to configure plugin API paths to be anything else than /api/:pluginId/. Requests towards /api/* that do not match an installed plugin will also no longer be handled by the index router, typically instead returning a 404.
2c50516: Fix auth cookie issuance for split backend deployments by preferring to set it against the request target host instead of origin
7e584d6: Fixed a bug where expired cookies would not be refreshed.
1a20b12: Make the auth service create and validate dedicated OBO tokens, containing the user identity proof.
00fca28: Implemented support for external access using both the legacy token form and static tokens.
d5a1fe1: Replaced winston logger with LoggerService
bce0879: Service-to-service authentication has been improved.
Each plugin now has the capability to generate its own signing keys for token issuance. The generated public keys are stored in a database, and they are made accessible through a newly created endpoint: /.backstage/auth/v1/jwks.json.
AuthService can now issue tokens with a reduced scope using the getPluginRequestToken method. This improvement enables plugins to identify the plugin originating the request.
54f2ac8: Added initialization option to createServiceFactory which defines the initialization strategy for the service. The default strategy mimics the current behavior where plugin scoped services are initialized lazily by default and root scoped services are initialized eagerly.
56f81b5: Improved error message thrown by AuthService when requesting a token for plugins that don't support the new authentication tokens.
25ea3d2: Minor internal restructuring
d62bc51: Add support for limited user tokens by using user identity proof provided by the auth backend.
c884b9a: Automatically creates a get and delete cookie endpoint when a user-cookie policy is added.
Updated dependencies
2ce31b3: The default environment variable substitution function will now trim whitespace characters from the substituted value. This alleviates bugs where whitespace characters are mistakenly included in environment variables.
If you depend on the old behavior, you can override the default substitution function with your own, for example:
ConfigSources.default({
substitutionFunc: async name => process.env[name],
});
99bab65: Support parameter substitution for environment variables
2bd291e: Adds a lint rule to repo schema openapi lint to enforce allowReserved for all parameters. To fix this, simply add allowReserved: true to your parameters, like so
/v1/todos:
get:
operationId: ListTodos
# ...
parameters:
- name: entity
in: query
+ allowReserved: true
schema:
type: string
cfdc5e7: Adds two new commands, repo schema openapi fuzz and package schema openapi fuzz for fuzzing your plugins documented with OpenAPI. This can help find bugs in your application code through the use of auto-generated schema-compliant inputs. For more information on the underlying library this leverages, take a look at the docs.
@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.azure-easyauth provider. Note that as part of this change the default provider ID has been changed from easyAuth to azureEasyAuth, which means that if you switch to this new module you need to update your app config as well as the provider prop of the ProxiedSignInPage in the frontend.@backstage/plugin-auth-backend-module-bitbucket-provider module package.c884b9a: BREAKING: Removed the path option from CookieAuthRefreshProvider and useCookieAuthRefresh.
A new CookieAuthRedirect component has been added to redirect a public app bundle to the protected one when using the app-backend with a separate public entry point.
@testing-library/react to ^15.0.0.LoggerServiceisApiType() to EntitySwitch routing functions.<AboutCard> that is visible and links to the scaffolder template corresponding to the entity's backstage.io/source-template annotation, if present.entityPresentationApi from being set in apps using the new frontend system.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.CatalogTable.columns.createLabelColumn.29c3898: Remove use of EventBroker and EventSubscriber for the GitHub org data providers.
BREAKING CHANGE:
GithubOrgEntityProvider.onEvent made privateGithubOrgEntityProvider.supportsEventTopics removedeventBroker option was removed from GithubMultiOrgEntityProvider.fromConfigGithubMultiOrgEntityProvider.supportsEventTopics removedThis change only impacts users who still use the legacy backend system
and who still use eventBroker as option when creating these
entity providers.
Please pass the EventsService instance as option events instead.
You can find more information at the installation documentation.
LoggerServiceGithubMultiOrgEntityProvider and GithubOrgEntityProvider with EventsService if defined@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.KubernetesProxy now requires the DiscoveryService to be passed to the constuctorLoggerServiceBackstageCredentials were not properly forwarded for all callscredentials from undefined.@types/http-proxy-middleware to ^1.0.0.minimal_severity to minimumSeverity.@testing-library/react to ^15.0.0.minimal_severity to minimumSeverity.preProcess and postProcess.
Additionally, processor name is now required to be returned by getName.
A new processor functionality processOptions was added to process options before sending the notification.run:yeoman scaffolder action.search.elasticsearch config section exists.LoggerService@testing-library/react to ^15.0.0.listPublicServiceKeys() in the AuthService returned by createLegacyAuthAdapters.ServerTokenManager also reads the new backend.auth.externalAccess settingspullOptions to DockerContainerRunner#runContainer method to pass down options when pulling an image.logStream it receives as input.PackageRole type explicitlylistPublicServiceKeys to AuthService.initialization option to createServiceFactory which defines the initialization strategy for the service. The default strategy mimics the current behavior where plugin scoped services are initialized lazily by default and root scoped services are initialized eagerly.issueUserCookie method of the HttpAuthService are no longer required to represent a user principal.LoggerServicestartTestBackend will now add placeholder plugins when a modules are provided without their parent plugin.listPublicServiceKeys method for AuthService.CatalogClient::getEntities method to only sort the resulting entities in case no order-parameter is provided.c884b9a: Fix the bundle public subpath configuration.
e3c213e: Add the deprecation plugin to the default linter setup, switched off.
This allows to disable deprecation warnings for backstage-cli repo list-deprecations with inline comments.
4946f03: Updated dependency webpack-dev-server to ^5.0.0.
6b5ddbe: Fix the backend plugin to use correct plugin id
4fecffc: When building the frontend app public assets are now also copied to the public dist directory when in use.
ed9260f: Added versions:migrate command to help move packages to the new @backstage-community namespace
Updated dependencies
versions:migrate command to help move packages to the new @backstage-community namespaceapp-backend with a separate public and protected bundles. When in protected mode the app will now continuously refresh the session cookie, as well as clear the cookie if the user signs out.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@backstage/core-app-api to dev dependencies.@testing-library/react to ^15.0.0.undefined class name used at MarkdownContent if no custom class name was provided.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.TabUI providing functionality like copy link or open in new tab.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.Component + Prop@backstage/no-top-level-material-ui-4-imports lint ruleapp-backend with a separate public and protected bundles. When in protected mode the app will now continuously refresh the session cookie, as well as clear the cookie if the user signs out.useRouteRef hook.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.useRouteRef, which wasn't handling optional external route refs correctly.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@types/http-proxy-middleware to ^1.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerServiceazure-easyauth provider to use the implementation from @backstage/plugin-auth-backend-module-azure-easyauth-provider.@backstage/plugin-auth-backend-module-bitbucket-provider module package./v1/userinfo endpoint, which is now able to parse and return the sub and ent claims from a Backstage user token.@backstage/plugin-auth-backend-module-cloudflare-access-providerf286d59: Added support for AWS GovCloud (US) regions
30f5a51: Added authModuleAwsAlbProvider as a default export.
It can now be used like this in your backend: backend.add(import('@backstage/plugin-auth-backend-module-aws-alb-provider'));
Updated dependencies
tokenTypes export with constants for various Backstage token types.95b0573: getAllTeams now accepts an optional limit parameter which can be used to return more than the default limit of 100 teams from the Azure DevOps API
pullRequestOptions have been equipped with teamsLimit so that the property can be used with getAllTeams
4d895b3: Fixed bug in EntityPageAzurePipeline component where build definition annotation used for viewing pipelines
abfbcfc: Updated dependency @testing-library/react to ^15.0.0.
cb1e3b0: Updated dependency @testing-library/dom to ^10.0.0.
Updated dependencies
95b0573: getAllTeams now accepts an optional limit parameter which can be used to return more than the default limit of 100 teams from the Azure DevOps API
pullRequestOptions have been equipped with teamsLimit so that the property can be used with getAllTeams
d5a1fe1: Replaced winston logger with LoggerService
c7c4053: Fixed a bug where the azureDevOps.token was not truly optional
Updated dependencies
95b0573: getAllTeams now accepts an optional limit parameter which can be used to return more than the default limit of 100 teams from the Azure DevOps API
pullRequestOptions have been equipped with teamsLimit so that the property can be used with getAllTeams
Updated dependencies
@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5LoggerServiceLoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.cfdc5e7: Fixes an issue where /analyze-location would incorrectly throw a 500 error on an invalid url.
d5a1fe1: Replaced winston logger with LoggerService
c52f7ac: Make entity collection errors a little quieter in the logs.
Instead of logging a warning line when an entity has an error during processing, it will now instead emit an event on the event broker.
This only removes a single log line, however it is possible to
add the log line back if it is required by subscribing to the
CATALOG_ERRORS_TOPIC as shown below.
env.eventBroker.subscribe({
supportsEventTopics(): string[] {
return [CATALOG_ERRORS_TOPIC];
},
async onEvent(
params: EventParams<{
entity: string;
location?: string;
errors: Array<Error>;
}>,
): Promise<void> {
const { entity, location, errors } = params.eventPayload;
for (const error of errors) {
env.logger.warn(error.message, {
entity,
location,
});
}
},
});
Updated dependencies
LoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerServiceLoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@types/yup to ^0.32.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports in the home-react plugin to migrate the Material UI imports.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@types/testing-library__jest-dom to ^6.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.BackstageCredentials were not properly forwarded for all callsno-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerServiceLoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.LoggerServicepreProcess and postProcess.
Additionally, processor name is now required to be returned by getName.
A new processor functionality processOptions was added to process options before sending the notification.preProcess and postProcess.
Additionally, processor name is now required to be returned by getName.
A new processor functionality processOptions was added to process options before sending the notification.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.no-top-level-material-ui-4-imports ESLint rule to aid with the migration to Material UI v5@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerServiceLoggerServiceServerPermissionClient to generate an invalid token for authorizing permissions against the permission backend.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@types/http-proxy-middleware to ^1.0.0.@types/yup to ^0.32.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.MyGroupsPicker if provided@testing-library/react to ^15.0.0.json-schema-library to ^9.0.0.@testing-library/dom to ^10.0.0.catalog:write action now automatically adds a backstage.io/template-source annotation, indicating which Scaffolder template was used to create the entity.publish:bitbucketServer scaffolder action & improve related testspublish:gerrit:review scaffolder action & improve related testsLoggerServicepublish:gitlab:merge-request scaffolder action & improve related testsgitlab:group:ensureExists scaffolder action & improve related testsgitlab:projectDeployToken:create scaffolder action & improve related testsabfbcfc: Updated dependency @testing-library/react to ^15.0.0.
87d2eb8: Updated dependency json-schema-library to ^9.0.0.
cb1e3b0: Updated dependency @testing-library/dom to ^10.0.0.
0e692cf: Added ESLint rule no-top-level-material-ui-4-imports to migrate the Material UI imports.
df99f62: The value sent on the create analytics event (fired when a Scaffolder template is executed) is now set to the number of minutes saved by executing the template. This value is derived from the backstage.io/time-saved annotation on the template entity, if available.
Note: the create event is now captured in the <Workflow> component. If you are directly making use of the alpha-exported <Stepper> component, an analytics create event will no longer be captured on your behalf.
Updated dependencies
@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerServiceLoggerServicecf163a5: Enable module only on supported databases
Also pass logger to the service
Updated dependencies
LoggerServiceLoggerServiceLoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerServiceLoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.TechdocsPreparerExtensionPoint@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.TechdocsPreparerExtensionPointno-top-level-material-ui-4-imports in the Techdocs-react plugin to migrate the Material UI imports.@testing-library/react to ^15.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.LoggerService@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.@testing-library/react to ^15.0.0.@testing-library/dom to ^10.0.0.