Release v1.24.0
@backstage/backend-app-api@0.6.0
Minor Changes
-
4a3d434: BREAKING: For users that have migrated to the new backend system, incoming requests will now be rejected if they are not properly authenticated (e.g. with a Backstage bearer token or a backend token). Please see the Auth Service Migration tutorial for more information on how to circumvent this behavior in the short term and how to properly leverage it in the longer term.
Added service factories for the new
auth
,httpAuth
, anduserInfo
services that were created as part of BEP-0003.
Patch Changes
- 999224f: Bump dependency
minimatch
to v9 - 81e0120: Fixed an issue where configuration schema for the purpose of redacting secrets from logs was not being read correctly.
- 15fda44: Provide some sane defaults for
WinstonLogger.create
making some of the arguments optional - 0502d82: Updated the
permissionsServiceFactory
to forward theAuthService
to the implementation. - 9d91128: Add the possibility to disable watching files in the new backend system
- a5d341e: Adds an initial rate-limiting implementation so that any incoming requests that have a
'none'
principal are rate-limited automatically. - 9802004: Made the
DefaultUserInfoService
claims check stricter - f235ca7: Make sure to not filter out schemas in
createConfigSecretEnumerator
- af5f7a6: The experimental feature discovery service exported at the
/alpha
sub-path will no longer attempt to load packages that are not Backstage backend packages. - Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/plugin-auth-node@0.4.9
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/config-loader@1.7.0
- @backstage/backend-tasks@0.5.19
- @backstage/plugin-permission-node@0.7.25
- @backstage/cli-node@0.2.4
- @backstage/cli-common@0.1.13
- @backstage/types@1.1.1
@backstage/cli@0.26.0
Minor Changes
- 0d72065: The backend devlopment server transpilation has been replaced with a simplified solution based on SWC, which is already the transpiler used for tests. This fixed an issue where never versions of the
tsx
dependency had a new contract for signalling dependencies, breaking watch mode. This change fixed file watches as well as enables sourcemaps.
Patch Changes
- fe1a55e: Extend option to minify generated code to the
backend
package. - b0875e5: Fixed a bug that could cause the
build-workspace
command to fail when invoked with--alwaysYarnPack
enabled in environments with limited resources. - bdf9ec1: New backend plugins with cli are now created using the new backend system
- cadbb82: Added a
EXPERIMENTAL_LAZY_COMPILATION
flag, which enables the experimental Webpack lazy compilation option in frontend builds. - 999224f: Bump dependency
minimatch
to v9 - 1bd4596: Removed the
ts-node
dev dependency. - 8dce287: Fix prettier issues on default plugins & module templates
- f86e34c: Removed unused
replace-in-file
dependency - 2398c7c: Updated dependency
@spotify/prettier-config
to^15.0.0
. Updated dependency@spotify/eslint-config-base
to^15.0.0
. Updated dependency@spotify/eslint-config-react
to^15.0.0
. Updated dependency@spotify/eslint-config-typescript
to^15.0.0
. - f4404e5: Add .ico import support
- f39dfd3: Tweak the descriptions of the CLI templates
- Updated dependencies
- @backstage/integration@1.9.1
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/eslint-plugin@0.1.6
- @backstage/config-loader@1.7.0
- @backstage/cli-node@0.2.4
- @backstage/catalog-model@1.4.5
- @backstage/cli-common@0.1.13
- @backstage/release-manifests@0.0.11
- @backstage/types@1.1.1
@backstage/config@1.2.0
Minor Changes
- 50cf9df: The
ConfigReader
now treatsnull
values as present but explicitly undefined, meaning it will not fall back to the next level of configuration.
Patch Changes
- Updated dependencies
- @backstage/errors@1.2.4
- @backstage/types@1.1.1
@backstage/config-loader@1.7.0
Minor Changes
- db8358d: Forward
null
values read from configuration files in configuration data, rather than treating them as an absence of config.
Patch Changes
- Updated dependencies
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/cli-common@0.1.13
- @backstage/types@1.1.1
@backstage/repo-tools@0.7.0
Minor Changes
- 8bfcc50: Fix knip-report command to send 1 exit status in case of fail
Patch Changes
- 999224f: Bump dependency
minimatch
to v9 - 1bd4596: Removed the
ts-node
dev dependency. - Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/errors@1.2.4
- @backstage/cli-node@0.2.4
- @backstage/catalog-model@1.4.5
- @backstage/cli-common@0.1.13
@backstage/plugin-auth-backend@0.22.0
Minor Changes
- 293c835: Add support for Service Tokens to Cloudflare Access auth provider
- 492fe83: BREAKING: The
CatalogIdentityClient
constructor now also requires thediscovery
service to be forwarded from the plugin environment. This is part of the migration to support the new auth services, which has also been done for thecreateRouter
function.
Patch Changes
- 999224f: Bump dependency
minimatch
to v9 - 7c29e7f: Fixed refresh scope to match start method in OneLogin provider.
- 2af5354: Bump dependency
jose
to v5 - 38af71a: Updated dependency
google-auth-library
to^9.0.0
. - 0fb419b: Updated dependency
uuid
to^9.0.0
. Updated dependency@types/uuid
to^9.0.0
. - fa7ea3f: Internal refactor to break out how the router is constructed
- Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/plugin-auth-node@0.4.9
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-auth-backend-module-oidc-provider@0.1.4
- @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.7
- @backstage/plugin-auth-backend-module-microsoft-provider@0.1.9
- @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.5
- @backstage/plugin-catalog-node@1.8.0
- @backstage/catalog-client@1.6.1
- @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.9
- @backstage/plugin-auth-backend-module-google-provider@0.1.11
- @backstage/plugin-auth-backend-module-atlassian-provider@0.1.6
- @backstage/plugin-auth-backend-module-github-provider@0.1.11
- @backstage/plugin-auth-backend-module-gitlab-provider@0.1.11
- @backstage/plugin-auth-backend-module-oauth2-provider@0.1.11
- @backstage/plugin-auth-backend-module-okta-provider@0.0.7
- @backstage/catalog-model@1.4.5
- @backstage/types@1.1.1
@backstage/plugin-auth-backend-module-guest-provider@0.1.0
Minor Changes
-
1bedb23: Adds a new guest provider that maps guest users to actual tokens. This also shifts the default guest login to
user:development/guest
to reduce overlap with your production/real data. To change that (or set it back to the old default, use the newauth.providers.guest.userEntityRef
config key) like so,auth:
providers:
guest:
userEntityRef: user:default/guestThis also adds a new property to control the ownership entity refs,
auth:
providers:
guest:
ownershipEntityRefs:
- guests
- development/custom
Patch Changes
- 72dd380: Ensure that the config schema is present
- 50a331b: Fix issue for issuing a token when
guest
user does not exist in catalog - Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/plugin-auth-node@0.4.9
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/catalog-model@1.4.5
@backstage/plugin-azure-devops@0.4.0
Minor Changes
-
9fdb86a: Ability to fetch the README file from a different Azure DevOps path.
Defaults to the current, Azure DevOps default behaviour (
README.md
in the root of the git repo); to use a different path, add the annotationdev.azure.com/readme-path
Example:
dev.azure.com/readme-path: /my-path/README.md
-
a9e7bd6: BREAKING The
AzureDevOpsClient
no longer requiresidentityAPi
but now requiresfetchApi
.Updated to use
fetchApi
as per ADR013 -
3270b1b: Azure DevOps plugin is now integrated with permission framework for its core features, see the https://github.com/backstage/backstage/blob/master/plugins/azure-devops/README.md#permission-framework for more details.
Patch Changes
- b7b0466: Remove the use of the deprecated
customStyles
forAvatar
- 9f19476: Updated README
- Updated dependencies
- @backstage/core-components@0.14.1
- @backstage/errors@1.2.4
- @backstage/plugin-catalog-react@1.11.0
- @backstage/plugin-azure-devops-common@0.4.0
- @backstage/catalog-model@1.4.5
- @backstage/core-compat-api@0.2.1
- @backstage/core-plugin-api@1.9.1
- @backstage/frontend-plugin-api@0.6.1
- @backstage/plugin-permission-react@0.4.21
@backstage/plugin-azure-devops-backend@0.6.0
Minor Changes
-
9fdb86a: Ability to fetch the README file from a different Azure DevOps path.
Defaults to the current, Azure DevOps default behaviour (
README.md
in the root of the git repo); to use a different path, add the annotationdev.azure.com/readme-path
Example:
dev.azure.com/readme-path: /my-path/README.md
-
3270b1b: Azure DevOps plugin is now integrated with permission framework for its core features, see the https://github.com/backstage/backstage/blob/master/plugins/azure-devops/README.md#permission-framework for more details.
Patch Changes
- 4467036: Allow unauthenticated access to health check endpoint.
- 2f77e24: The
azureDevOps
configuration section is now optional and theazureDevOps.token
has been deprecated. Useintegrations.azure
instead, see the Azure DevOps Locations documentation for more details. - Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/integration@1.9.1
- @backstage/plugin-auth-node@0.4.9
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-azure-devops-common@0.4.0
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-catalog-node@1.8.0
- @backstage/plugin-permission-node@0.7.25
- @backstage/catalog-model@1.4.5
- @backstage/plugin-catalog-common@1.0.22
@backstage/plugin-azure-devops-common@0.4.0
Minor Changes
-
9fdb86a: Ability to fetch the README file from a different Azure DevOps path.
Defaults to the current, Azure DevOps default behaviour (
README.md
in the root of the git repo); to use a different path, add the annotationdev.azure.com/readme-path
Example:
dev.azure.com/readme-path: /my-path/README.md
Patch Changes
- 3270b1b: Azure DevOps plugin is now integrated with permission framework for its core features, see the https://github.com/backstage/backstage/blob/master/plugins/azure-devops/README.md#permission-framework for more details.
- Updated dependencies
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-catalog-common@1.0.22
@backstage/plugin-azure-sites-backend@0.3.0
Minor Changes
- 6b802a2: BREAKING: The
createRouter
method now requires thediscovery
service to be forwarded from the plugin environment. This is part of the migration to support new auth services. - acf3e00: Azure Sites list now hides the internal/microsoft only
hidden-
tags from the list of tags that are returned. Updated the log endpoint to /logstream-quickstart rather than just /logstream to stream logs in the Azure Portal UI.
Patch Changes
- 2bd1410: Removed unused dependencies
- 4467036: Allow unauthenticated access to health check endpoint.
- 85db926: Added new backend system for the Azure Sites backend plugin
- Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-catalog-node@1.8.0
- @backstage/catalog-client@1.6.1
- @backstage/plugin-permission-node@0.7.25
- @backstage/plugin-azure-sites-common@0.1.3
@backstage/plugin-catalog@1.18.0
Minor Changes
- 72b8827: Adds a title to the
PaginatedCatalogTable
for better visibility on what you're viewing.
Patch Changes
- 50b6687: Resolved an issue where the
PaginatedCatalogTable
was not propagating table options to its child table. - 9332425: The entity page extension provided by the
/alpha
plugin now correctly renders the entity 404 page. - 1c0b179: Added the
no-top-level-material-ui-4-imports
ESLint rule to aid with the migration to Material UI v5 - 2ac1630: Added support for passing in custom filters to
CatalogIndexPage
- 298953b: Added support for providing an
initiallySelectedNamespaces
which accepts an array of Namespaces to have selected by default - 6727665: Allow the
spec.target
field to be searchable in the catalog table for locations. Previously, only thespec.targets
field was be searchable. This makes locations generated by providers such as theGithubEntityProvider
searchable in the catalog table. #23098 - Updated dependencies
- @backstage/core-components@0.14.1
- @backstage/errors@1.2.4
- @backstage/integration-react@1.1.25
- @backstage/plugin-catalog-react@1.11.0
- @backstage/plugin-search-common@1.2.11
- @backstage/catalog-client@1.6.1
- @backstage/catalog-model@1.4.5
- @backstage/core-compat-api@0.2.1
- @backstage/core-plugin-api@1.9.1
- @backstage/frontend-plugin-api@0.6.1
- @backstage/types@1.1.1
- @backstage/plugin-catalog-common@1.0.22
- @backstage/plugin-permission-react@0.4.21
- @backstage/plugin-scaffolder-common@1.5.1
- @backstage/plugin-search-react@1.7.7
@backstage/plugin-catalog-backend@1.18.0
Minor Changes
- df12231: Allow setting EntityDataParser using CatalogModelExtensionPoint
- 15ba00f: Migrated to support new auth services. The
CatalogBuilder.create
method now accepts adiscovery
option, which is recommended to forward from the plugin environment, as it will otherwise fall back to use theHostDiscovery
implementation.
Patch Changes
- 2bd1410: Removed unused dependencies
- 999224f: Bump dependency
minimatch
to v9 - 6f830bb: Allow passing optional filter to
getEntitiesByRefs
- 0fb419b: Updated dependency
uuid
to^9.0.0
. Updated dependency@types/uuid
to^9.0.0
. - b65788b: Move @backstage/repo-tools to dev dependencies
- 280edeb: Add index for original value in search table for faster entity facet response
- dad018f: Do not fail on stitching when the entity contains
null
values associated to deeply nested or long keys. - Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-common@0.21.4
- @backstage/integration@1.9.1
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-search-backend-module-catalog@0.1.18
- @backstage/plugin-catalog-node@1.8.0
- @backstage/catalog-client@1.6.1
- @backstage/backend-openapi-utils@0.1.7
- @backstage/backend-tasks@0.5.19
- @backstage/plugin-permission-node@0.7.25
- @backstage/catalog-model@1.4.5
- @backstage/types@1.1.1
- @backstage/plugin-catalog-common@1.0.22
@backstage/plugin-catalog-backend-module-bitbucket-cloud@0.2.0
Minor Changes
-
9e527c9: BREAKING CHANGE: Migrates the
BitbucketCloudEntityProvider
to use theEventsService
; fix new backend system support.BitbucketCloudEntityProvider.fromConfig
acceptsevents: EventsService
as optional argument to itsoptions
. With providedevents
, the event-based updates/refresh will be available. However, theEventSubscriber
interface was removed including itssupportsEventTopics()
andonEvent(params)
.The event subscription happens on
connect(connection)
if theevents
is available.Migration:
const bitbucketCloudProvider = BitbucketCloudEntityProvider.fromConfig(
env.config,
{
catalogApi: new CatalogClient({ discoveryApi: env.discovery }),
+ events: env.events,
logger: env.logger,
scheduler: env.scheduler,
tokenManager: env.tokenManager,
},
);
- env.eventBroker.subscribe(bitbucketCloudProvider);New Backend System:
Before this change, using this module with the new backend system was broken. Now, you can add the catalog module for Bitbucket Cloud incl. event support backend. Event support will always be enabled. However, no updates/refresh will happen without receiving events.
backend.add(
import('@backstage/plugin-catalog-backend-module-bitbucket-cloud/alpha'),
);
Patch Changes
- 0fb419b: Updated dependency
uuid
to^9.0.0
. Updated dependency@types/uuid
to^9.0.0
. - Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-common@0.21.4
- @backstage/integration@1.9.1
- @backstage/config@1.2.0
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-catalog-node@1.8.0
- @backstage/catalog-client@1.6.1
- @backstage/backend-tasks@0.5.19
- @backstage/catalog-model@1.4.5
- @backstage/plugin-bitbucket-cloud-common@0.2.17
- @backstage/plugin-catalog-common@1.0.22
@backstage/plugin-catalog-backend-module-unprocessed@0.4.0
Minor Changes
-
924c1ac: BREAKING- the
@backstage/plugin-catalog-backend-module-unprocessed
constructor is now private, and have been moved to using the static.create
method instead which now requires aPermissionService
andDiscoveryService
.If you're using this module in the old backend system you'll need to migrate to using the
.create
method and pass in the new required parameters inpackages/backend/src/plugins/catalog.ts
.No changes should be required if you're using the new backend system.
- const unprocessed = new UnprocessedEntitiesModule(
- await env.database.getClient(),
- router,
- );
+ const unprocessed = UnprocessedEntitiesModule.create({
+ database: await env.database.getClient(),
+ router,
+ permissions: env.permissions,
+ discovery: env.discovery,
+ });
unprocessed.registerRoutes();Adds the ability to delete an unprocessed entity from the
refresh_state
table. This change requires enabling permissions for your Backstage instance.
Patch Changes
- 2bd1410: Removed unused dependencies
- Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/plugin-auth-node@0.4.9
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-permission-node@0.7.25
- @backstage/plugin-catalog-unprocessed-entities-common@0.0.1
- @backstage/catalog-model@1.4.5
@backstage/plugin-catalog-node@1.8.0
Minor Changes
- df12231: Allow setting EntityDataParser using CatalogModelExtensionPoint
Patch Changes
- Updated dependencies
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/plugin-permission-common@0.7.13
- @backstage/catalog-client@1.6.1
- @backstage/plugin-permission-node@0.7.25
- @backstage/catalog-model@1.4.5
- @backstage/types@1.1.1
- @backstage/plugin-catalog-common@1.0.22
@backstage/plugin-catalog-react@1.11.0
Minor Changes
- 72b8827: Number of results is now directly added as the field
totalItems
onuseEntityList
.
Patch Changes
- 930b5c1: Added 'root' and 'label' class keys for EntityAutocompletePicker, EntityOwnerPicker and EntityProcessingStatusPicker
- b2a9926: Adds an argument for which filters should be applied when fetching/counting available values
- a6e237f: Added
DefaultFilters
component - 298953b: Added support for providing an
initiallySelectedNamespaces
which accepts an array of Namespaces to have selected by default - Updated dependencies
- @backstage/core-components@0.14.1
- @backstage/errors@1.2.4
- @backstage/integration-react@1.1.25
- @backstage/plugin-permission-common@0.7.13
- @backstage/catalog-client@1.6.1
- @backstage/catalog-model@1.4.5
- @backstage/core-plugin-api@1.9.1
- @backstage/frontend-plugin-api@0.6.1
- @backstage/types@1.1.1
- @backstage/version-bridge@1.0.7
- @backstage/plugin-catalog-common@1.0.22
- @backstage/plugin-permission-react@0.4.21
@backstage/plugin-catalog-unprocessed-entities@0.2.0
Minor Changes
-
924c1ac: BREAKING- the
@backstage/plugin-catalog-backend-module-unprocessed
constructor is now private, and have been moved to using the static.create
method instead which now requires aPermissionService
andDiscoveryService
.If you're using this module in the old backend system you'll need to migrate to using the
.create
method and pass in the new required parameters inpackages/backend/src/plugins/catalog.ts
.No changes should be required if you're using the new backend system.
- const unprocessed = new UnprocessedEntitiesModule(
- await env.database.getClient(),
- router,
- );
+ const unprocessed = UnprocessedEntitiesModule.create({
+ database: await env.database.getClient(),
+ router,
+ permissions: env.permissions,
+ discovery: env.discovery,
+ });
unprocessed.registerRoutes();Adds the ability to delete an unprocessed entity from the
refresh_state
table. This change requires enabling permissions for your Backstage instance.
Patch Changes
- 2b397fe: Added the
no-top-level-material-ui-4-imports
ESLint rule to aid with the migration to Material UI v5 - Updated dependencies
- @backstage/core-components@0.14.1
- @backstage/errors@1.2.4
- @backstage/catalog-model@1.4.5
- @backstage/core-plugin-api@1.9.1
@backstage/plugin-devtools-backend@0.3.0
Minor Changes
- 4dc5b48: BREAKING: The
createRouter
method now requires thediscovery
service to be forwarded from the plugin environment. This is part of the migration to support new auth services.
Patch Changes
- 2bd1410: Removed unused dependencies
- 4467036: Allow unauthenticated access to health check endpoint.
- 8b0026d: Removed unused
devDependencies
identified in Knip Report - Updated dependencies
- @backstage/backend-common@0.21.4
- @backstage/config@1.2.0
- @backstage/errors@1.2.4
- @backstage/backend-plugin-api@0.6.14
- @backstage/config-loader@1.7.0
- @backstage/plugin-permission-common@0.7.13
- @backstage/plugin-permission-node@0.7.25
- @backstage/cli-common@0.1.13
- @backstage/types@1.1.1
- @backstage/plugin-devtools-common@0.1.9
@backstage/plugin-events-backend@0.3.0
Minor Changes
-
c4bd794: BREAKING CHANGE: Migrate
HttpPostIngressEventPublisher
andeventsPlugin
to useEventsService
.Uses the
EventsService
instead ofEventBroker
atHttpPostIngressEventPublisher
, dropping the use ofEventPublisher
includingsetEventBroker(..)
.Now,
HttpPostIngressEventPublisher.fromConfig
requiresevents: EventsService
as option.const http = HttpPostIngressEventPublisher.fromConfig({
config: env.config,
+ events: env.events,
logger: env.logger,
});
http.bind(eventsRouter);
// e.g. at packages/backend/src/plugins/events.ts
- await new EventsBackend(env.logger)
- .setEventBroker(env.eventBroker)
- .addPublishers(http)
- .start();
// or for other kinds of setups
- await Promise.all(http.map(publisher => publisher.setEventBroker(eventBroker)));eventsPlugin
uses theeventsServiceRef
as dependency. Unsupported (and deprecated) extension point methods will throw an error to prevent unintended behavior.import { eventsServiceRef } from '@backstage/plugin-events-node';
Patch Changes
-
56969b6: Add new
EventsService
as well aseventsServiceRef
for the new backend system.Summary:
- new:
EventsService
,eventsServiceRef
,TestEventsService
- deprecated:
EventBroker
,EventPublisher
,EventSubscriber
,DefaultEventBroker
,EventsBackend
, most parts ofEventsExtensionPoint
(alpha),TestEventBroker
,TestEventPublisher
,TestEventSubscriber
Add the
eventsServiceRef
as dependency to your backend plugins or backend plugin modules.Details:
The previous implementation using the
EventsExtensionPoint
was added in the early stages of the new backend system and does not respect the plugin isolation. This made it not compatible anymore with the new backend system.Additionally, the previous interfaces had some room for simplification, supporting less exposure of internal concerns as well.
Hereby, this change adds a new
EventsService
interface as replacement for the now deprecatedEventBroker
. The new interface does not require anyEventPublisher
orEventSubscriber
interfaces anymore. Instead, it is expected that theEventsService
gets passed into publishers and subscribers, and used internally. There is no need to expose anything of that at their own interfaces.Most parts of
EventsExtensionPoint
(alpha) are deprecated as well and were not usable (by other plugins or their modules) anyway.The
DefaultEventBroker
implementation is deprecated and wraps the newDefaultEventsService
implementation. Optionally, an instance can be passed as argument to allow mixed setups to operate alongside. - new:
-
Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-common@0.21.4
- @backstage/config@1.2.0
- @backstage/backend-plugin-api@0.6.14
@backstage/plugin-events-backend-module-aws-sqs@0.3.0
Minor Changes
-
132d672: BREAKING CHANGE: Migrate
AwsSqsConsumingEventPublisher
and its backend module to useEventsService
.Uses the
EventsService
instead ofEventBroker
atAwsSqsConsumingEventPublisher
, dropping the use ofEventPublisher
includingsetEventBroker(..)
.Now,
AwsSqsConsumingEventPublisher.fromConfig
requiresevents: EventsService
as option.const sqs = AwsSqsConsumingEventPublisher.fromConfig({
config: env.config,
+ events: env.events,
logger: env.logger,
scheduler: env.scheduler,
});
+ await Promise.all(sqs.map(publisher => publisher.start()));
// e.g. at packages/backend/src/plugins/events.ts
- await new EventsBackend(env.logger)
- .setEventBroker(env.eventBroker)
- .addPublishers(sqs)
- .start();
// or for other kinds of setups
- await Promise.all(sqs.map(publisher => publisher.setEventBroker(eventBroker)));eventsModuleAwsSqsConsumingEventPublisher
uses theeventsServiceRef
as dependency, instead ofeventsExtensionPoint
.
Patch Changes
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-common@0.21.4
- @backstage/config@1.2.0
- @backstage/backend-plugin-api@0.6.14
- @backstage/backend-tasks@0.5.19
- @backstage/types@1.1.1
@backstage/plugin-events-backend-module-azure@0.2.0
Minor Changes
-
eff3ca9: BREAKING CHANGE: Migrate
EventRouter
implementations fromEventBroker
toEventsService
.EventRouter
uses the newEventsService
instead of theEventBroker
now, causing a breaking change to its signature.All of its extensions and implementations got adjusted accordingly. (
SubTopicEventRouter
,AzureDevOpsEventRouter
,BitbucketCloudEventRouter
,GerritEventRouter
,GithubEventRouter
,GitlabEventRouter
)Required adjustments were made to all backend modules for the new backend system, now also making use of the
eventsServiceRef
instead of theeventsExtensionPoint
.Migration:
Example for implementations of
SubTopicEventRouter
:import {
EventParams,
+ EventsService,
SubTopicEventRouter,
} from '@backstage/plugin-events-node';
export class GithubEventRouter extends SubTopicEventRouter {
- constructor() {
- super('github');
+ constructor(options: { events: EventsService }) {
+ super({
+ events: options.events,
+ topic: 'github',
+ });
}
+ protected getSubscriberId(): string {
+ return 'GithubEventRouter';
+ }
+
// ...
}Example for a direct extension of
EventRouter
:class MyEventRouter extends EventRouter {
- constructor(/* ... */) {
+ constructor(options: {
+ events: EventsService;
+ // ...
+ }) {
- super();
// ...
+ super({
+ events: options.events,
+ topics: topics,
+ });
}
+
+ protected getSubscriberId(): string {
+ return 'MyEventRouter';
+ }
-
- supportsEventTopics(): string[] {
- return this.topics;
- }
}
Patch Changes
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-plugin-api@0.6.14
@backstage/plugin-events-backend-module-bitbucket-cloud@0.2.0
Minor Changes
-
eff3ca9: BREAKING CHANGE: Migrate
EventRouter
implementations fromEventBroker
toEventsService
.EventRouter
uses the newEventsService
instead of theEventBroker
now, causing a breaking change to its signature.All of its extensions and implementations got adjusted accordingly. (
SubTopicEventRouter
,AzureDevOpsEventRouter
,BitbucketCloudEventRouter
,GerritEventRouter
,GithubEventRouter
,GitlabEventRouter
)Required adjustments were made to all backend modules for the new backend system, now also making use of the
eventsServiceRef
instead of theeventsExtensionPoint
.Migration:
Example for implementations of
SubTopicEventRouter
:import {
EventParams,
+ EventsService,
SubTopicEventRouter,
} from '@backstage/plugin-events-node';
export class GithubEventRouter extends SubTopicEventRouter {
- constructor() {
- super('github');
+ constructor(options: { events: EventsService }) {
+ super({
+ events: options.events,
+ topic: 'github',
+ });
}
+ protected getSubscriberId(): string {
+ return 'GithubEventRouter';
+ }
+
// ...
}Example for a direct extension of
EventRouter
:class MyEventRouter extends EventRouter {
- constructor(/* ... */) {
+ constructor(options: {
+ events: EventsService;
+ // ...
+ }) {
- super();
// ...
+ super({
+ events: options.events,
+ topics: topics,
+ });
}
+
+ protected getSubscriberId(): string {
+ return 'MyEventRouter';
+ }
-
- supportsEventTopics(): string[] {
- return this.topics;
- }
}
Patch Changes
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-plugin-api@0.6.14
@backstage/plugin-events-backend-module-gerrit@0.2.0
Minor Changes
-
eff3ca9: BREAKING CHANGE: Migrate
EventRouter
implementations fromEventBroker
toEventsService
.EventRouter
uses the newEventsService
instead of theEventBroker
now, causing a breaking change to its signature.All of its extensions and implementations got adjusted accordingly. (
SubTopicEventRouter
,AzureDevOpsEventRouter
,BitbucketCloudEventRouter
,GerritEventRouter
,GithubEventRouter
,GitlabEventRouter
)Required adjustments were made to all backend modules for the new backend system, now also making use of the
eventsServiceRef
instead of theeventsExtensionPoint
.Migration:
Example for implementations of
SubTopicEventRouter
:import {
EventParams,
+ EventsService,
SubTopicEventRouter,
} from '@backstage/plugin-events-node';
export class GithubEventRouter extends SubTopicEventRouter {
- constructor() {
- super('github');
+ constructor(options: { events: EventsService }) {
+ super({
+ events: options.events,
+ topic: 'github',
+ });
}
+ protected getSubscriberId(): string {
+ return 'GithubEventRouter';
+ }
+
// ...
}Example for a direct extension of
EventRouter
:class MyEventRouter extends EventRouter {
- constructor(/* ... */) {
+ constructor(options: {
+ events: EventsService;
+ // ...
+ }) {
- super();
// ...
+ super({
+ events: options.events,
+ topics: topics,
+ });
}
+
+ protected getSubscriberId(): string {
+ return 'MyEventRouter';
+ }
-
- supportsEventTopics(): string[] {
- return this.topics;
- }
}
Patch Changes
- 2bd1410: Removed unused dependencies
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/backend-plugin-api@0.6.14
@backstage/plugin-events-backend-module-github@0.2.0
Minor Changes
-
eff3ca9: BREAKING CHANGE: Migrate
EventRouter
implementations fromEventBroker
toEventsService
.EventRouter
uses the newEventsService
instead of theEventBroker
now, causing a breaking change to its signature.All of its extensions and implementations got adjusted accordingly. (
SubTopicEventRouter
,AzureDevOpsEventRouter
,BitbucketCloudEventRouter
,GerritEventRouter
,GithubEventRouter
,GitlabEventRouter
)Required adjustments were made to all backend modules for the new backend system, now also making use of the
eventsServiceRef
instead of theeventsExtensionPoint
.Migration:
Example for implementations of
SubTopicEventRouter
:import {
EventParams,
+ EventsService,
SubTopicEventRouter,
} from '@backstage/plugin-events-node';
export class GithubEventRouter extends SubTopicEventRouter {
- constructor() {
- super('github');
+ constructor(options: { events: EventsService }) {
+ super({
+ events: options.events,
+ topic: 'github',
+ });
}
+ protected getSubscriberId(): string {
+ return 'GithubEventRouter';
+ }
+
// ...
}Example for a direct extension of
EventRouter
:class MyEventRouter extends EventRouter {
- constructor(/* ... */) {
+ constructor(options: {
+ events: EventsService;
+ // ...
+ }) {
- super();
// ...
+ super({
+ events: options.events,
+ topics: topics,
+ });
}
+
+ protected getSubscriberId(): string {
+ return 'MyEventRouter';
+ }
-
- supportsEventTopics(): string[] {
- return this.topics;
- }
}
Patch Changes
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/config@1.2.0
- @backstage/backend-plugin-api@0.6.14
@backstage/plugin-events-backend-module-gitlab@0.2.0
Minor Changes
-
eff3ca9: BREAKING CHANGE: Migrate
EventRouter
implementations fromEventBroker
toEventsService
.EventRouter
uses the newEventsService
instead of theEventBroker
now, causing a breaking change to its signature.All of its extensions and implementations got adjusted accordingly. (
SubTopicEventRouter
,AzureDevOpsEventRouter
,BitbucketCloudEventRouter
,GerritEventRouter
,GithubEventRouter
,GitlabEventRouter
)Required adjustments were made to all backend modules for the new backend system, now also making use of the
eventsServiceRef
instead of theeventsExtensionPoint
.Migration:
Example for implementations of
SubTopicEventRouter
:import {
EventParams,
+ EventsService,
SubTopicEventRouter,
} from '@backstage/plugin-events-node';
export class GithubEventRouter extends SubTopicEventRouter {
- constructor() {
- super('github');
+ constructor(options: { events: EventsService }) {
+ super({
+ events: options.events,
+ topic: 'github',
+ });
}
+ protected getSubscriberId(): string {
+ return 'GithubEventRouter';
+ }
+
// ...
}Example for a direct extension of
EventRouter
:class MyEventRouter extends EventRouter {
- constructor(/* ... */) {
+ constructor(options: {
+ events: EventsService;
+ // ...
+ }) {
- super();
// ...
+ super({
+ events: options.events,
+ topics: topics,
+ });
}
+
+ protected getSubscriberId(): string {
+ return 'MyEventRouter';
+ }
-
- supportsEventTopics(): string[] {
- return this.topics;
- }
}
Patch Changes
- 2bd1410: Removed unused dependencies
- Updated dependencies
- @backstage/plugin-events-node@0.3.0
- @backstage/config@1.2.0
- @backstage/backend-plugin-api@0.6.14