Back to Backstage

Release v1.30.0-next.3

docs/releases/v1.30.0-next.3-changelog.md

1.51.0-next.272.9 KB
Original Source

Release v1.30.0-next.3

Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.30.0-next.3

@backstage/[email protected]

Minor Changes

  • 7c5f3b0: The createServiceRef function now accepts a new boolean multiple option. The multiple option defaults to false and when set to true, it enables that multiple implementation are installed for the created service ref.

    We're looking for ways to make it possible to augment services without the need to replace the entire service.

    Typical example of that being the ability to install support for additional targets for the UrlReader service without replacing the service itself. This achieves that by allowing us to define services that can have multiple simultaneous implementation, allowing the UrlReader implementation to depend on such a service to collect all possible implementation of support for external targets:

    diff
    // @backstage/backend-defaults
    
    + export const urlReaderFactoriesServiceRef = createServiceRef<ReaderFactory>({
    +   id: 'core.urlReader.factories',
    +   scope: 'plugin',
    +   multiton: true,
    + });
    
    ...
    
    export const urlReaderServiceFactory = createServiceFactory({
      service: coreServices.urlReader,
      deps: {
        config: coreServices.rootConfig,
        logger: coreServices.logger,
    +   factories: urlReaderFactoriesServiceRef,
      },
    -  async factory({ config, logger }) {
    +  async factory({ config, logger, factories }) {
        return UrlReaders.default({
          config,
          logger,
    +     factories,
        });
      },
    });
    

    With that, you can then add more custom UrlReader factories by installing more implementations of the urlReaderFactoriesServiceRef in your backend instance. Something like:

    ts
    // packages/backend/index.ts
    import { createServiceFactory } from '@backstage/backend-plugin-api';
    import { urlReaderFactoriesServiceRef } from '@backstage/backend-defaults';
    ...
    
    backend.add(createServiceFactory({
      service: urlReaderFactoriesServiceRef,
      deps: {},
      async factory() {
        return CustomUrlReader.factory;
      },
    }));
    
    ...
    
    

Patch Changes

  • 6061061: Added createBackendFeatureLoader, which can be used to create an installable backend feature that can in turn load in additional backend features in a dynamic way.

  • ba9abf4: The SchedulerService now allows tasks with frequency: { trigger: 'manual' }. This means that the task will not be scheduled, but rather run only when manually triggered with SchedulerService.triggerTask.

  • 8b13183: Added createBackendFeatureLoader, which can be used to programmatically select and install backend features.

    A feature loader can return an list of features to be installed, for example in the form on an Array or other for of iterable, which allows for the loader to be defined as a generator function. Both synchronous and asynchronous loaders are supported.

    Additionally, a loader can depend on services in its implementation, with the restriction that it can only depend on root-scoped services, and it may not override services that have already been instantiated.

    ts
    const searchLoader = createBackendFeatureLoader({
      deps: {
        config: coreServices.rootConfig,
      },
      *loader({ config }) {
        // Example of a custom config flag to enable search
        if (config.getOptionalString('customFeatureToggle.search')) {
          yield import('@backstage/plugin-search-backend/alpha');
          yield import('@backstage/plugin-search-backend-module-catalog/alpha');
          yield import('@backstage/plugin-search-backend-module-explore/alpha');
          yield import('@backstage/plugin-search-backend-module-techdocs/alpha');
        }
      },
    });
    
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 72754db: BREAKING: All types of route refs are always considered optional by useRouteRef, which means the caller must always handle a potential undefined return value. Related to this change, the optional option from createExternalRouteRef has been removed, since it is no longer necessary.

    This is released as an immediate breaking change as we expect the usage of the new route refs to be extremely low or zero, since plugins that support the new system will still use route refs and useRouteRef from @backstage/core-plugin-api in combination with convertLegacyRouteRef from @backstage/core-compat-api.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 579afd0: BREAKING: Sign-in resolvers configured via .signIn.resolvers now take precedence over sign-in resolvers passed to signInResolver option of createOAuthProviderFactory. This effectively makes sign-in resolvers passed via the signInResolver the default one, which you can then override through configuration.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 6925dcb: Introduces the HasSubdomainsCard component that displays the subdomains of a given domain

Patch Changes

@backstage/[email protected]

Minor Changes

  • 3fca643: Added field extension RepoBranchPicker that supports autocompletion for Bitbucket

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 72754db: Updated usage of useRouteRef, which can now always return undefined.
  • 16cf96c: Both compatWrapper and convertLegacyRouteRef now support converting from the new system to the old.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 93095ee: Make sure node-fetch is version 2.7.0 or greater
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@techdocs/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.6-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 3fca643: Added method listBranchesByRepository to BitbucketCloudClient
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.28-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.21-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • df784fe: The MetadataResponse type has been moved to @backstage/plugin-permission-common to match the recent move of MetadataResponseSerializedRule, and should be imported from there going forward. To avoid an immediate breaking change, this type is still re-exported from this package, but is marked as deprecated and will be removed in a future release.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.24-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-search-backend-module-stack-overflow-collator@0.1.16-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

@internal/[email protected]

Patch Changes