Back to Backstage

Release v1.48.0-next.1

docs/releases/v1.48.0-next.1-changelog.md

1.51.0-next.2826.9 KB
Original Source

Release v1.48.0-next.1

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

@backstage/[email protected]

@backstage/backend-test-utils

1.10.4-next.0

Patch Changes

1.10.3

Patch Changes

1.10.3-next.1

Patch Changes

1.10.3-next.0

Patch Changes

1.10.2

Patch Changes

1.10.2-next.1

Patch Changes

1.10.1-next.0

Patch Changes

1.10.0

Minor Changes

  • d57b13b: Added support for Postgres 18 to the available TestDatabases.

    Note that the set of default databases to test against for users of the TestDatabases class was also updated to include Postgres 14 and 18, instead of 13 and 17. If you need to override this, you can pass in an explicit ids argument, for example ids: ['POSTGRES_17', 'POSTGRES_13', 'SQLITE_3'].

Patch Changes

1.10.0-next.2

Patch Changes

  • f3001fd: Tweak some of the mock services to have more precise types
  • Updated dependencies

1.10.0-next.1

Patch Changes

1.10.0-next.0

Minor Changes

  • d57b13b: Added support for Postgres 18 to the available TestDatabases.

    Note that the set of default databases to test against for users of the TestDatabases class was also updated to include Postgres 14 and 18, instead of 13 and 17. If you need to override this, you can pass in an explicit ids argument, for example ids: ['POSTGRES_17', 'POSTGRES_13', 'SQLITE_3'].

Patch Changes

1.9.1

Patch Changes

1.9.1-next.1

Patch Changes

1.9.1-next.0

Patch Changes

1.9.0

Minor Changes

  • 4e2c237: The mockServices.rootConfig() instance now has an update method that can be used to test configuration subscriptions and updates.

Patch Changes

1.9.0-next.1

Patch Changes

1.9.0-next.0

Minor Changes

  • 4e2c237: The mockServices.rootConfig() instance now has an update method that can be used to test configuration subscriptions and updates.

Patch Changes

1.8.0

Minor Changes

  • dffaf70: Switched out mockServices.scheduler to use a mocked implementation instead of the default scheduler implementation. This implementation runs any scheduled tasks immediately on startup, as long as they don't have an initial delay or a manual trigger. After the initial run, the tasks are never run again unless manually triggered.

Patch Changes

1.7.1-next.0

Patch Changes

1.7.0

Minor Changes

  • ead925a: Add a standard toString on credentials objects

Patch Changes

1.7.0-next.1

Patch Changes

1.7.0-next.0

Minor Changes

  • ead925a: Add a standard toString on credentials objects

Patch Changes

1.6.0

Minor Changes

  • 6dfb7be: Added mockServices.permissions() that can return actual results.

  • c999c25: Added an actionsRegistryServiceMock and actionsServiceMock to /alpha export for the experimental services.

    This allows you to write tests for your actions by doing something similar to the following:

    ts
    import { actionsRegistryServiceMock } from '@backstage/backend-test-utils/alpha';
    
    const mockActionsRegistry = actionsRegistryServiceMock();
    const mockCatalog = catalogServiceMock({
      entities: [
       ...
      ],
    });
    
    createGetCatalogEntityAction({
      catalog: mockCatalog,
      actionsRegistry: mockActionsRegistry,
    });
    
    await expect(
      mockActionsRegistry.invoke({
        id: 'test:get-catalog-entity',
        input: { name: 'test' },
      }),
    ).resolves.toEqual(...)
    

Patch Changes

1.6.0-next.2

Patch Changes

1.6.0-next.1

Patch Changes

1.6.0-next.0

Minor Changes

  • c999c25: Added mock implementations for ActionsService and ActionsRegistryService

Patch Changes

1.5.0

Minor Changes

  • b3832d1: Add a functional mockServices.events()
  • c6bc67d: Added Valkey support alongside Redis in backend-defaults cache clients, using the new Keyv Valkey package. Also extended backend-test-utils to support Valkey in tests.

Patch Changes

1.5.0-next.3

Patch Changes

1.5.0-next.2

Patch Changes

1.5.0-next.1

Minor Changes

  • c6bc67d: Added Valkey support alongside Redis in backend-defaults cache clients, using the new Keyv Valkey package. Also extended backend-test-utils to support Valkey in tests.

Patch Changes

1.5.0-next.0

Minor Changes

  • b3832d1: Add a functional mockServices.events()

Patch Changes

1.4.0

Minor Changes

  • cf4eb13: Added actor property to BackstageUserPrincipal containing the subject of the last service (if any) who performed authentication on behalf of the user.

Patch Changes

1.3.2-next.2

Patch Changes

1.3.2-next.1

Patch Changes

1.3.2-next.0

Patch Changes

1.3.1

Patch Changes

1.3.1-next.2

Patch Changes

1.3.1-next.1

Patch Changes

1.3.1-next.0

Patch Changes

1.3.0

Minor Changes

  • dd05a97: Added mocks for the new PermissionsRegistryService.
  • a4aa244: This change introduces mocks for the auditor service.

Patch Changes

1.3.0-next.3

Patch Changes

1.3.0-next.2

Patch Changes

1.3.0-next.1

Patch Changes

1.3.0-next.0

Minor Changes

  • dd05a97: Added mocks for the new PermissionsRegistryService.
  • a4aa244: This change introduces mocks for the auditor service.

Patch Changes

1.2.1

Patch Changes

1.2.1-next.1

Patch Changes

1.2.1-next.0

Patch Changes

1.2.0

Minor Changes

  • 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:

    diff
    backend:
      cache:
        store: redis
        connection: redis://user:[email protected]:6379
    -   useRedisSets: false
    

Patch Changes

1.2.0-next.2

Patch Changes

1.2.0-next.1

Patch Changes

1.2.0-next.0

Minor Changes

  • 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:

    diff
    backend:
      cache:
        store: redis
        connection: redis://user:[email protected]:6379
    -   useRedisSets: false
    

Patch Changes

1.1.0

Minor Changes

  • 5064827: Made it possible to construct mockServices.database with a given knex instance

Patch Changes

1.1.0-next.3

Patch Changes

1.1.0-next.2

Minor Changes

  • 5064827: Made it possible to construct mockServices.database with a given knex instance

Patch Changes

1.0.3-next.1

Patch Changes

1.0.3-next.0

Patch Changes

1.0.1

Patch Changes

1.0.1-next.2

Patch Changes

1.0.1-next.1

Patch Changes

1.0.1-next.0

Patch Changes

1.0.0

Major Changes

  • ec1b4be: Release 1.0 of the new backend system! :tada:

    The backend system is finally getting promoted to 1.0.0. This means that the API is now stable and breaking changes should not occur until version 2.0.0, see our package versioning policy for more information what this means.

    This release also marks the end of the old backend system based on createRouter exports. Going forward backend plugins packages will start to deprecate and later this year remove exports supporting the old backend system. If you would like to help out with this transition, see https://github.com/backstage/backstage/issues/26353 or consult the migration guide.

Minor Changes

  • 19ff127: BREAKING: Removed service mocks for the identity and token manager services, which have been removed from @backstage/backend-plugin-api.

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

1.0.0-next.2

Major Changes

  • ec1b4be: Release 1.0 of the new backend system! :tada:

    The backend system is finally getting promoted to 1.0.0. This means that the API is now stable and breaking changes should not occur until version 2.0.0, see our package versioning policy for more information what this means.

    This release also marks the end of the old backend system based on createRouter exports. Going forward backend plugins packages will start to deprecate and later this year remove exports supporting the old backend system. If you would like to help out with this transition, see https://github.com/backstage/backstage/issues/26353 or consult the migration guide.

Patch Changes

0.6.0-next.1

Patch Changes

0.6.0-next.0

Minor Changes

  • 19ff127: BREAKING: Removed service mocks for the identity and token manager services, which have been removed from @backstage/backend-plugin-api.

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.5.0

Minor Changes

  • 861f162: BREAKING: Removed these deprecated helpers:

    • setupRequestMockHandlers is removed; use registerMswTestHooks instead.
    • MockDirectoryOptions is removed; use CreateMockDirectoryOptions instead.

    Stopped exporting the deprecated and internal isDockerDisabledForTests helper.

    Removed get method from ServiceFactoryTester which is replaced by getSubject

Patch Changes

0.4.5-next.3

Patch Changes

0.4.5-next.2

Patch Changes

0.4.5-next.1

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

  • 2f99178: The ServiceFactoryTest.get method was deprecated and the ServiceFactoryTest.getSubject should be used instead. The getSubject method has the same behavior, but has a better method name to indicate that the service instance returned is the subject currently being tested.
  • edf5cc3: The function isDockerDisabledForTests is deprecated and will no longer be exported in the near future as it should only be used internally.
  • b05e1e1: Service factories exported by this package have been updated to use the new service factory format that doesn't use a callback.
  • fce7887: Added mock for the Root Health Service in mockServices.
  • 906c817: Updated startTestBackend and ServiceFactoryTester to only accept plain service factory or backend feature objects, no longer supporting the callback form. This lines up with the changes to @backstage/backend-plugin-api and should not require any code changes.
  • 95a3a0b: Rename frontend and backend setupRequestMockHandlers methods to registerMswTestHooks.
  • b9ed1bb: bumped better-sqlite3 from ^9.0.0 to ^11.0.0
  • 98ccf00: Internal refactor of mockServices.httpAuth.factory to allow it to still be constructed with options, but without declaring options via createServiceFactory.
  • Updated dependencies

0.4.4-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.0

Minor Changes

  • 805cbe7: Added TestCaches that functions just like TestDatabases

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • 9e63318: Made it possible to give access restrictions to mockCredentials.service
  • 006b3e8: The type MockDirectoryOptions was renamed to CreateMockDirectoryOptions so that it's clear these options are exclusive to the mock directory factory.
  • 0634fdc: Refactored TestDatabases to no longer depend on backend-common
  • 6a576dc: Fix the logger service mock to prevent returning undefined from the child method.
  • 6c11f6e: Use imports from backend-defaults instead of the deprecated ones from backend-app-api
  • Updated dependencies

0.4.0-next.3

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 805cbe7: Added TestCaches that functions just like TestDatabases

Patch Changes

0.3.9-next.0

Patch Changes

0.3.8

Patch Changes

0.3.8-next.2

Patch Changes

  • 7e5a50d: added eventsServiceFactory to defaultServiceFactories to resolve issue where different instances of the EventsServices could be used
  • Updated dependencies

0.3.8-next.1

Patch Changes

0.3.8-next.0

Patch Changes

0.3.7

Patch Changes

0.3.7-next.1

Patch Changes

0.3.7-next.0

Patch Changes

0.3.6

Patch Changes

0.3.5

Patch Changes

0.3.4

Patch Changes

  • 4a3d434: Added support for the new auth and httpAuth services that were created as part of BEP-0003. These services will be present by default in test apps, and you can access mocked versions of their features under mockServices.auth and mockServices.httpAuth if you want to inspect or replace their behaviors.

    There is also a new mockCredentials that you can use for acquiring mocks of the various types of credentials that are used in the new system.

  • 9802004: Added mockServices.userInfo, which now also automatically is made available in test backends.

  • fd61d39: Updated dependency testcontainers to ^10.0.0.

  • ff40ada: Updated dependency mysql2 to ^3.0.0.

  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.

  • Updated dependencies

0.3.4-next.2

Patch Changes

0.3.4-next.1

Patch Changes

0.3.3-next.0

Patch Changes

  • 4a3d434: Added support for the new auth and httpAuth services that were created as part of BEP-0003. These services will be present by default in test apps, and you can access mocked versions of their features under mockServices.auth and mockServices.httpAuth if you want to inspect or replace their behaviors.

    There is also a new mockCredentials that you can use for acquiring mocks of the various types of credentials that are used in the new system.

  • 9802004: Added mockServices.userInfo, which now also automatically is made available in test backends.

  • fd61d39: Updated dependency testcontainers to ^10.0.0.

  • ff40ada: Updated dependency mysql2 to ^3.0.0.

  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.

  • Updated dependencies

0.3.0

Minor Changes

  • e85aa98: drop databases after unit tests if the database instance is not running in docker

Patch Changes

0.3.0-next.3

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • e85aa98: drop databases after unit tests if the database instance is not running in docker

Patch Changes

0.2.10

Patch Changes

0.2.10-next.2

Patch Changes

0.2.10-next.1

Patch Changes

0.2.10-next.0

Patch Changes

0.2.9

Patch Changes

  • 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

0.2.9-next.3

Patch Changes

0.2.9-next.2

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.2

Patch Changes

0.2.8-next.1

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.7-next.2

Patch Changes

0.2.6-next.1

Patch Changes

0.2.6-next.0

Patch Changes

0.2.3

Patch Changes

  • 58cb5e5cea7b: Introduced a new utility for testing service factories, ServiceFactoryTester.
  • 202e52c5e361: Add support for installing backend features via module imports, for example startTestBackend({ features: [import('my-plugin')] }).
  • 9fb3b5373c45: Extended mockService to also include mocked variants, for example mockServices.lifecycle.mock(). The returned mocked implementation will have a factory property which is a service factory for itself. You can also pass a partial implementation of the service to the mock function to use a mock implementation of specific methods.
  • eb1594da5812: Serialize test database shutdown, and add logging
  • Updated dependencies

0.2.3-next.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.2-next.0

Patch Changes

  • 9fb3b5373c45: Extended mockService to also include mocked variants, for example mockServices.lifecycle.mock(). The returned mocked implementation will have a factory property which is a service factory for itself. You can also pass a partial implementation of the service to the mock function to use a mock implementation of specific methods.
  • Updated dependencies

0.2.0

Minor Changes

  • b9c57a4f857e: BREAKING: Renamed mockServices.config to mockServices.rootConfig.

  • a6d7983f349c: BREAKING: Removed the services option from createBackend. Service factories are now BackendFeatures and should be installed with backend.add(...) instead. The following should be migrated:

    ts
    const backend = createBackend({ services: [myCustomServiceFactory] });
    

    To instead pass the service factory via backend.add(...):

    ts
    const backend = createBackend();
    backend.add(customRootLoggerServiceFactory);
    

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Minor Changes

  • b9c57a4f857e: BREAKING: Renamed mockServices.config to mockServices.rootConfig.

Patch Changes

0.1.40-next.0

Patch Changes

0.1.39

Patch Changes

0.1.39-next.0

Patch Changes

0.1.38

Patch Changes

0.1.38-next.2

Patch Changes

0.1.38-next.1

Patch Changes

0.1.38-next.0

Patch Changes

0.1.37

Patch Changes

0.1.37-next.1

Patch Changes

0.1.37-next.0

Patch Changes

0.1.36

Patch Changes

0.1.36-next.2

Patch Changes

0.1.36-next.1

Patch Changes

0.1.36-next.0

Patch Changes

0.1.35

Patch Changes

0.1.35-next.2

Patch Changes

0.1.35-next.1

Patch Changes

0.1.35-next.0

Patch Changes

0.1.34

Patch Changes

  • baf6e4c96a: Removed unnecessary @backstage/cli dependency.
  • c51efce2a0: Update docs to always use yarn add --cwd for app & backend
  • 1835311713: Added explicit return type signature for mockServices.config().
  • e716946103: Updated usage of the lifecycle service.
  • 7e7557a2be: Updated the mockServices.rootLogger options to accept a single level option instead.
  • 610d65e143: Updates to match new BackendFeature type.
  • e412d33025: Use the new *ServiceFactory exports from @backstage/backend-app-api
  • b86efa2d04: Updated usage of ServiceFactory.
  • 17b573e4be: The new backend system testing utilities have now been marked as stable API.
  • f1adb2e36b: Removed the ref from all mockServices.
  • d0901c9ba4: All mock service factories and mock service implementations are now available via the new experimental mockServices export.
  • 71a5ec0f06: Updated usages of LogMeta.
  • Updated dependencies

0.1.34-next.2

Patch Changes

  • baf6e4c96a: Removed unnecessary @backstage/cli dependency.
  • 1835311713: Added explicit return type signature for mockServices.config().
  • e716946103: Updated usage of the lifecycle service.
  • 7e7557a2be: Updated the mockServices.rootLogger options to accept a single level option instead.
  • 610d65e143: Updates to match new BackendFeature type.
  • e412d33025: Use the new *ServiceFactory exports from @backstage/backend-app-api
  • f1adb2e36b: Removed the ref from all mockServices.
  • 71a5ec0f06: Updated usages of LogMeta.
  • Updated dependencies

0.1.34-next.1

Patch Changes

0.1.34-next.0

Patch Changes

0.1.32

Patch Changes

  • 6cfd4d7073: Include implementations for the new rootLifecycleServiceRef.
  • 015a6dced6: Updated to make sure that service implementations replace default service implementations.
  • a3ec2f32ea: The startTestBackend setup now includes default implementations for all core services.
  • 483e907eaf: Internal updates of createServiceFactory from @backstage/backend-plugin-api.
  • 51b7a7ed07: The backend started by startTestBackend now has default implementations of all core services. It now also returns a TestBackend instance, which provides access to the underlying server that can be used with testing libraries such as supertest.
  • f23eef3aa2: Updated dependency better-sqlite3 to ^8.0.0.
  • Updated dependencies

0.1.32-next.2

Patch Changes

0.1.32-next.1

Patch Changes

0.1.32-next.0

Patch Changes

0.1.31

Patch Changes

0.1.31-next.4

Patch Changes

0.1.31-next.3

Patch Changes

0.1.31-next.2

Patch Changes

0.1.31-next.1

Patch Changes

0.1.31-next.0

Patch Changes

0.1.30

Patch Changes

0.1.30-next.1

Patch Changes

0.1.30-next.0

Patch Changes

0.1.29

Patch Changes

0.1.29-next.2

Patch Changes

0.1.29-next.1

Patch Changes

0.1.29-next.0

Patch Changes

0.1.28

Patch Changes

0.1.28-next.3

Patch Changes

0.1.28-next.2

Patch Changes

0.1.28-next.1

Patch Changes

0.1.28-next.0

Patch Changes

0.1.27

Patch Changes

0.1.27-next.0

Patch Changes

0.1.26

Patch Changes

  • a70869e775: Updated dependency msw to ^0.43.0.
  • 8006d0f9bf: Updated dependency msw to ^0.44.0.
  • 679b32172e: Updated dependency knex to ^2.0.0.
  • Updated dependencies

0.1.26-next.3

Patch Changes

0.1.26-next.2

Patch Changes

0.1.26-next.1

Patch Changes

0.1.26-next.0

Patch Changes

0.1.25

Patch Changes

0.1.25-next.2

Patch Changes

0.1.25-next.1

Patch Changes

0.1.25-next.0

Patch Changes

0.1.24

Patch Changes

0.1.24-next.1

Patch Changes

0.1.24-next.0

Patch Changes

0.1.23

Patch Changes

  • 0654c87cf2: TestDatabases.create will no longer set up an afterAll test handler if no databases are supported.
  • Updated dependencies

0.1.23-next.1

Patch Changes

  • 0654c87cf2: TestDatabases.create will no longer set up an afterAll test handler if no databases are supported.
  • Updated dependencies

0.1.23-next.0

Patch Changes

0.1.22

Patch Changes

0.1.21

Patch Changes

  • ab7cd7d70e: Do some groundwork for supporting the better-sqlite3 driver, to maybe eventually replace @vscode/sqlite3 (#9912)
  • 3c2bc73901: Add setupRequestMockHandlers which sets up a good msw server foundation, copied from @backstage/test-utils which is a frontend-only package and should not be used from backends.
  • Updated dependencies

0.1.21-next.0

Patch Changes

  • ab7cd7d70e: Do some groundwork for supporting the better-sqlite3 driver, to maybe eventually replace @vscode/sqlite3 (#9912)
  • 3c2bc73901: Add setupRequestMockHandlers which sets up a good msw server foundation, copied from @backstage/test-utils which is a frontend-only package and should not be used from backends.
  • Updated dependencies

0.1.20

Patch Changes

0.1.19

Patch Changes

0.1.18

Patch Changes

0.1.17

Patch Changes

  • 2441d1cf59: chore(deps): bump knex from 0.95.6 to 1.0.2

    This also replaces sqlite3 with @vscode/sqlite3 5.0.7

  • Updated dependencies

0.1.17-next.0

Patch Changes

  • 2441d1cf59: chore(deps): bump knex from 0.95.6 to 1.0.2

    This also replaces sqlite3 with @vscode/sqlite3 5.0.7

  • Updated dependencies

0.1.16

Patch Changes

0.1.16-next.1

Patch Changes

0.1.16-next.0

Patch Changes

0.1.15

Patch Changes

0.1.14

Patch Changes

0.1.14-next.0

Patch Changes

0.1.13

Patch Changes

0.1.12

Patch Changes

0.1.11

Patch Changes

0.1.10

Patch Changes

0.1.9

Patch Changes

0.1.8

Patch Changes

0.1.7

Patch Changes

0.1.6

Patch Changes

0.1.5

Patch Changes

  • 524045758: Make sure that the unique databases names generated by TestDatabases.create() don't collide.
  • Updated dependencies

0.1.4

Patch Changes

0.1.3

Patch Changes

  • 772dbdb51: Deprecates SingleConnectionDatabaseManager and provides an API compatible database connection manager, DatabaseManager, which allows developers to configure database connections on a per plugin basis.

    The backend.database config path allows you to set prefix to use an alternate prefix for automatically generated database names, the default is backstage_plugin_. Use backend.database.plugin.<pluginId> to set plugin specific database connection configuration, e.g.

    yaml
    backend:
      database:
        client: 'pg',
        prefix: 'custom_prefix_'
        connection:
          host: 'localhost'
          user: 'foo'
          password: 'bar'
        plugin:
          catalog:
            connection:
              database: 'database_name_overriden'
          scaffolder:
            client: 'sqlite3'
            connection: ':memory:'
    

    Migrate existing backstage installations by swapping out the database manager in the packages/backend/src/index.ts file as shown below:

    diff
    import {
    -  SingleConnectionDatabaseManager,
    +  DatabaseManager,
    } from '@backstage/backend-common';
    
    // ...
    
    function makeCreateEnv(config: Config) {
      // ...
    -  const databaseManager = SingleConnectionDatabaseManager.fromConfig(config);
    +  const databaseManager = DatabaseManager.fromConfig(config);
      // ...
    }
    
  • Updated dependencies

0.1.2

Patch Changes

  • 0711954a9: Skip running docker tests unless in CI
  • Updated dependencies [9cd3c533c]
  • Updated dependencies [92963779b]
  • Updated dependencies [7f7443308]
  • Updated dependencies [21e8ebef5]
  • Updated dependencies [eda9dbd5f]

@backstage/[email protected]

@backstage/core-app-api

1.19.4-next.0

Patch Changes

1.19.3

Patch Changes

  • 75683ed: Added replay functionality to AlertApiForwarder to buffer and replay recent alerts to new subscribers, preventing missed alerts that were posted before subscription.
  • 97cd16f: Internal update of translation imports.
  • Updated dependencies

1.19.3-next.1

Patch Changes

1.19.3-next.0

Patch Changes

1.19.2

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns
  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

1.19.2-next.1

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns
  • Updated dependencies

1.19.2-next.0

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

1.19.1

Patch Changes

1.19.1-next.0

Patch Changes

1.19.0

Minor Changes

  • 3fca906: Add OpenShiftAuth helper to create default OAuth flow for OpenShift.

Patch Changes

1.18.0

Minor Changes

  • 5ddc0fe: if session exists and refresh fails, then create a new session if not instant popup

Patch Changes

1.18.0-next.1

Minor Changes

  • 5ddc0fe: if session exists and refresh fails, then create a new session if not instant popup

Patch Changes

1.17.2-next.0

Patch Changes

1.17.1

Patch Changes

1.17.0

Minor Changes

  • 1e0230e: Support custom AuthConnector for OAuth2.

    A user can pass their own AuthConnector implementation in OAuth2 constructor. In which case the session manager will use that instead of the DefaultAuthConnector to interact with the authentication provider.

    A custom AuthConnector may call the authentication provider from the front-end, store and retrieve tokens in the session storage, for example, and otherwise send custom requests to the authentication provider and handle its responses.

    Note, that if the custom AuthConnector transforms scopes returned from the authentication provider, the transformation must be the same as OAuth2CreateOptions#scopeTransform passed to OAuth2 constructor. See creating DefaultAuthConnector in OAuth2#create(...) for an example.

Patch Changes

1.17.0-next.1

Minor Changes

  • 1e0230e: Support custom AuthConnector for OAuth2.

    A user can pass their own AuthConnector implementation in OAuth2 constructor. In which case the session manager will use that instead of the DefaultAuthConnector to interact with the authentication provider.

    A custom AuthConnector may call the authentication provider from the front-end, store and retrieve tokens in the session storage, for example, and otherwise send custom requests to the authentication provider and handle its responses.

    Note, that if the custom AuthConnector transforms scopes returned from the authentication provider, the transformation must be the same as OAuth2CreateOptions#scopeTransform passed to OAuth2 constructor. See creating DefaultAuthConnector in OAuth2#create(...) for an example.

Patch Changes

1.16.2-next.0

Patch Changes

1.16.1

Patch Changes

1.16.1-next.0

Patch Changes

1.16.0

Minor Changes

  • 9262001: The default auth injection middleware for the FetchApi will now also take configuration under discovery.endpoints into consideration when deciding whether to include credentials or not.
  • 12f8e01: The discovery.endpoints configuration no longer requires both internal and external target when using the object form, instead falling back to the default.

Patch Changes

1.16.0-next.0

Minor Changes

  • 9262001: The default auth injection middleware for the FetchApi will now also take configuration under discovery.endpoints into consideration when deciding whether to include credentials or not.
  • 12f8e01: The discovery.endpoints configuration no longer requires both internal and external target when using the object form, instead falling back to the default.

Patch Changes

1.15.5

Patch Changes

  • 58ec9e7: Removed older versions of React packages as a preparatory step for upgrading to React 19. This commit does not introduce any functional changes, but removes dependencies on previous React versions, allowing for a cleaner upgrade path in subsequent commits.
  • Updated dependencies

1.15.5-next.0

Patch Changes

  • 58ec9e7: Removed older versions of React packages as a preparatory step for upgrading to React 19. This commit does not introduce any functional changes, but removes dependencies on previous React versions, allowing for a cleaner upgrade path in subsequent commits.
  • Updated dependencies

1.15.4

Patch Changes

1.15.4-next.0

Patch Changes

1.15.3

Patch Changes

  • e5fa018: The OAuth 2 client implementations will now attempt to refresh the session when the existing session doesn't have the required scopes. The previous behavior was to only try to refresh the session of it was missing, and otherwise directly request a new session. This fixes an issue where some auth providers will not return access tokens with certain scopes unless explicitly requested, leading to an auth popup even if the underlying session already had been granted the requested scopes.
  • 2830689: Decrease OAuth2 token refresh grace period
  • Updated dependencies

1.15.3-next.1

Patch Changes

1.15.3-next.0

Patch Changes

  • e5fa018: The OAuth 2 client implementations will now attempt to refresh the session when the existing session doesn't have the required scopes. The previous behavior was to only try to refresh the session of it was missing, and otherwise directly request a new session. This fixes an issue where some auth providers will not return access tokens with certain scopes unless explicitly requested, leading to an auth popup even if the underlying session already had been granted the requested scopes.
  • 2830689: Decrease OAuth2 token refresh grace period
  • Updated dependencies

1.15.2

Patch Changes

1.15.1

Patch Changes

1.15.1-next.1

Patch Changes

1.15.1-next.0

Patch Changes

1.15.0

Minor Changes

  • ddbeace: Added the ability to explicitly disable routes through the bindRoutes option by passing false as the route target. This also fixes a bug where route bindings in config were incorrectly prioritized above the ones in code in certain situations.

Patch Changes

  • ea69e46: The defaultConfigLoader now also reads configuration from scripts tags with type="backstage.io/config". The tag is expected to contain a JSON-serialized array of AppConfig objects. If any of these script tags are present, the injected runtime configuration in the static assets will no longer be used.
  • b537bd7: Allow custom star icons to be provided via the star and unstarred icon overrides. See how to override existing icons in the Backstage documentation.
  • 836127c: Updated dependency @testing-library/react to ^16.0.0.
  • Updated dependencies

1.14.3-next.0

Patch Changes

  • ea69e46: The defaultConfigLoader now also reads configuration from scripts tags with type="backstage.io/config". The tag is expected to contain a JSON-serialized array of AppConfig objects. If any of these script tags are present, the injected runtime configuration in the static assets will no longer be used.
  • b537bd7: Allow custom star icons to be provided via the star and unstarred icon overrides. See how to override existing icons in the Backstage documentation.
  • 836127c: Updated dependency @testing-library/react to ^16.0.0.
  • Updated dependencies

1.14.2

Patch Changes

  • 9a46a81: The request to delete the session cookie when running the app in protected mode is now done with a plain fetch rather than FetchApi. This fixes a bug where the app would immediately try to sign-in again when removing the cookie during logout.
  • Updated dependencies

1.14.1-next.0

Patch Changes

  • 9a46a81: The request to delete the session cookie when running the app in protected mode is now done with a plain fetch rather than FetchApi. This fixes a bug where the app would immediately try to sign-in again when removing the cookie during logout.
  • Updated dependencies

1.14.0

Minor Changes

  • d3c39fc: Allow for the disabling of external routes through config, which was rendered impossible after the introduction of default targets.

    yaml
    app:
      routes:
        bindings:
          # This has the effect of removing the button for registering new
          # catalog entities in the scaffolder template list view
          scaffolder.registerComponent: false
    

Patch Changes

1.13.1-next.1

Patch Changes

1.13.0-next.0

Minor Changes

  • d3c39fc: Allow for the disabling of external routes through config, which was rendered impossible after the introduction of default targets.

    yaml
    app:
      routes:
        bindings:
          # This has the effect of removing the button for registering new
          # catalog entities in the scaffolder template list view
          scaffolder.registerComponent: false
    

Patch Changes

1.12.6

Patch Changes

  • 35fbe09: Added support for configuration of route bindings through static configuration, and default targets for external route refs.

    In addition to configuring route bindings through code, it is now also possible to configure route bindings under the app.routes.bindings key, for example:

    yaml
    app:
      routes:
        bindings:
          catalog.createComponent: catalog-import.importPage
    

    Each key in the route binding object is of the form <plugin-id>.<externalRouteName>, where the route name is key used in the externalRoutes object passed to createPlugin. The value is of the same form, but with the name taken from the plugin routes option instead.

    The equivalent of the above configuration in code is the following:

    ts
    const app = createApp({
      // ...
      bindRoutes({ bind }) {
        bind(catalogPlugin.externalRoutes, {
          createComponent: catalogImportPlugin.routes.importPage,
        });
      },
    });
    
  • Updated dependencies

1.12.6-next.0

Patch Changes

  • 35fbe09: Added support for configuration of route bindings through static configuration, and default targets for external route refs.

    In addition to configuring route bindings through code, it is now also possible to configure route bindings under the app.routes.bindings key, for example:

    yaml
    app:
      routes:
        bindings:
          catalog.createComponent: catalog-import.importPage
    

    Each key in the route binding object is of the form <plugin-id>.<externalRouteName>, where the route name is key used in the externalRoutes object passed to createPlugin. The value is of the same form, but with the name taken from the plugin routes option instead.

    The equivalent of the above configuration in code is the following:

    ts
    const app = createApp({
      // ...
      bindRoutes({ bind }) {
        bind(catalogPlugin.externalRoutes, {
          createComponent: catalogImportPlugin.routes.importPage,
        });
      },
    });
    
  • Updated dependencies

1.12.5

Patch Changes

  • 1bed9a3: The Backstage identity session expiration check will no longer fall back to using the provider expiration. This was introduced to smooth out the rollout of Backstage release 1.18, and is no longer needed.

1.12.4

Patch Changes

  • c884b9a: The app is now aware of if it is being served from the app-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.
  • abfbcfc: Updated dependency @testing-library/react to ^15.0.0.
  • cb1e3b0: Updated dependency @testing-library/dom to ^10.0.0.
  • Updated dependencies

1.12.4-next.0

Patch Changes

  • c884b9a: The app is now aware of if it is being served from the app-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.
  • Updated dependencies

1.12.3

Patch Changes

1.12.2

Patch Changes

1.12.1

Patch Changes

1.12.1-next.1

Patch Changes

1.12.1-next.0

Patch Changes

1.12.0

Minor Changes

  • f919be9: Added a utility API for VMware Cloud auth; the API ref is available in the @backstage/core-plugin-api and @backstage/frontend-plugin-api packages, the implementation is in @backstage/core-app-api and a factory has been added to @backstage/app-defaults.

Patch Changes

1.12.0-next.1

Minor Changes

  • f919be9: Added a utility API for VMware Cloud auth; the API ref is available in the @backstage/core-plugin-api and @backstage/frontend-plugin-api packages, the implementation is in @backstage/core-app-api and a factory has been added to @backstage/app-defaults.

Patch Changes

1.11.4-next.0

Patch Changes

1.11.3

Patch Changes

1.11.3-next.0

Patch Changes

1.11.2

Patch Changes

1.11.2-next.1

Patch Changes

1.11.2-next.0

Patch Changes

1.11.1

Patch Changes

1.11.1-next.0

Patch Changes

1.11.0

Minor Changes

  • c9d9bfeca2: URL encode some well known unsafe characters in RouteResolver (and therefore useRouteRef)

Patch Changes

  • 29e4d8b76b: Fixed bug in AppRouter to determine the correct signOutTargetUrl if app.baseUrl contains a basePath
  • acca17e91a: Wrap entire app in <Suspense>, enabling support for using translations outside plugins.
  • 1a0616fa10: Add missing resource and template app icons
  • 9a1fce352e: Updated dependency @testing-library/jest-dom to ^6.0.0.
  • f95af4e540: Updated dependency @testing-library/dom to ^9.0.0.
  • f1b349cfba: Fixed a bug in TranslationApi implementation where in some cases it wouldn't notify subscribers of language changes.
  • Updated dependencies

1.11.0-next.2

Minor Changes

  • c9d9bfeca2: URL encode some well known unsafe characters in RouteResolver (and therefore useRouteRef)

Patch Changes

1.10.1-next.1

Patch Changes

1.10.1-next.0

Patch Changes

1.10.0

Minor Changes

  • 18619f793c94: Fixed two bugs in how the OAuth2Session type represents the underlying data. The expiresAt and backstageIdentity are now both optional, since that's what they are in practice. This is not considered a breaking change since it was effectively a bug in the modelling of the state that this type represents, and the type was not used in any other external contract.
  • 18619f793c94: The OAuth class which is used by all OAuth providers will now consider both the session expiration of both the Backstage identity as well as the upstream identity provider, and refresh the session with either of them is about to expire.
  • 6e30769cc627: Introduced experimental support for internationalization.

Patch Changes

1.10.0-next.3

Patch Changes

1.10.0-next.2

Minor Changes

  • 6e30769cc627: Introduced experimental support for internationalization.

Patch Changes

1.10.0-next.1

Patch Changes

1.10.0-next.0

Minor Changes

  • 18619f793c94: Fixed two bugs in how the OAuth2Session type represents the underlying data. The expiresAt and backstageIdentity are now both optional, since that's what they are in practice. This is not considered a breaking change since it was effectively a bug in the modelling of the state that this type represents, and the type was not used in any other external contract.
  • 18619f793c94: The OAuth class which is used by all OAuth providers will now consider both the session expiration of both the Backstage identity as well as the upstream identity provider, and refresh the session with either of them is about to expire.

Patch Changes

1.9.1

Patch Changes

  • 9ae4e7e63836: Fixed a bug that could cause navigate analytics events to be misattributed to the plugin mounted on the root route (e.g. the home plugin at /) when the route that was navigated to wasn't associated with a routable extension.
  • Updated dependencies

1.9.1-next.0

Patch Changes

  • 9ae4e7e63836: Fixed a bug that could cause navigate analytics events to be misattributed to the plugin mounted on the root route (e.g. the home plugin at /) when the route that was navigated to wasn't associated with a routable extension.
  • Updated dependencies

1.9.0

Minor Changes

  • a77ddf7ccd71: add login in popup options to config popup width and height

Patch Changes

1.8.2-next.1

Patch Changes

1.8.2-next.0

Patch Changes

1.8.1

Patch Changes

  • 12adfbc8fe2d: Fixed a bug that prevented accurate plugin and route data from being applied to navigate analytics events when users visited pages constructed with <EntityLayout>, <TabbedLayout>, and similar components that are used to gather one or more routable extensions under a given path.
  • ac677bc30ae0: Expose discovery.endpoints configuration to use FrontendHostDiscovery
  • 74b216ee4e50: Add PropsWithChildren to usages of ComponentType, in preparation for React 18 where the children are no longer implicit.
  • Updated dependencies

1.8.1-next.0

Patch Changes

1.8.0

Minor Changes

  • c89437db899: The analytics' navigate event will now include the route parameters as attributes of the navigate event

Patch Changes

1.8.0-next.1

Minor Changes

  • c89437db899: The analytics' navigate event will now include the route parameters as attributes of the navigate event

Patch Changes

1.7.1-next.0

Patch Changes

1.7.0

Minor Changes

  • 7908d72e033: Introduce a new global config parameter, enableExperimentalRedirectFlow. When enabled, auth will happen with an in-window redirect flow rather than through a popup window.
  • c15e0cedbe1: The AuthConnector interface now supports specifying a set of scopes when refreshing a session. The DefaultAuthConnector implementation passes the scope query parameter to the auth-backend plugin appropriately. The RefreshingAuthSessionManager passes any scopes in its GetSessionRequest appropriately.

Patch Changes

1.7.0-next.3

Minor Changes

  • c15e0cedbe1: The AuthConnector interface now supports specifying a set of scopes when refreshing a session. The DefaultAuthConnector implementation passes the scope query parameter to the auth-backend plugin appropriately. The RefreshingAuthSessionManager passes any scopes in its GetSessionRequest appropriately.

Patch Changes

1.7.0-next.2

Patch Changes

1.7.0-next.1

Patch Changes

1.7.0-next.0

Minor Changes

  • 7908d72e033: Introduce a new global config parameter, enableExperimentalRedirectFlow. When enabled, auth will happen with an in-window redirect flow rather than through a popup window.

Patch Changes

1.6.0

Minor Changes

  • 456eaa8cf83: OAuth2 now gets ID tokens from a session with the openid scope explicitly requested.

    This should not be considered a breaking change, because spec-compliant OIDC providers will already be returning ID tokens if and only if the openid scope is granted.

    This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various default auth handlers) to add openid to their default scopes. That could carry another indirect benefit: by removing openid from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related scopes.

Patch Changes

1.6.0-next.2

Minor Changes

  • 456eaa8cf83: OAuth2 now gets ID tokens from a session with the openid scope explicitly requested.

    This should not be considered a breaking change, because spec-compliant OIDC providers will already be returning ID tokens if and only if the openid scope is granted.

    This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various default auth handlers) to add openid to their default scopes. That could carry another indirect benefit: by removing openid from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related scopes.

Patch Changes

1.5.1-next.1

Patch Changes

1.5.1-next.0

Patch Changes

1.5.0

Minor Changes

  • db10b6ef65: Added a Bitbucket Server Auth Provider and added its API to the app defaults

Patch Changes

1.4.1-next.0

Patch Changes

1.4.0

Minor Changes

Patch Changes

1.4.0-next.1

Minor Changes

Patch Changes

1.3.1-next.0

Patch Changes

1.3.0

Minor Changes

  • e0d9c9559a: Added a new AppRouter component and app.createRoot() method that replaces app.getRouter() and app.getProvider(), which are now deprecated. The new AppRouter component is a drop-in replacement for the old router component, while the new app.createRoot() method is used instead of the old provider component.

    An old app setup might look like this:

    tsx
    const app = createApp(/* ... */);
    
    const AppProvider = app.getProvider();
    const AppRouter = app.getRouter();
    
    const routes = ...;
    
    const App = () => (
      <AppProvider>
        <AlertDisplay />
        <OAuthRequestDialog />
        <AppRouter>
          <Root>{routes}</Root>
        </AppRouter>
      </AppProvider>
    );
    
    export default App;
    

    With these new APIs, the setup now looks like this:

    tsx
    import { AppRouter } from '@backstage/core-app-api';
    
    const app = createApp(/* ... */);
    
    const routes = ...;
    
    export default app.createRoot(
      <>
        <AlertDisplay />
        <OAuthRequestDialog />
        <AppRouter>
          <Root>{routes}</Root>
        </AppRouter>
      </>,
    );
    

    Note that app.createRoot() accepts a React element, rather than a component.

Patch Changes

  • d3fea4ae0a: Internal fixes to avoid implicit usage of globals
  • b05dcd5530: Move the zod dependency to a version that does not collide with other libraries
  • b4b5b02315: Tweak feature flag registration so that it happens immediately before the first rendering of the app, rather than just after.
  • 6870b43dd1: Fix for the automatic rewriting of base URLs.
  • 203271b746: Prevent duplicate feature flag components from rendering in the settings when using <FeatureFlagged /> components
  • 3280711113: Updated dependency msw to ^0.49.0.
  • 19356df560: Updated dependency zen-observable to ^0.9.0.
  • c3fa90e184: Updated dependency zen-observable to ^0.10.0.
  • 8015ff1258: Tweaked wording to use inclusive terminology
  • 653d7912ac: Made WebStorage notify its subscribers when localStorage values change in other tabs/windows
  • 63310e3987: Apps will now rewrite the app.baseUrl configuration to match the current location.origin. The backend.baseUrl will also be rewritten in the same way when the app.baseUrl and backend.baseUrl have matching origins. This will reduce the need for separate frontend builds for different environments.
  • Updated dependencies

1.3.0-next.4

Minor Changes

  • e0d9c9559a: Added a new AppRouter component and app.createRoot() method that replaces app.getRouter() and app.getProvider(), which are now deprecated. The new AppRouter component is a drop-in replacement for the old router component, while the new app.createRoot() method is used instead of the old provider component.

    An old app setup might look like this:

    tsx
    const app = createApp(/* ... */);
    
    const AppProvider = app.getProvider();
    const AppRouter = app.getRouter();
    
    const routes = ...;
    
    const App = () => (
      <AppProvider>
        <AlertDisplay />
        <OAuthRequestDialog />
        <AppRouter>
          <Root>{routes}</Root>
        </AppRouter>
      </AppProvider>
    );
    
    export default App;
    

    With these new APIs, the setup now looks like this:

    tsx
    import { AppRouter } from '@backstage/core-app-api';
    
    const app = createApp(/* ... */);
    
    const routes = ...;
    
    export default app.createRoot(
      <>
        <AlertDisplay />
        <OAuthRequestDialog />
        <AppRouter>
          <Root>{routes}</Root>
        </AppRouter>
      </>,
    );
    

    Note that app.createRoot() accepts a React element, rather than a component.

Patch Changes

1.2.1-next.3

Patch Changes

1.2.1-next.2

Patch Changes

  • b4b5b02315: Tweak feature flag registration so that it happens immediately before the first rendering of the app, rather than just after.
  • 203271b746: Prevent duplicate feature flag components from rendering in the settings when using <FeatureFlagged /> components
  • 8015ff1258: Tweaked wording to use inclusive terminology
  • 63310e3987: Apps will now rewrite the app.baseUrl configuration to match the current location.origin. The backend.baseUrl will also be rewritten in the same way when the app.baseUrl and backend.baseUrl have matching origins. This will reduce the need for separate frontend builds for different environments.
  • Updated dependencies

1.2.1-next.1

Patch Changes

1.2.1-next.0

Patch Changes

1.2.0

Minor Changes

  • 9b737e5f2e: Updated the React Router wiring to make use of the new basename property of the router components in React Router v6 stable. To implement this, a new optional basename property has been added to the Router app component, which can be forwarded to the concrete router implementation in order to support this new behavior. This is done by default in any app that does not have a Router component override.
  • 127fcad26d: Deprecated the homepage config as the component that used it - HomepageTimer - has been removed and replaced by the HeaderWorldClock in the home plugin

Patch Changes

1.2.0-next.0

Minor Changes

  • 9b737e5f2e: Updated the React Router wiring to make use of the new basename property of the router components in React Router v6 stable. To implement this, a new optional basename property has been added to the Router app component, which can be forwarded to the concrete router implementation in order to support this new behavior. This is done by default in any app that does not have a Router component override.
  • 127fcad26d: Deprecated the homepage config as the component that used it - HomepageTimer - has been removed and replaced by the HeaderWorldClock in the home plugin

Patch Changes

1.1.1

Patch Changes

1.1.1-next.2

Patch Changes

1.1.1-next.1

Patch Changes

1.1.1-next.0

Patch Changes

1.1.0

Minor Changes

  • a448fea691: Updated the routing system to be compatible with React Router v6 stable.

Patch Changes

  • 817f3196f6: Updated React Router dependencies to be peer dependencies.

  • f9ec4e46e3: When using React Router v6 stable, it is now possible for components within the Route element tree to have path props, although they will be ignored.

  • 7d47def9c4: Removed dependency on @types/jest.

  • 744fea158b: Added getSystemIcons() function to the AppContext available through useApp that will pull a list of all the icons that have been registered in the App.

  • 667d917488: Updated dependency msw to ^0.47.0.

  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.

  • bf5e9030eb: Updated dependency msw to ^0.45.0.

  • 8448b53dd6: Clarify that the WebStorage observable returns JsonValue items.

  • 70299c99d5: Updated FlatRoutes to be compatible with React Router v6 stable.

  • e9d40ebf54: If you'd like to send analytics events to multiple implementations, you may now do so using the MultipleAnalyticsApi implementation provided by this package.

    tsx
    import { MultipleAnalyticsApi } from '@backstage/core-app-api';
    import {
      analyticsApiRef,
      configApiRef,
      storageApiRef,
      identityApiRef,
    } from '@internal/backstage/core-plugin-api';
    import { CustomAnalyticsApi } from '@internal/analytics';
    import { VendorAnalyticsApi } from '@vendor/analytics';
    
    createApiFactory({
      api: analyticsApiRef,
      deps: { configApi: configApiRef, identityApi: identityApiRef, storageApi: storageApiRef },
      factory: ({ configApi, identityApi, storageApi }) =>
        MultipleAnalyticsApi.fromApis([
          VendorAnalyticsApi.fromConfig(configApi, { identityApi }),
          CustomAnalyticsApi.fromConfig(configApi, { identityApi, storageApi }),
        ]),
    }),
    
  • Updated dependencies

1.1.0-next.3

Patch Changes

1.1.0-next.2

Patch Changes

  • f9ec4e46e3: When using React Router v6 stable, it is now possible for components within the Route element tree to have path props, although they will be ignored.

  • 667d917488: Updated dependency msw to ^0.47.0.

  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.

  • e9d40ebf54: If you'd like to send analytics events to multiple implementations, you may now do so using the MultipleAnalyticsApi implementation provided by this package.

    tsx
    import { MultipleAnalyticsApi } from '@backstage/core-app-api';
    import {
      analyticsApiRef,
      configApiRef,
      storageApiRef,
      identityApiRef,
    } from '@internal/backstage/core-plugin-api';
    import { CustomAnalyticsApi } from '@internal/analytics';
    import { VendorAnalyticsApi } from '@vendor/analytics';
    
    createApiFactory({
      api: analyticsApiRef,
      deps: { configApi: configApiRef, identityApi: identityApiRef, storageApi: storageApiRef },
      factory: ({ configApi, identityApi, storageApi }) =>
        MultipleAnalyticsApi.fromApis([
          VendorAnalyticsApi.fromConfig(configApi, { identityApi }),
          CustomAnalyticsApi.fromConfig(configApi, { identityApi, storageApi }),
        ]),
    }),
    
  • Updated dependencies

1.1.0-next.1

Minor Changes

  • a448fea691: Updated the routing system to be compatible with React Router v6 stable.

Patch Changes

  • 817f3196f6: Updated React Router dependencies to be peer dependencies.
  • 70299c99d5: Updated FlatRoutes to be compatible with React Router v6 stable.
  • Updated dependencies

1.0.6-next.0

Patch Changes

  • 744fea158b: Added getSystemIcons() function to the AppContext available through useApp that will pull a list of all the icons that have been registered in the App.
  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • Updated dependencies

1.0.5

Patch Changes

1.0.5-next.0

Patch Changes

1.0.4

Patch Changes

  • 881fc75a75: Internal tweak removing usage of explicit type parameters for the BackstagePlugin type.
  • 8fe2357101: The signOut method of the IdentityApi will now navigate the user back to the base URL of the app as indicated by the app.baseUrl config.
  • a70869e775: Updated dependency msw to ^0.43.0.
  • 8006d0f9bf: Updated dependency msw to ^0.44.0.
  • Updated dependencies

1.0.4-next.1

Patch Changes

  • 881fc75a75: Internal tweak removing usage of explicit type parameters for the BackstagePlugin type.
  • a70869e775: Updated dependency msw to ^0.43.0.
  • Updated dependencies

1.0.4-next.0

Patch Changes

  • 8fe2357101: The signOut method of the IdentityApi will now navigate the user back to the base URL of the app as indicated by the app.baseUrl config.

1.0.3

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.
  • 19781483a2: Handle URLs as the first argument to fetchApi, when using the plugin: protocol
  • Updated dependencies

1.0.3-next.0

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.
  • Updated dependencies

1.0.2

Patch Changes

  • 1fae1f57c9: Fix SAML session schema to no longer require the (deprecated) id, to unbreak session data storage.
  • Updated dependencies

1.0.2-next.1

Patch Changes

1.0.2-next.0

Patch Changes

1.0.1

Patch Changes

  • 7c7919777e: build(deps-dev): bump @testing-library/react-hooks from 7.0.2 to 8.0.0
  • 24254fd433: build(deps): bump @testing-library/user-event from 13.5.0 to 14.0.0
  • 3ff2bfb66e: Refactored the route collection logic to prepare for future changes and avoid duplicate element tree traversal for the analytics context.
  • a7bb762dab: fixed empty body issue for POST requests using FetchAPI with 'plugin://' prefix
  • 230ad0826f: Bump to using @types/node v16
  • c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.
  • Updated dependencies

1.0.1-next.1

Patch Changes

  • 24254fd433: build(deps): bump @testing-library/user-event from 13.5.0 to 14.0.0
  • 3ff2bfb66e: Refactored the route collection logic to prepare for future changes and avoid duplicate element tree traversal for the analytics context.
  • 230ad0826f: Bump to using @types/node v16
  • Updated dependencies

1.0.1-next.0

Patch Changes

  • a7bb762dab: fixed empty body issue for POST requests using FetchAPI with 'plugin://' prefix
  • c47509e1a0: Implemented changes suggested by Deepsource.io including multiple double non-null assertion operators and unexpected awaits for non-promise values.

1.0.0

Major Changes

  • b58c70c223: This package has been promoted to v1.0! To understand how this change affects the package, please check out our versioning policy.

Patch Changes

0.6.0

Minor Changes

  • bb2bb36651: BREAKING: Removed the deprecated get method from StorageAPI and its implementations, this method has been replaced by the snapshot method. The return value from snapshot no longer includes newValue which has been replaced by value. For getting notified when a value changes, use `observe# @backstage/core-app-api.
  • f3cce3dcf7: BREAKING: Removed export of GithubSession and SamlSession which are only used internally.
  • af5eaa87f4: BREAKING: Removed deprecated auth0AuthApiRef, oauth2ApiRef, samlAuthApiRef and oidcAuthApiRef as these APIs are too generic to be useful. Instructions for how to migrate can be found at https://backstage.io/docs/api/deprecations#generic-auth-api-refs.
  • dbf84eee55: BREAKING: Removed the deprecated GithubAuth.normalizeScopes method.

Patch Changes

0.5.4

Patch Changes

0.5.3

Patch Changes

0.5.2

Patch Changes

  • 40775bd263: Switched out the GithubAuth implementation to use the common OAuth2 implementation. This relies on the simultaneous change in @backstage/plugin-auth-backend that enabled access token storage in cookies rather than the current solution that's based on LocalStorage.

    NOTE: Make sure you upgrade the auth-backend deployment before or at the same time as you deploy this change.

0.5.2-next.0

Patch Changes

  • 40775bd263: Switched out the GithubAuth implementation to use the common OAuth2 implementation. This relies on the simultaneous change in @backstage/plugin-auth-backend that enabled access token storage in cookies rather than the current solution that's based on LocalStorage.

    NOTE: Make sure you upgrade the auth-backend deployment before or at the same time as you deploy this change.

0.5.1

Patch Changes

  • f959c22787: Asynchronous methods on the identity API can now reliably be called at any time, including early in the bootstrap process or prior to successful sign-in.

    Previously in such situations, a Tried to access IdentityApi before app was loaded error would be thrown. Now, those methods will wait and resolve eventually (as soon as a concrete identity API is provided).

0.5.0

Minor Changes

  • ceebe25391: Removed deprecated SignInResult type, which was replaced with the new onSignInSuccess callback.

Patch Changes

  • fb565073ec: Add an allowUrl callback option to FetchMiddlewares.injectIdentityAuth
  • f050eec2c0: Added validation during the application startup that detects if there are any plugins present that have not had their required external routes bound. Failing the validation will cause a hard crash as it is a programmer error. It lets you detect early on that there are dangling routes, rather than having them cause an error later on.
  • Updated dependencies

0.5.0-next.0

Minor Changes

  • ceebe25391: Removed deprecated SignInResult type, which was replaced with the new onSignInSuccess callback.

Patch Changes

0.4.0

Minor Changes

  • e2eb92c109: Removed previously deprecated ApiRegistry export.

Patch Changes

  • 34442cd5cf: Fixed an issue where valid SAML and GitHub sessions would be considered invalid and not be stored.

    Deprecated the SamlSession and GithubSession types.

  • 784d8078ab: Removed direct and transitive Material UI dependencies.

  • Updated dependencies

0.3.1

Patch Changes

0.3.0

Minor Changes

  • a195284c7b: Updated WebStorageApi to reflect the StorageApi changes in @backstage/core-plugin-api.
  • b3605da81c: - Removed deprecated definition createApp from @backstage/core-app-api which has been replaced by @backstage/app-defaults#createApp
    • Removed deprecated type BackstagePluginWithAnyOutput
    • Removed deprecated constructors for GithubAuth, OAuth2, and SamlAuth as the create method should be used instead
  • 68f8b10ccd: - Removed deprecation configuration option theme from AppTheme of the AppThemeApi
    • Removed reference to theme in the app-defaults default AppTheme
    • Removed logic in AppThemeProvider that creates ThemeProvider from appTheme.theme

Patch Changes

  • 7927005152: Add FetchApi and related fetchApiRef which implement fetch, with an added Backstage token header when available.
  • 518ddc00bc: Schema-validate local storage cached session info on load
  • Updated dependencies

0.2.1

Patch Changes

  • c11ce4f552: Deprecated Auth0Auth, pointing to using OAuth2 directly instead.
  • 9d6503e86c: Switched out usage of deprecated OAuthRequestApi types from @backstage/core-plugin-api.
  • Updated dependencies

0.2.0

Minor Changes

  • a036b65c2f: BREAKING CHANGE

    The app SignInPage component has been updated to switch out the onResult callback for a new onSignInSuccess callback. This is an immediate breaking change without any deprecation period, as it was deemed to be the way of making this change that had the lowest impact.

    The new onSignInSuccess callback directly accepts an implementation of an IdentityApi, rather than a SignInResult. The SignInPage from @backstage/core-component has been updated to fit this new API, and as long as you pass on props directly you should not see any breakage.

    However, if you implement your own custom SignInPage, then this will be a breaking change and you need to migrate over to using the new callback. While doing so you can take advantage of the UserIdentity.fromLegacy helper from @backstage/core-components to make the migration simpler by still using the SignInResult type. This helper is also deprecated though and is only provided for immediate migration. Long-term it will be necessary to build the IdentityApi using for example UserIdentity.create instead.

    The following is an example of how you can migrate existing usage immediately using UserIdentity.fromLegacy:

    ts
    onResult(signInResult);
    // becomes
    onSignInSuccess(UserIdentity.fromLegacy(signInResult));
    

    The following is an example of how implement the new onSignInSuccess callback of the SignInPage using UserIdentity.create:

    ts
    const identityResponse = await authApi.getBackstageIdentity();
    // Profile is optional and will be removed, but allows the
    // synchronous getProfile method of the IdentityApi to be used.
    const profile = await authApi.getProfile();
    onSignInSuccess(
      UserIdentity.create({
        identity: identityResponse.identity,
        authApi,
        profile,
      }),
    );
    

Patch Changes

0.1.24

Patch Changes

  • 0e7f256034: Fixed a bug where useRouteRef would fail in situations where relative navigation was needed and the app was is mounted on a sub-path. This would typically show up as a failure to navigate to a tab on an entity page.
  • Updated dependencies

0.1.23

Patch Changes

  • bab752e2b3: Change default port of backend from 7000 to 7007.

    This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.

    You can change the port back to 7000 or any other value by providing an app-config.yaml with the following values:

    backend:
      listen: 0.0.0.0:7123
      baseUrl: http://localhost:7123
    

    More information can be found here: https://backstage.io/docs/conf/writing

  • 000190de69: The ApiRegistry from @backstage/core-app-api class has been deprecated and will be removed in a future release. To replace it, we have introduced two new helpers that are exported from @backstage/test-utils, namely TestApiProvider and TestApiRegistry.

    These two new helpers are more tailored for writing tests and development setups, as they allow for partial implementations of each of the APIs.

    When migrating existing code it is typically best to prefer usage of TestApiProvider when possible, so for example the following code:

    tsx
    render(
      <ApiProvider
        apis={ApiRegistry.from([
          [identityApiRef, mockIdentityApi as unknown as IdentityApi]
        ])}
      >
        {...}
      </ApiProvider>
    )
    

    Would be migrated to this:

    tsx
    render(
      <TestApiProvider apis={[[identityApiRef, mockIdentityApi]]}>
        {...}
      </TestApiProvider>
    )
    

    In cases where the ApiProvider is used in a more standalone way, for example to reuse a set of APIs across multiple tests, the TestApiRegistry can be used instead. Note that the TestApiRegistry only has a single static factory method, .from(), and it is slightly different from the existing .from() method on ApiRegistry in that it doesn't require the API pairs to be wrapped in an outer array.

    Usage that looks like this:

    ts
    const apis = ApiRegistry.with(
      identityApiRef,
      mockIdentityApi as unknown as IdentityApi,
    ).with(configApiRef, new ConfigReader({}));
    

    OR like this:

    ts
    const apis = ApiRegistry.from([
      [identityApiRef, mockIdentityApi as unknown as IdentityApi],
      [configApiRef, new ConfigReader({})],
    ]);
    

    Would be migrated to this:

    ts
    const apis = TestApiRegistry.from(
      [identityApiRef, mockIdentityApi],
      [configApiRef, new ConfigReader({})],
    );
    

    If your app is still using the ApiRegistry to construct the apis for createApp, we recommend that you move over to use the new method of supplying API factories instead, using createApiFactory.

  • Updated dependencies

0.1.22

Patch Changes

  • Reverted the createApp TypeScript type to match the one before version 0.1.21, as it was an accidental breaking change.

0.1.21

Patch Changes

  • 0b1de52732: Migrated to using new ErrorApiError and ErrorApiErrorContext names.

  • ecd1fcb80a: Deprecated the BackstagePluginWithAnyOutput type.

  • 32bfbafb0f: Start exporting and marking several types as public to address errors in the API report.

  • 014cbf8cb9: The createApp function from @backstage/core-app-api has been deprecated, with two new options being provided as a replacement.

    The first and most commonly used one is createApp from the new @backstage/app-defaults package, which behaves just like the existing createApp. In the future this method is likely to be expanded to add more APIs and other pieces into the default setup, for example the Utility APIs from @backstage/integration-react.

    The other option that we now provide is to use createSpecializedApp from @backstage/core-app-api. This is a more low-level API where you need to provide a full set of options, including your own components, icons, defaultApis, and themes. The createSpecializedApp way of creating an app is particularly useful if you are not using @backstage/core-components or Material UI, as it allows you to avoid those dependencies completely.

  • 475edb5bc5: move the BehaviorSubject init into the constructor

  • Updated dependencies

0.1.20

Patch Changes

  • 78c512ce8f: I have added default icons for the catalog, scaffolder, techdocs, and search.
  • 8b4284cd5c: Improve API documentation for @backstage/core-plugin-api
  • Updated dependencies

0.1.19

Patch Changes

  • 10615525f3: Switch to use the json and observable types from @backstage/types
  • 41c49884d2: Start using the new @backstage/types package. Initially, this means using the Observable and Json* types from there. The types also remain in their old places but deprecated, and will be removed in a future release.
  • 925a967f36: Replace usage of test-utils-core with test-utils
  • 6b615e92c8: Api cleanup, adding @public where necessary and tweaking some comments
  • Updated dependencies

0.1.18

Patch Changes

  • 202f322927: Atlassian auth provider

    • AtlassianAuth added to core-app-api
    • Atlassian provider added to plugin-auth-backend
    • Updated user-settings with Atlassian connection
  • 36e67d2f24: Internal updates to apply more strict checks to throw errors.

  • Updated dependencies

0.1.17

Patch Changes

0.1.16

Patch Changes

  • d9fd798cc8: The Core App API now automatically instruments all route location changes using the new Analytics API. Each location change triggers a navigate event, which is an analogue of a "pageview" event in traditional web analytics systems. In addition to the path, these events provide plugin-level metadata via the analytics context, which can be useful for analyzing plugin usage:

    json
    {
      "action": "navigate",
      "subject": "/the-path/navigated/to?with=params#and-hashes",
      "context": {
        "extension": "App",
        "pluginId": "id-of-plugin-that-exported-the-route",
        "routeRef": "associated-route-ref-id"
      }
    }
    

    These events can be identified and handled by checking for the action navigate and the extension App.

  • 4c3eea7788: Bitbucket Cloud authentication - based on the existing GitHub authentication + changes around BB apis and updated scope.

    • BitbucketAuth added to core-app-api.
    • Bitbucket provider added to plugin-auth-backend.
    • Cosmetic entry for Bitbucket connection in user-settings Authentication Providers tab.
  • d6ad46eb22: Stop calling connector.removeSession in StaticAuthSessionManager, instead just discarding the session locally.

  • Updated dependencies

0.1.15

Patch Changes

  • 0c4ee1876f: Enables late registration of plugins into the application by updating ApiHolder when additional plugins have been added in.
  • Updated dependencies

0.1.14

Patch Changes

0.1.13

Patch Changes

  • 671015f132: Switch to using utilities from `@backstage/version-bridge'.
  • bd1981d609: Allow users to specify their own AppThemeProvider
  • Updated dependencies

0.1.12

Patch Changes

0.1.11

Patch Changes

0.1.10

Patch Changes

  • cfcb486aa: Add system icons for the built-in entity types and use them in the entity list of the catalog-import plugin.

  • 392b36fa1: Added support for using authenticating via GitHub Apps in addition to GitHub OAuth Apps. It used to be possible to use GitHub Apps, but they did not handle session refresh correctly.

    Note that GitHub Apps handle OAuth scope at the app installation level, meaning that the scope parameter for getAccessToken has no effect. When calling getAccessToken in open source plugins, one should still include the appropriate scope, but also document in the plugin README what scopes are required in the case of GitHub Apps.

    In addition, the authHandler and signInResolver options have been implemented for the GitHub provider in the auth backend.

  • Updated dependencies

0.1.9

Patch Changes

0.1.8

Patch Changes

  • 362657623: Add support for serving the app with a base path other than /, which is enabled by including the path in app.baseUrl.
  • 56c773909: Switched @types/react dependency to request * rather than a specific version.
  • Updated dependencies

0.1.7

Patch Changes

0.1.6

Patch Changes

  • 9d40fcb1e: - Bumping material-ui/core version to at least 4.12.2 as they made some breaking changes in later versions which broke Pagination of the Table.
    • Switching out material-table to @material-table/core for support for the later versions of material-ui/core
    • This causes a minor API change to @backstage/core-components as the interface for Table re-exports the prop from the underlying Table components.
    • onChangeRowsPerPage has been renamed to onRowsPerPageChange
    • onChangePage has been renamed to onPageChange
    • Migration guide is here: https://material-table-core.com/docs/breaking-changes
  • Updated dependencies

0.1.5

Patch Changes

  • ea249c6e6: Fix a bug in FlatRoutes that prevented outlets from working with the root route, as well as matching root routes too broadly.
  • Updated dependencies

0.1.4

Patch Changes

  • 62abffee4: Reintroduce export of defaultConfigLoader.
  • Updated dependencies

0.1.3

Patch Changes

  • dc3e7ce68: Introducing new UnhandledErrorForwarder installed by default. For catching unhandled promise rejections, you can override the API to align with general error handling.
  • 5f4339b8c: Adding FeatureFlag component and treating FeatureFlags as first class citizens to composability API
  • Updated dependencies

0.1.2

Patch Changes

  • 9bca2a252: Fixes a type bug where supplying all app icons to createApp was required, rather than just a partial list.

  • 75b8537ce: This change adds automatic error boundaries around extensions.

    This means that all exposed parts of a plugin are wrapped in a general error boundary component, that is plugin aware. The default design for the error box is borrowed from @backstage/errors. To override the default "fallback", one must provide a component named ErrorBoundaryFallback to createApp, like so:

    ts
    const app = createApp({
      components: {
        ErrorBoundaryFallback: props => {
          // a custom fallback component
          return (
            <>
              <h1>Oops.</h1>
              <h2>
                The plugin {props.plugin.getId()} failed with{' '}
                {props.error.message}
              </h2>
              <button onClick={props.resetError}>Try again</button>
            </>
          );
        },
      },
    });
    

    The props here include:

    • error. An Error object or something that inherits it that represents the error that was thrown from any inner component.
    • resetError. A callback that will simply attempt to mount the children of the error boundary again.
    • plugin. A BackstagePlugin that can be used to look up info to be presented in the error message. For instance, you may want to keep a map of your internal plugins and team names or slack channels and present these when an error occurs. Typically, you'll do that by getting the plugin ID with plugin.getId().
  • da8cba44f: Deprecate and disable the extension creation methods, which were added to this package by mistake and should only exist within @backstage/core-plugin-api.

  • 9bca2a252: Update createApp options to allow plugins with unknown output types in order to improve forwards and backwards compatibility.

  • Updated dependencies [e47336ea4]

  • Updated dependencies [75b8537ce]

  • Updated dependencies [da8cba44f]

0.1.1

Patch Changes

@backstage/[email protected]

@backstage/core-plugin-api

1.12.2-next.0

Patch Changes

  • 53b6549: Plugins in the new frontend system now have a pluginId field rather than id to better align with naming conventions used throughout the frontend and backend systems. The old field is still present but marked as deprecated. All internal code has been updated to prefer pluginId while maintaining backward compatibility by falling back to id when needed.
  • 69d880e: Bump to latest zod to ensure it has the latest features
  • Updated dependencies

1.12.1

Patch Changes

  • 358c6f7: The useApp and useRouteRef functions are now forwards compatible with the new frontend system. Along with the previous route reference changes this means that there is no longer a need to use compatWrapper from @backstage/core-compat-api to make code based on @backstage/core-plugin-api compatible with @backstage/frontend-plugin-api APIs.
  • 97cd16f: Reversed the relationship between the old @backstage/core-plugin-api and the new @backstage/frontend-plugin-api. Previously, the a lot of API definitions and utilities where defined in the old and re-exported from the old, but this change flips that around so that they now reside in the new package and are re-exported from the old. The external API of both packages remain the same, but this is a step towards being able to add further compatibility with the new frontend system built into the old.
  • Updated dependencies

1.12.1-next.0

Patch Changes

  • 358c6f7: The useApp and useRouteRef functions are now forwards compatible with the new frontend system. Along with the previous route reference changes this means that there is no longer a need to use compatWrapper from @backstage/core-compat-api to make code based on @backstage/core-plugin-api compatible with @backstage/frontend-plugin-api APIs.
  • 97cd16f: Reversed the relationship between the old @backstage/core-plugin-api and the new @backstage/frontend-plugin-api. Previously, the a lot of API definitions and utilities where defined in the old and re-exported from the old, but this change flips that around so that they now reside in the new package and are re-exported from the old. The external API of both packages remain the same, but this is a step towards being able to add further compatibility with the new frontend system built into the old.
  • Updated dependencies

1.12.0

Minor Changes

  • 83439b1: All route references are now forwards compatible with the new frontend system, i.e. @backstage/frontend-plugin-api. This means they no longer need to be converted with convertLegacyRouteRef or convertLegacyRouteRefs from @backstage/core-compat-api.

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns
  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

1.11.2-next.1

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns

1.11.2-next.0

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

1.11.1

Patch Changes

1.11.1-next.0

Patch Changes

1.11.0

Minor Changes

  • 5114627: Make openshiftAuthApiRef available in @backstage/core-plugin-api.

Patch Changes

1.10.9

Patch Changes

  • f6ffea6: Add optional message field for auth providers. This is intended to be a user friendly message that displays in the OAuth request dialog. A default message will be displayed if one is not provided.
  • Updated dependencies

1.10.9-next.0

Patch Changes

1.10.8

Patch Changes

1.10.7

Patch Changes

  • 73f6cc3: The TranslationApi now supports interpolation of JSX elements by passing them directly as values to the translation function. If any of the provided interpolation values are JSX elements, the translation function will return a JSX element instead of a string.
  • Updated dependencies

1.10.7-next.0

Patch Changes

  • 73f6cc3: The TranslationApi now supports interpolation of JSX elements by passing them directly as values to the translation function. If any of the provided interpolation values are JSX elements, the translation function will return a JSX element instead of a string.
  • Updated dependencies

1.10.6

Patch Changes

1.10.6-next.0

Patch Changes

1.10.5

Patch Changes

1.10.4

Patch Changes

  • 58ec9e7: Removed older versions of React packages as a preparatory step for upgrading to React 19. This commit does not introduce any functional changes, but removes dependencies on previous React versions, allowing for a cleaner upgrade path in subsequent commits.
  • Updated dependencies

1.10.4-next.0

Patch Changes

  • 58ec9e7: Removed older versions of React packages as a preparatory step for upgrading to React 19. This commit does not introduce any functional changes, but removes dependencies on previous React versions, allowing for a cleaner upgrade path in subsequent commits.
  • Updated dependencies

1.10.3

Patch Changes

1.10.3-next.0

Patch Changes

1.10.2

Patch Changes

1.10.2-next.0

Patch Changes

1.10.1

Patch Changes

1.10.0

Minor Changes

  • bfd4bec: BREAKING PRODUCERS: The IconComponent no longer accepts fontSize="default". This has effectively been removed from Material-UI since its last two major versions, and has not worked properly for them in a long time.

    This change should not have an effect on neither users of MUI4 nor MUI5/6, since the updated interface should still let you send the respective SvgIcon types into interfaces where relevant (e.g. as app icons).

Patch Changes

1.10.0-next.1

Patch Changes

1.10.0-next.0

Minor Changes

  • bfd4bec: BREAKING PRODUCERS: The IconComponent no longer accepts fontSize="default". This has effectively been removed from Material-UI since its last two major versions, and has not worked properly for them in a long time.

    This change should not have an effect on neither users of MUI4 nor MUI5/6, since the updated interface should still let you send the respective SvgIcon types into interfaces where relevant (e.g. as app icons).

Patch Changes

1.9.4

Patch Changes

1.9.4-next.0

Patch Changes

1.9.3

Patch Changes

  • 35fbe09: A new defaultTarget option has been added to createExternalRouteRef. This allows one to specify a default target of the route by name, for example 'catalog.catalogIndex', which will be used if the target route is present in the app and there is no explicit route binding.
  • Updated dependencies

1.9.3-next.0

Patch Changes

  • 35fbe09: Added a new defaultTarget option to createExternalRouteRef. I lets you specify a default target of the route by name, for example 'catalog.catalogIndex', which will be used if the target route is present in the app and there is no explicit route binding.
  • Updated dependencies

1.9.2

Patch Changes

1.9.1

Patch Changes

1.9.1-next.1

Patch Changes

1.9.1-next.0

Patch Changes

1.9.0

Minor Changes

  • f919be9: Added a utility API for VMware Cloud auth; the API ref is available in the @backstage/core-plugin-api and @backstage/frontend-plugin-api packages, the implementation is in @backstage/core-app-api and a factory has been added to @backstage/app-defaults.

Patch Changes

1.9.0-next.1

Minor Changes

  • f919be9: Added a utility API for VMware Cloud auth; the API ref is available in the @backstage/core-plugin-api and @backstage/frontend-plugin-api packages, the implementation is in @backstage/core-app-api and a factory has been added to @backstage/app-defaults.

Patch Changes

1.8.3-next.0

Patch Changes

1.8.2

Patch Changes

1.8.2-next.0

Patch Changes

1.8.1

Patch Changes

  • 03d0b6d: Removed the alpha convertLegacyRouteRef utility, which as been moved to @backstage/core-compat-api
  • 0c93dc3: The createTranslationRef function from the /alpha subpath can now also accept a nested object structure of default translation messages, which will be flatted using . separators.
  • Updated dependencies

1.8.1-next.1

Patch Changes

  • 0c93dc37b2: The createTranslationRef function from the /alpha subpath can now also accept a nested object structure of default translation messages, which will be flatted using . separators.
  • Updated dependencies

1.8.1-next.0

Patch Changes

1.8.0

Minor Changes

  • 1e5b7d993a: IconComponent can now have a fontSize of inherit, which is useful for in-line icons.
  • cb6db75bc2: Introduced AnyRouteRefParams as a replacement for AnyParams, which is now deprecated.

Patch Changes

  • 6c2b872153: Add official support for React 18.
  • cb6db75bc2: Deprecated several types related to the routing system that are scheduled to be removed, as well as several fields on the route ref types themselves.
  • 68fc9dc60e: Added a new /alpha export convertLegacyRouteRef, which is a temporary utility to allow existing route refs to be used with the new experimental packages.
  • Updated dependencies

1.8.0-next.0

Minor Changes

  • 1e5b7d993a: IconComponent can now have a fontSize of inherit, which is useful for in-line icons.
  • cb6db75bc2: Introduced AnyRouteRefParams as a replacement for AnyParams, which is now deprecated.

Patch Changes

  • 6c2b872153: Add official support for React 18.
  • cb6db75bc2: Deprecated several types related to the routing system that are scheduled to be removed, as well as several fields on the route ref types themselves.
  • 68fc9dc60e: Added a new /alpha export convertLegacyRouteRef, which is a temporary utility to allow existing route refs to be used with the new experimental packages.
  • Updated dependencies

1.7.0

Minor Changes

  • 322bbcae24: Removed the exprimental plugin configuration API. The __experimentalReconfigure() from the plugin options as well as the __experimentalConfigure() method on plugin instances have both been removed.

Patch Changes

  • 0b55f773a7: Removed some unused dependencies
  • 9a1fce352e: Updated dependency @testing-library/jest-dom to ^6.0.0.
  • f95af4e540: Updated dependency @testing-library/dom to ^9.0.0.
  • Updated dependencies

1.7.0-next.1

Patch Changes

1.7.0-next.0

Minor Changes

  • 322bbcae24: Removed the exprimental plugin configuration API. The __experimentalReconfigure() from the plugin options as well as the __experimentalConfigure() method on plugin instances have both been removed.

Patch Changes

1.6.0

Minor Changes

  • 18619f793c94: Added the optional expiresAt field that may now be part of a BackstageIdentityResponse.
  • 6e30769cc627: Introduced experimental support for internationalization.

Patch Changes

1.6.0-next.3

Patch Changes

1.6.0-next.2

Minor Changes

  • 6e30769cc627: Introduced experimental support for internationalization.

Patch Changes

1.6.0-next.1

Patch Changes

1.6.0-next.0

Minor Changes

  • 18619f793c94: Added the optional expiresAt field that may now be part of a BackstageIdentityResponse.

Patch Changes

1.5.3

Patch Changes

1.5.3-next.1

Patch Changes

1.5.3-next.0

Patch Changes

  • 13426ebd1235: Change IconComponent type to be compatible with Material UI v5 icons.
  • Updated dependencies

1.5.2

Patch Changes

  • 12adfbc8fe2d: Fixed a bug that prevented accurate plugin and route data from being applied to navigate analytics events when users visited pages constructed with <EntityLayout>, <TabbedLayout>, and similar components that are used to gather one or more routable extensions under a given path.
  • 74b216ee4e50: Add PropsWithChildren to usages of ComponentType, in preparation for React 18 where the children are no longer implicit.
  • Updated dependencies

1.5.2-next.0

Patch Changes

1.5.1

Patch Changes

1.5.1-next.1

Patch Changes

1.5.1-next.0

Patch Changes

1.5.0

Minor Changes

  • ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.

Patch Changes

1.5.0-next.2

Minor Changes

  • ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.

Patch Changes

1.4.1-next.1

Patch Changes

1.4.1-next.0

Patch Changes

1.4.0

Minor Changes

  • db10b6ef65: Added a Bitbucket Server Auth Provider and added its API to the app defaults

Patch Changes

1.3.0

Minor Changes

Patch Changes

1.3.0-next.1

Minor Changes

Patch Changes

1.2.1-next.0

Patch Changes

1.2.0

Minor Changes

  • 9a1864976a: Added a new display property to the AlertMessage which can accept the values permanent or transient.

    Here's a rough example of how to trigger an alert using the new display property:

    ts
    import { alertApiRef, useApi } from '@backstage/core-plugin-api';
    
    const ExampleTransient = () => {
      const alertApi = useApi(alertApiRef);
      alertApi.post({
        message: 'Example of Transient Alert',
        severity: 'success',
        display: 'transient',
      });
    };
    

Patch Changes

  • d56127c712: useRouteRef - Limit re-resolving to location pathname changes only
  • 3280711113: Updated dependency msw to ^0.49.0.
  • 19356df560: Updated dependency zen-observable to ^0.9.0.
  • c3fa90e184: Updated dependency zen-observable to ^0.10.0.
  • Updated dependencies

1.2.0-next.2

Minor Changes

  • 9a1864976a: Added a new display property to the AlertMessage which can accept the values permanent or transient.

    Here's a rough example of how to trigger an alert using the new display property:

    ts
    import { alertApiRef, useApi } from '@backstage/core-plugin-api';
    
    const ExampleTransient = () => {
      const alertApi = useApi(alertApiRef);
      alertApi.post({
        message: 'Example of Transient Alert',
        severity: 'success',
        display: 'transient',
      });
    };
    

Patch Changes

1.1.1-next.1

Patch Changes

1.1.1-next.0

Patch Changes

1.1.0

Minor Changes

  • a228f113d0: The app Router component now accepts an optional basename property.

Patch Changes

1.1.0-next.0

Minor Changes

  • a228f113d0: The app Router component now accepts an optional basename property.

Patch Changes

1.0.7

Patch Changes

1.0.7-next.2

Patch Changes

1.0.7-next.1

Patch Changes

1.0.7-next.0

Patch Changes

1.0.6

Patch Changes

  • 817f3196f6: Updated React Router dependencies to be peer dependencies.
  • 7d47def9c4: Removed dependency on @types/jest.
  • 744fea158b: Added getSystemIcons() function to the AppContext available through useApp that will pull a list of all the icons that have been registered in the App.
  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.
  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • ef9ab322de: Minor API signatures cleanup
  • Updated dependencies

1.0.6-next.3

Patch Changes

  • 7d47def9c4: Removed dependency on @types/jest.
  • Updated dependencies

1.0.6-next.2

Patch Changes

  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.

1.0.6-next.1

Patch Changes

  • 817f3196f6: Updated React Router dependencies to be peer dependencies.

1.0.6-next.0

Patch Changes

  • 744fea158b: Added getSystemIcons() function to the AppContext available through useApp that will pull a list of all the icons that have been registered in the App.
  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • ef9ab322de: Minor API signatures cleanup

1.0.5

Patch Changes

  • 80da5162c7: Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining __experimentalConfigure in your createPlugin options. See https://backstage.io/docs/plugins/customization.md for more information.

    This is an experimental feature and it will have breaking changes in the future.

  • 87649a06bf: Add a note that the fetchApi utility should not be used on sign-in page implementations and similar.

1.0.5-next.0

Patch Changes

  • 80da5162c7: Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining __experimentalConfigure in your createPlugin options. See https://backstage.io/docs/plugins/customization.md for more information.

    This is an experimental feature and it will have breaking changes in the future.

1.0.4

Patch Changes

  • 881fc75a75: Internal tweak removing usage of explicit type parameters for the BackstagePlugin type.
  • a70869e775: Updated dependency msw to ^0.43.0.
  • 8006d0f9bf: Updated dependency msw to ^0.44.0.
  • 2990fff4e5: Enabled the @backstage/core-plugin-api/alpha entry point.

1.0.4-next.0

Patch Changes

  • 881fc75a75: Internal tweak removing usage of explicit type parameters for the BackstagePlugin type.
  • a70869e775: Updated dependency msw to ^0.43.0.
  • 2990fff4e5: Enabled the @backstage/core-plugin-api/alpha entry point.

1.0.3

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.

1.0.3-next.0

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.

1.0.2

Patch Changes

  • b653a5595c: The authentication APIs are no longer @alpha. Since the @backstage/core-plugin-api has no /alpha entrypoint, the only effect of marking the APIs as @alpha was to hide them in documentation. They are still expected to be widely used and there will be a migration path if they are changed in the future.
  • Updated dependencies

1.0.2-next.1

Patch Changes

1.0.2-next.0

Patch Changes

  • b653a5595c: The authentication APIs are no longer @alpha. Since the @backstage/core-plugin-api has no /alpha entrypoint, the only effect of marking the APIs as @alpha was to hide them in documentation. They are still expected to be widely used and there will be a migration path if they are changed in the future.

1.0.1

Patch Changes

  • 7c7919777e: build(deps-dev): bump @testing-library/react-hooks from 7.0.2 to 8.0.0
  • 24254fd433: build(deps): bump @testing-library/user-event from 13.5.0 to 14.0.0
  • 230ad0826f: Bump to using @types/node v16
  • Updated dependencies

1.0.1-next.0

Patch Changes

  • 24254fd433: build(deps): bump @testing-library/user-event from 13.5.0 to 14.0.0
  • 230ad0826f: Bump to using @types/node v16

1.0.0

Major Changes

  • b58c70c223: This package has been promoted to v1.0! To understand how this change affects the package, please check out our versioning policy.

Patch Changes

0.8.0

Minor Changes

  • bb2bb36651: BREAKING: Removed the deprecated get method from StorageAPI and its implementations, this method has been replaced by the snapshot method. The return value from snapshot no longer includes newValue which has been replaced by value. For getting notified when a value changes, use `observe# @backstage/core-plugin-api.
  • af5eaa87f4: BREAKING: Removed deprecated auth0AuthApiRef, oauth2ApiRef, samlAuthApiRef and oidcAuthApiRef as these APIs are too generic to be useful. Instructions for how to migrate can be found at https://backstage.io/docs/api/deprecations#generic-auth-api-refs.
  • a480f670c7: BREAKING: OAuth provider id is now required when passing a provider to createAuthRequester.

0.7.0

Minor Changes

  • 33cd215b11: BREAKING: Removed deprecated AnyAnalyticsContext type which is replaced by AnalyticsContextValue

0.6.1

Patch Changes

  • 1ed305728b: Bump node-fetch to version 2.6.7 and cross-fetch to version 3.1.5
  • c77c5c7eb6: Added backstage.role to package.json
  • 2714145cf5: Removes unused react-use dependency.
  • Updated dependencies

0.6.0

Minor Changes

  • ceebe25391: Removed deprecated IdentityApi methods: getUserId, getIdToken, and getProfile.

    Existing usage of getUserId can be replaced by getBackstageIdentity, more precisely the equivalent of the previous userId can be retrieved like this:

    ts
    import { parseEntityRef } from '@backstage/catalog-model';
    
    const identity = await identityApi.getBackstageIdentity();
    const { name: userId } = parseEntityRef(identity.userEntityRef);
    

    Note that it is recommended to consume the entire userEntityRef rather than parsing out just the name, in order to support namespaces.

    Existing usage of getIdToken can be replaced by getCredentials, like this:

    ts
    const { token } = await identityApi.getCredentials();
    

    And existing usage of getProfile is replaced by getProfileInfo, which returns the same profile object, but is now async.

  • ceebe25391: Removed deprecated SignInResult type, which was replaced with the new onSignInSuccess callback.

  • d879072b0c: Removed the deprecated id field of BackstageIdentityResponse.

    Existing usage can be replaced by parsing the name of the identity.userEntityRef with parseEntityRef from @backstage/catalog-model, although note that it is recommended to consume the entire userEntityRef in order to support namespaces.

  • 94c02b4246: Removed deprecated BackstageIdentity type, which was replaced by BackstageIdentityResponse.

  • 234a36405b: Removed deprecated OAuthRequestApi types: AuthProvider, AuthRequesterOptions, AuthRequester, and PendingAuthRequest.

Patch Changes

0.6.0-next.0

Minor Changes

  • ceebe25391: Removed deprecated IdentityApi methods: getUserId, getIdToken, and getProfile.

    Existing usage of getUserId can be replaced by getBackstageIdentity, more precisely the equivalent of the previous userId can be retrieved like this:

    ts
    import { parseEntityRef } from '@backstage/catalog-model';
    
    const identity = await identityApi.getBackstageIdentity();
    const { name: userId } = parseEntityRef(identity.userEntityRef);
    

    Note that it is recommended to consume the entire userEntityRef rather than parsing out just the name, in order to support namespaces.

    Existing usage of getIdToken can be replaced by getCredentials, like this:

    ts
    const { token } = await identityApi.getCredentials();
    

    And existing usage of getProfile is replaced by getProfileInfo, which returns the same profile object, but is now async.

  • ceebe25391: Removed deprecated SignInResult type, which was replaced with the new onSignInSuccess callback.

  • d879072b0c: Removed the deprecated id field of BackstageIdentityResponse.

    Existing usage can be replaced by parsing the name of the identity.userEntityRef with parseEntityRef from @backstage/catalog-model, although note that it is recommended to consume the entire userEntityRef in order to support namespaces.

  • 94c02b4246: Removed deprecated BackstageIdentity type, which was replaced by BackstageIdentityResponse.

  • 234a36405b: Removed deprecated OAuthRequestApi types: AuthProvider, AuthRequesterOptions, AuthRequester, and PendingAuthRequest.

Patch Changes

0.5.0

Minor Changes

  • 784d8078ab: Removed the deprecated OldIconComponent type.

  • e2eb92c109: Removed previously deprecated exports: PluginHooks, PluginOutput, and FeatureFlagOutput.

    The deprecated register method of PluginConfig has been removed, as well as the deprecated output method of BackstagePlugin.

Patch Changes

  • 784d8078ab: Removed direct and transitive Material UI dependencies.
  • Updated dependencies

0.4.1

Patch Changes

  • c534ef2242: Deprecated OldIconComponent. Existing usage should be replaced with IconComponent.

0.4.0

Minor Changes

  • a195284c7b: BREAKING CHANGE The StorageApi has received several updates that fills in gaps for some use-cases and makes it easier to avoid mistakes:

    • The StorageValueChange type has been renamed to StorageValueSnapshot, the newValue property has been renamed to value, the stored value type has been narrowed to JsonValue, and it has received a new presence property that is 'unknown', 'absent', or 'present'.
    • The get method has been deprecated in favor of a new snapshot method, which returns a StorageValueSnapshot.
    • The observe# @backstage/core-plugin-api method has had its contract changed. It should now emit values when thepresenceof a key changes, this may for example happen when remotely stored values are requested on page load and the presence switches from'unknown'to either'absent'or'present'`.

    The above changes have been made with deprecations in place to maintain much of the backwards compatibility for consumers of the StorageApi. The only breaking change is the narrowing of the stored value type, which may in some cases require the addition of an explicit type parameter to the get and `observe# @backstage/core-plugin-api methods.

  • f6722d2458: - Removed deprecated option description from ApiRefConfig

    • Removed descriptions from all plugin API refs
    • Removed deprecated parameters path, icon, and title in createRouteRef
    • Removed deprecated types Error and ErrorContext from ErrorApi
  • 68f8b10ccd: - Removed deprecation configuration option theme from AppTheme of the AppThemeApi

    • Removed reference to theme in the app-defaults default AppTheme
    • Removed logic in AppThemeProvider that creates ThemeProvider from appTheme.theme
  • 6b69b44862: Removed deprecated types ApiRefType and ApiRefsToTypes

Patch Changes

  • 7927005152: Add FetchApi and related fetchApiRef which implement fetch, with an added Backstage token header when available.

0.3.1

Patch Changes

  • 18d4f500af: Deprecated the AnyAnalyticsContext type and mark the AnalyticsApi experimental.

  • 8a7372cfd5: Deprecated auth0AuthApiRef, oauth2ApiRef, oidcAuthApiRef, samlAuthApiRef, and marked the rest of the auth ApiRefs as experimental. For more information on how to address the deprecations, see https://backstage.io/docs/api/deprecations#generic-auth-api-refs.

  • 760791a642: Renamed AuthProvider to AuthProviderInfo and add a required 'id' property to match the majority of usage. The AuthProvider type without the id property still exists but is deprecated, and all usage of it without an id is deprecated as well. For example, calling createAuthRequest without a provider.id is deprecated and it will be required in the future.

    The following types have been renamed. The old names are still exported but deprecated, and are scheduled for removal in a future release.

    • Renamed AuthRequesterOptions to OAuthRequesterOptions
    • Renamed AuthRequester to OAuthRequester
    • Renamed PendingAuthRequest to PendingOAuthRequest

0.3.0

Minor Changes

  • a036b65c2f: The IdentityApi has received several updates. The getUserId, getProfile, and getIdToken have all been deprecated.

    The replacement for getUserId is the new getBackstageIdentity method, which provides both the userEntityRef as well as the ownershipEntityRefs that are used to resolve ownership. Existing usage of the user ID would typically be using a fixed entity kind and namespace, for example `user:default/${identityApi.getUserId()}`, this kind of usage should now instead use the userEntityRef directly.

    The replacement for getProfile is the new async getProfileInfo.

    The replacement for getIdToken is the new getCredentials method, which provides an optional token to the caller like before, but it is now wrapped in an object for forwards compatibility.

    The deprecated idToken field of the BackstageIdentity type has been removed, leaving only the new token field, which should be used instead. The BackstageIdentity also received a new identity field, which is a decoded version of the information within the token. Furthermore the BackstageIdentity has been renamed to BackstageIdentityResponse, with the old name being deprecated.

    We expect most of the breaking changes in this update to have low impact since the IdentityApi implementation is provided by the app, but it is likely that some tests need to be updated.

    Another breaking change is that the SignInPage props have been updated, and the SignInResult type is now deprecated. This is unlikely to have any impact on the usage of this package, but it is an important change that you can find more information about in the @backstage/core-app-api CHANGELOG.md.

Patch Changes

  • cd450844f6: Moved React dependencies to peerDependencies and allow both React v16 and v17 to be used.
  • dcd1a0c3f4: Minor improvement to the API reports, by not unpacking arguments directly
  • Updated dependencies

0.2.2

Patch Changes

  • b291d0ed7e: Tweaked the logged deprecation warning for createRouteRef to hopefully make it more clear.
  • bacb94ea8f: Documented the options of each of the extension creation functions.
  • Updated dependencies

0.2.1

Patch Changes

  • 950b36393c: Deprecated register option of createPlugin and the outputs methods of the plugin instance.

    Introduces the featureFlags property to define your feature flags instead.

0.2.0

Minor Changes

  • 7e18ed7f29: Removed the unused UserFlags type.
  • 7df99cdb77: Remove exports of unused types(RouteOptions and RoutePath).

Patch Changes

  • 37ebea2d68: Add deprecation warnings around title icon and path as they are no longer controlled when creating routeRefs
  • 2dd2a7b2cc: Deprecated the theme property on AppTheme, replacing it with Provider. See https://backstage.io/docs/api/deprecations#app-theme for more details.
  • b6a4bacdc4: Deprecated the Error and ErrorContext types, replacing them with identical ErrorApiError and ErrorApiErrorContext types.

0.1.13

Patch Changes

  • 4a336fd292: Deprecate use of extensions without name. Adds a warning to the developer console to prompt integrators to provide names for extensions.
  • 8b4284cd5c: Improve API documentation for @backstage/core-plugin-api
  • e059aea7b9: Deprecate unused ApiRef types
  • Updated dependencies

0.1.12

Patch Changes

  • 41c49884d2: Start using the new @backstage/types package. Initially, this means using the Observable and Json* types from there. The types also remain in their old places but deprecated, and will be removed in a future release.
  • 925a967f36: Replace usage of test-utils-core with test-utils
  • Updated dependencies

0.1.11

Patch Changes

  • 202f322927: Atlassian auth provider

    • AtlassianAuth added to core-app-api
    • Atlassian provider added to plugin-auth-backend
    • Updated user-settings with Atlassian connection
  • 36e67d2f24: Internal updates to apply more strict checks to throw errors.

0.1.10

Patch Changes

  • 829bc698f4: Introducing the Analytics API: a lightweight way for plugins to instrument key events that could help inform a Backstage Integrator how their instance of Backstage is being used. The API consists of the following:

    • useAnalytics(), a hook to be used inside plugin components which retrieves an Analytics Tracker.
    • tracker.captureEvent(), a method on the tracker used to instrument key events. The method expects an action (the event name) and a subject (a unique identifier of the object the action is being taken on).
    • <AnalyticsContext />, a way to declaratively attach additional information to any/all events captured in the underlying React tree. There is also a withAnalyticsContext() HOC utility.
    • The tracker.captureEvent() method also accepts an attributes option for providing additional run-time information about an event, as well as a value option for capturing a numeric/metric value.

    By default, captured events are not sent anywhere. In order to collect and redirect events to an analytics system, the analyticsApi will need to be implemented and instantiated by an App Integrator.

  • 4c3eea7788: Bitbucket Cloud authentication - based on the existing GitHub authentication + changes around BB apis and updated scope.

    • BitbucketAuth added to core-app-api.
    • Bitbucket provider added to plugin-auth-backend.
    • Cosmetic entry for Bitbucket connection in user-settings Authentication Providers tab.

0.1.9

Patch Changes

  • 98bd661240: Improve compatibility between different versions by defining the route reference type using a string key rather than a unique symbol. This change only applies to type checking and has no effect on the runtime value, where we still use the symbol.

0.1.8

Patch Changes

  • 671015f132: Switch to using utilities from `@backstage/version-bridge'.

0.1.7

Patch Changes

  • 3d238b028: Migrated component data attachment method to have better compatibility with component proxies such as react-hot-loader.
  • Updated dependencies

0.1.6

Patch Changes

  • 56c773909: Switched @types/react dependency to request * rather than a specific version.

0.1.5

Patch Changes

  • c4d8ff963: Switched frontend identity code to use token instead of the deprecated idToken field
  • Updated dependencies

0.1.4

Patch Changes

  • 9d40fcb1e: - Bumping material-ui/core version to at least 4.12.2 as they made some breaking changes in later versions which broke Pagination of the Table.
    • Switching out material-table to @material-table/core for support for the later versions of material-ui/core
    • This causes a minor API change to @backstage/core-components as the interface for Table re-exports the prop from the underlying Table components.
    • onChangeRowsPerPage has been renamed to onRowsPerPageChange
    • onChangePage has been renamed to onPageChange
    • Migration guide is here: https://material-table-core.com/docs/breaking-changes
  • Updated dependencies

0.1.3

Patch Changes

  • 5f4339b8c: Adding FeatureFlag component and treating FeatureFlags as first class citizens to composability API

0.1.2

Patch Changes

  • 75b8537ce: This change adds automatic error boundaries around extensions.

    This means that all exposed parts of a plugin are wrapped in a general error boundary component, that is plugin aware. The default design for the error box is borrowed from @backstage/errors. To override the default "fallback", one must provide a component named ErrorBoundaryFallback to createApp, like so:

    ts
    const app = createApp({
      components: {
        ErrorBoundaryFallback: props => {
          // a custom fallback component
          return (
            <>
              <h1>Oops.</h1>
              <h2>
                The plugin {props.plugin.getId()} failed with{' '}
                {props.error.message}
              </h2>
              <button onClick={props.resetError}>Try again</button>
            </>
          );
        },
      },
    });
    

    The props here include:

    • error. An Error object or something that inherits it that represents the error that was thrown from any inner component.
    • resetError. A callback that will simply attempt to mount the children of the error boundary again.
    • plugin. A BackstagePlugin that can be used to look up info to be presented in the error message. For instance, you may want to keep a map of your internal plugins and team names or slack channels and present these when an error occurs. Typically, you'll do that by getting the plugin ID with plugin.getId().
  • da8cba44f: Apply fixes to the extension creation API that were mistakenly applied to @backstage/core-app-api instead.

0.1.1

Patch Changes

  • 031ccd45f: Made the deprecated icon fields compatible with the IconComponent type from @backstage/core in order to smooth out the migration.
  • e7c5e4b30: Update installation instructions in README.
  • Updated dependencies [e7c5e4b30]

@backstage/[email protected]

@backstage/plugin-search-backend

2.0.11-next.0

Patch Changes

2.0.10

Patch Changes

2.0.10-next.1

Patch Changes

2.0.10-next.0

Patch Changes

2.0.9

Patch Changes

2.0.9-next.1

Patch Changes

2.0.9-next.0

Patch Changes

2.0.8

Patch Changes

2.0.8-next.1

Patch Changes

2.0.8-next.0

Patch Changes

2.0.7

Patch Changes

2.0.7-next.1

Patch Changes

2.0.7-next.0

Patch Changes

2.0.6

Patch Changes

2.0.6-next.0

Patch Changes

2.0.5

Patch Changes

2.0.5-next.0

Patch Changes

2.0.4

Patch Changes

2.0.4-next.1

Patch Changes

2.0.4-next.0

Patch Changes

2.0.3

Patch Changes

2.0.3-next.2

Patch Changes

2.0.3-next.1

Patch Changes

2.0.3-next.0

Patch Changes

2.0.2

Patch Changes

2.0.2-next.3

Patch Changes

2.0.2-next.2

Patch Changes

2.0.2-next.1

Patch Changes

2.0.2-next.0

Patch Changes

2.0.1

Patch Changes

2.0.1-next.2

Patch Changes

2.0.1-next.1

Patch Changes

2.0.1-next.0

Patch Changes

2.0.0

Major Changes

  • d5c4a9d: BREAKING Removed support for the legacy backend system and references to @backstage/backend-common, please migrate to the new backend system.

Patch Changes

1.8.3-next.2

Patch Changes

1.8.3-next.1

Patch Changes

1.8.3-next.0

Patch Changes

1.8.2

Patch Changes

1.8.2-next.3

Patch Changes

1.8.2-next.2

Patch Changes

1.8.2-next.1

Patch Changes

1.8.2-next.0

Patch Changes

1.8.1

Patch Changes

1.8.1-next.1

Patch Changes

1.8.1-next.0

Patch Changes

1.8.0

Minor Changes

  • 384e494: Internal updates to generated code.

Patch Changes

1.8.0-next.2

Patch Changes

1.8.0-next.1

Minor Changes

  • 384e494: Internal updates to generated code.

Patch Changes

1.7.1-next.0

Patch Changes

1.7.0

Minor Changes

  • 39fd704: Internal update to use the new generated server types from backstage-cli package schema openapi generate --server.

Patch Changes

1.7.0-next.3

Patch Changes

1.7.0-next.2

Minor Changes

  • 39fd704: Internal update to use the new generated server types from backstage-cli package schema openapi generate --server.

Patch Changes

1.6.2-next.1

Patch Changes

1.6.2-next.0

Patch Changes

1.6.0

Minor Changes

  • 3109c24: The export for the new backend system at the /alpha export is now also available via the main entry point, which means that you can remove the /alpha suffix from the import.

Patch Changes

1.5.18-next.2

Patch Changes

1.5.18-next.1

Patch Changes

1.5.18-next.0

Patch Changes

1.5.17

Patch Changes

1.5.17-next.2

Patch Changes

1.5.17-next.1

Patch Changes

1.5.17-next.0

Patch Changes

1.5.15

Patch Changes

1.5.15-next.3

Patch Changes

1.5.15-next.2

Patch Changes

1.5.15-next.1

Patch Changes

1.5.15-next.0

Patch Changes

1.5.14

Patch Changes

1.5.14-next.1

Patch Changes

1.5.13-next.0

Patch Changes

1.5.10

Patch Changes

1.5.10-next.3

Patch Changes

1.5.10-next.2

Patch Changes

1.5.10-next.1

Patch Changes

1.5.10-next.0

Patch Changes

1.5.8

Patch Changes

1.5.8-next.2

Patch Changes

1.5.8-next.1

Patch Changes

1.5.8-next.0

Patch Changes

1.5.7

Patch Changes

1.5.7-next.1

Patch Changes

1.5.7-next.0

Patch Changes

1.5.6

Patch Changes

1.5.5

Patch Changes

1.5.4

Patch Changes

1.5.4-next.2

Patch Changes

1.5.4-next.1

Patch Changes

1.5.3-next.0

Patch Changes

1.5.0

Minor Changes

  • 126c2f9: Updates the OpenAPI spec to use plugin as info.title instead of package name.
  • 04907c3: Updates the OpenAPI specification title to plugin ID instead of package name.

Patch Changes

1.5.0-next.3

Patch Changes

1.5.0-next.2

Patch Changes

1.5.0-next.1

Patch Changes

1.5.0-next.0

Minor Changes

  • 126c2f9: Updates the OpenAPI spec to use plugin as info.title instead of package name.
  • 04907c3: Updates the OpenAPI specification title to plugin ID instead of package name.

Patch Changes

1.4.9

Patch Changes

1.4.9-next.2

Patch Changes

1.4.9-next.1

Patch Changes

1.4.9-next.0

Patch Changes

1.4.8

Patch Changes

1.4.8-next.3

Patch Changes

1.4.8-next.2

Patch Changes

1.4.8-next.1

Patch Changes

1.4.8-next.0

Patch Changes

1.4.7

Patch Changes

1.4.7-next.2

Patch Changes

1.4.7-next.1

Patch Changes

1.4.7-next.0

Patch Changes

1.4.6

Patch Changes

1.4.6-next.2

Patch Changes

1.4.5-next.1

Patch Changes

1.4.5-next.0

Patch Changes

1.4.3

Patch Changes

1.4.3-next.3

Patch Changes

1.4.3-next.2

Patch Changes

1.4.3-next.1

Patch Changes

1.4.2-next.0

Patch Changes

1.4.0

Minor Changes

  • ebeb77586975: Now performs request validation based on OpenAPI schema through @backstage/backend-openapi-utils. Error responses for invalid input, like "a" instead of a number, may have changed.

Patch Changes

1.4.0-next.2

Patch Changes

1.4.0-next.1

Patch Changes

1.4.0-next.0

Minor Changes

  • ebeb77586975: Now performs request validation based on OpenAPI schema through @backstage/backend-openapi-utils. Error responses for invalid input, like "a" instead of a number, may have changed.

Patch Changes

1.3.3

Patch Changes

1.3.3-next.0

Patch Changes

1.3.2

Patch Changes

1.3.2-next.2

Patch Changes

1.3.2-next.1

Patch Changes

1.3.2-next.0

Patch Changes

1.3.1

Patch Changes

1.3.1-next.2

Patch Changes

  • 021cfbb5152: Added an OpenAPI 3.0 spec and enforced schema-first model on the router.
  • Updated dependencies

1.3.1-next.1

Patch Changes

1.3.1-next.0

Patch Changes

1.3.0

Minor Changes

Patch Changes

1.3.0-next.2

Patch Changes

1.3.0-next.1

Minor Changes

Patch Changes

1.2.5-next.0

Patch Changes

1.2.4

Patch Changes

1.2.4-next.2

Patch Changes

1.2.4-next.1

Patch Changes

1.2.4-next.0

Patch Changes

1.2.3

Patch Changes

1.2.3-next.2

Patch Changes

1.2.3-next.1

Patch Changes

1.2.3-next.0

Patch Changes

1.2.1

Patch Changes

1.2.1-next.2

Patch Changes

1.2.1-next.1

Patch Changes

1.2.1-next.0

Patch Changes

1.2.0

Minor Changes

  • 29ebc43a0b: numberOfResults is now provided alongside the query result

Patch Changes

1.2.0-next.3

Patch Changes

1.2.0-next.2

Minor Changes

  • 29ebc43a0b: numberOfResults is now provided alongside the query result

Patch Changes

1.1.2-next.1

Patch Changes

1.1.2-next.0

Patch Changes

1.1.1

Patch Changes

1.1.1-next.1

Patch Changes

1.1.1-next.0

Patch Changes

1.1.0

Minor Changes

  • 16c853a6ed: Be less restrictive with unknown keys on query endpoint

  • a799972bb1: The query received by search engines now contains a property called pageLimit, it specifies how many results to return per page when sending a query request to the search backend.

    Example: Returns up to 30 results per page

    GET /query?pageLimit=30
    

    The search backend validates the page limit and this value must not exceed 100, but it doesn't set a default value for the page limit parameter, it leaves it up to each search engine to set this, so Lunr, Postgres and Elastic Search set 25 results per page as a default value.

Patch Changes

1.1.0-next.2

Patch Changes

1.1.0-next.1

Minor Changes

  • 16c853a6ed: Be less restrictive with unknown keys on query endpoint

  • a799972bb1: The query received by search engines now contains a property called pageLimit, it specifies how many results to return per page when sending a query request to the search backend.

    Example: Returns up to 30 results per page

    GET /query?pageLimit=30
    

    The search backend validates the page limit and this value must not exceed 100, but it doesn't set a default value for the page limit parameter, it leaves it up to each search engine to set this, so Lunr, Postgres and Elastic Search set 25 results per page as a default value.

Patch Changes

1.0.3-next.0

Patch Changes

1.0.2

Patch Changes

1.0.2-next.1

Patch Changes

1.0.2-next.0

Patch Changes

1.0.1

Patch Changes

1.0.1-next.0

Patch Changes

1.0.0

Major Changes

Patch Changes

0.5.4-next.2

Patch Changes

0.5.4-next.1

Patch Changes

0.5.4-next.0

Patch Changes

0.5.3

Patch Changes

0.5.3-next.2

Patch Changes

0.5.3-next.1

Patch Changes

0.5.3-next.0

Patch Changes

0.5.2

Patch Changes

0.5.2-next.1

Patch Changes

0.5.2-next.0

Patch Changes

0.5.0

Minor Changes

  • 94ccd772d4: BREAKING: The authorization property is no longer returned on search results when queried. Note: this will only result in a breaking change if you have custom code in your frontend that relies on the authorization.resourceRef property on documents.

Patch Changes

  • 30f9884359: Check for non-resource permissions when authorizing result-by-result in AuthorizedSearchEngine.
  • 3c8cfaaa80: Use PermissionEvaluator instead of PermissionAuthorizer, which is now deprecated.
  • 62ee65422c: Use new IndexableResultSet type as return type of query method in SearchEngine implementation.
  • c98d271466: Use updated types from @backstage/plugin-permission-common
  • Updated dependencies

0.5.0-next.2

Patch Changes

0.5.0-next.1

Patch Changes

0.5.0-next.0

Minor Changes

  • 94ccd772d4: BREAKING: The authorization property is no longer returned on search results when queried. Note: this will only result in a breaking change if you have custom code in your frontend that relies on the authorization.resourceRef property on documents.

Patch Changes

0.4.8

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.5

Patch Changes

0.4.4

Patch Changes

0.4.3

Patch Changes

0.4.2

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • bbfbc755aa: BREAKING Added three additional required properties to createRouter to support filtering search results based on permissions. To make this change to an existing app, add the required parameters to the createRouter call in packages/backend/src/plugins/search.ts:

    diff
    export default async function createPlugin({
      logger,
    +  permissions,
      discovery,
      config,
      tokenManager,
    }: PluginEnvironment) {
      /* ... */
    
      return await createRouter({
        engine: indexBuilder.getSearchEngine(),
    +    types: indexBuilder.getDocumentTypes(),
    +    permissions,
    +    config,
        logger,
      });
    }
    

Patch Changes

0.3.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • a41fbfe739: Search result location filtering

    This change introduces a filter for search results based on their location protocol. The intention is to filter out unsafe or malicious values before they can be consumed by the frontend. By default locations must be http/https URLs (or paths).

Patch Changes

0.2.8

Patch Changes

  • dcd1a0c3f4: Minor improvement to the API reports, by not unpacking arguments directly
  • Updated dependencies

0.2.7

Patch Changes

  • bab752e2b3: Change default port of backend from 7000 to 7007.

    This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.

    You can change the port back to 7000 or any other value by providing an app-config.yaml with the following values:

    backend:
      listen: 0.0.0.0:7123
      baseUrl: http://localhost:7123
    

    More information can be found here: https://backstage.io/docs/conf/writing

  • Updated dependencies

0.2.6

Patch Changes

0.2.5

Patch Changes

0.2.4

Patch Changes

  • 64baedea5: Improve search query logging message
  • Updated dependencies

0.2.3

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

0.2.0

Minor Changes

  • 5aff84759: This release represents a move out of a pre-alpha phase of the Backstage Search plugin, into an alpha phase. With this release, you gain more control over the layout of your search page on the frontend, as well as the ability to extend search on the backend to encompass everything Backstage users may want to find.

    If you are updating to version v0.4.0 of @backstage/plugin-search from a prior release, you will need to make modifications to your app backend.

    First, navigate to your backend package and install the two related search backend packages:

    sh
    cd packages/backend
    yarn add @backstage/plugin-search-backend @backstage/plugin-search-backend-node
    

    Wire up these new packages into your app backend by first creating a new search.ts file at src/plugins/search.ts with contents like the following:

    typescript
    import { useHotCleanup } from '@backstage/backend-common';
    import { createRouter } from '@backstage/plugin-search-backend';
    import {
      IndexBuilder,
      LunrSearchEngine,
    } from '@backstage/plugin-search-backend-node';
    import { PluginEnvironment } from '../types';
    import { DefaultCatalogCollator } from '@backstage/plugin-catalog-backend';
    
    export default async function createPlugin({
      logger,
      discovery,
    }: PluginEnvironment) {
      // Initialize a connection to a search engine.
      const searchEngine = new LunrSearchEngine({ logger });
      const indexBuilder = new IndexBuilder({ logger, searchEngine });
    
      // Collators are responsible for gathering documents known to plugins. This
      // particular collator gathers entities from the software catalog.
      indexBuilder.addCollator({
        defaultRefreshIntervalSeconds: 600,
        collator: new DefaultCatalogCollator({ discovery }),
      });
    
      // The scheduler controls when documents are gathered from collators and sent
      // to the search engine for indexing.
      const { scheduler } = await indexBuilder.build();
    
      // A 3 second delay gives the backend server a chance to initialize before
      // any collators are executed, which may attempt requests against the API.
      setTimeout(() => scheduler.start(), 3000);
      useHotCleanup(module, () => scheduler.stop());
    
      return await createRouter({
        engine: indexBuilder.getSearchEngine(),
        logger,
      });
    }
    

    Then, ensure the search plugin you configured above is initialized by modifying your backend's index.ts file in the following ways:

    diff
    +import search from './plugins/search';
    // ...
    +const searchEnv = useHotMemoize(module, () => createEnv('search'));
    // ...
    +apiRouter.use('/search', await search(searchEnv));
    // ...
    

Patch Changes

0.1.5

Patch Changes

  • Updated dependencies [22fd8ce2a]
  • Updated dependencies [f9fb4a205]

0.1.4

Patch Changes

  • Updated dependencies [e0bfd3d44]
  • Updated dependencies [38ca05168]

0.1.3

Patch Changes

  • b9b2b4b76: Lunr Search Engine support
  • Updated dependencies [b9b2b4b76]
  • Updated dependencies [d367f63b5]
  • Updated dependencies [b42531cfe]

0.1.2

Patch Changes

  • 4d248725e: Bump to use the in-repo latest backend-common, and the correct version of express-promise-router

@backstage/[email protected]

Minor Changes

  • bb9b471: Plugin IDs that do not match the standard format are deprecated (letters, digits, and dashes only, starting with a letter). Plugin IDs that do no match this format will be rejected in a future release.

    In addition, plugin IDs that don't match the legacy pattern that also allows underscores, with be rejected.

@backstage/[email protected]

Minor Changes

  • 55b2ef6: BREAKING: Updated the behavior of the new API override logic to reject the override and block app startup instead of just logging a deprecation warning.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 55b2ef6: BREAKING: The API_FACTORY_CONFLICT warning is now treated as an error and will prevent the app from starting.

Patch Changes

@backstage/[email protected]

Minor Changes

  • bb9b471: Plugin IDs that do not match the standard format are deprecated (letters, digits, and dashes only, starting with a letter). Plugin IDs that do no match this format will be rejected in a future release.

  • 10ebed4: BREAKING: Removed type support for multiple attachment points in the ExtensionDefinitionAttachTo type. Extensions can no longer specify an array of attachment points in the attachTo property.

    The runtime still supports multiple attachment points for backward compatibility with existing compiled code, but new code will receive type errors if attempting to use this pattern.

    Extensions that previously used multiple attachment points should migrate to using a Utility API pattern instead. See the Sharing Extensions Across Multiple Locations guide for the recommended approach.

@backstage/[email protected]

Minor Changes

  • 6999f6d: The AzureUrl class in the @backstage/integration package is now able to process BOTH git branches and git tags. Initially this class only processed git branches and threw an error when non-branch Azure URLs were passed in.

@backstage/[email protected]

Minor Changes

  • 058ffd9: BREAKING: Removed large size variant from Button component as it was never implemented.

    Migration:

    diff
    - <Button size="large">Click me</Button>
    + <Button size="medium">Click me</Button>
    

    Affected components: Button

  • 110fec0: BREAKING: Removed link and tint color tokens, added new status foreground tokens, and improved Link component styling

    The following color tokens have been removed:

    • --bui-fg-link (and all related tokens: -hover, -pressed, -disabled)
    • --bui-fg-tint (and all related tokens: -hover, -pressed, -disabled)
    • --bui-bg-tint (and all related tokens: -hover, -pressed, -disabled)
    • --bui-border-tint (and all related tokens)

    New Status Tokens:

    Added dedicated tokens for status colors that distinguish between usage on status backgrounds vs. standalone usage:

    • --bui-fg-danger-on-bg / --bui-fg-danger
    • --bui-fg-warning-on-bg / --bui-fg-warning
    • --bui-fg-success-on-bg / --bui-fg-success
    • --bui-fg-info-on-bg / --bui-fg-info

    The -on-bg variants are designed for text on colored backgrounds, while the base variants are for standalone status indicators with improved visibility and contrast.

    Migration:

    For link colors, migrate to one of the following alternatives:

    diff
    .custom-link {
    - color: var(--bui-fg-link);
    + color: var(--bui-fg-info);  /* For informational links */
    + /* or */
    + color: var(--bui-fg-primary);  /* For standard text links */
    }
    

    For tint colors (backgrounds, foregrounds, borders), migrate to appropriate status or neutral colors:

    diff
    .info-section {
    - background: var(--bui-bg-tint);
    + background: var(--bui-bg-info);  /* For informational sections */
    + /* or */
    + background: var(--bui-bg-neutral-on-surface-0);  /* For neutral emphasis */
    }
    

    If you're using status foreground colors on colored backgrounds, update to the new -on-bg tokens:

    diff
    .error-badge {
    - color: var(--bui-fg-danger);
    + color: var(--bui-fg-danger-on-bg);
      background: var(--bui-bg-danger);
    }
    

    Affected components: Link

Patch Changes

  • 4d1b7f4: Fixed CSS Module syntax to comply with Next.js 16 Turbopack validation by flattening nested dark theme selectors.

    Affected components: Popover, Tooltip

  • 2c219b9: Added destructive prop to Button for dangerous actions like delete or remove. Works with all variants (primary, secondary, tertiary).

    Affected components: Button

  • 5af9e14: Fixed useDefinition hook adding literal "undefined" class name when no className prop was passed.

  • 74c5a76: Fixed Switch component disabled state styling to show not-allowed cursor and disabled text color.

    Affected components: Switch

@backstage/[email protected]

@backstage/plugin-auth-backend-module-atlassian-provider

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.3.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.4

Patch Changes

0.2.4-next.3

Patch Changes

0.2.4-next.2

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

  • b9832ae: Fix several issues with the Atlassian auth provider (type definition, profile url, profile transformation, scopes)
  • Updated dependencies

0.2.3-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.0

Minor Changes

  • 8efc6cf: BREAKING: The scope and scopes config options have been removed and replaced by the standard additionalScopes config. In addition, the offline_access, read:jira-work, and read:jira-user scopes have been set to required and will always be present.

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.2.0-next.2

Minor Changes

  • 8efc6cf: BREAKING: The scope and scopes config options have been removed and replaced by the standard additionalScopes config. In addition, the offline_access, read:jira-work, and read:jira-user scopes have been set to required and will always be present.

Patch Changes

0.1.11-next.1

Patch Changes

0.1.11-next.0

Patch Changes

0.1.10

Patch Changes

0.1.10-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.9

Patch Changes

0.1.9-next.1

Patch Changes

0.1.9-next.0

Patch Changes

0.1.8

Patch Changes

0.1.7

Patch Changes

0.1.6

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.5-next.0

Patch Changes

0.1.2

Patch Changes

0.1.2-next.3

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.2

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • 2a5891e: New module for @backstage/plugin-auth-backend that adds an atlassian auth provider

Patch Changes

0.1.0-next.3

Patch Changes

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • 2a5891e816: New module for @backstage/plugin-auth-backend that adds an atlassian auth provider

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-aws-alb-provider

0.4.12-next.0

Patch Changes

0.4.11

Patch Changes

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.2-next.2

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.1-next.2

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.3

Patch Changes

0.4.0-next.2

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

0.3.1-next.2

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • 75168e3: BREAKING: The AWS ALB fullProfile will no longer have the its username or email converted to lowercase. This is to ensure unique handling of the users. You may need to update and configure a custom sign-in resolver or profile transform as a result.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • 75168e3: BREAKING: The AWS ALB fullProfile will no longer have the its username or email converted to lowercase. This is to ensure unique handling of the users. You may need to update and configure a custom sign-in resolver or profile transform as a result.

Patch Changes

0.2.1

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.15

Patch Changes

  • c8f1cae: Add signIn to authentication provider configuration schema

  • 4ea354f: Added a signer configuration option to validate against the token claims. We strongly recommend that you set this value (typically on the format arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456) to ensure that the auth provider can safely check the authenticity of any incoming tokens.

    Example:

    diff
     auth:
       providers:
         awsalb:
           # this is the URL of the IdP you configured
           issuer: 'https://example.okta.com/oauth2/default'
           # this is the ARN of your ALB instance
    +      signer: 'arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456'
           # this is the region where your ALB instance resides
           region: 'us-west-2'
           signIn:
             resolvers:
               # typically you would pick one of these
               - resolver: emailMatchingUserEntityProfileEmail
               - resolver: emailLocalPartMatchingUserEntityName
    
  • 93095ee: Make sure node-fetch is version 2.7.0 or greater

  • Updated dependencies

0.1.15-next.3

Patch Changes

0.1.15-next.2

Patch Changes

0.1.15-next.1

Patch Changes

0.1.15-next.0

Patch Changes

0.1.14

Patch Changes

0.1.14-next.1

Patch Changes

0.1.13-next.0

Patch Changes

0.1.11

Patch Changes

0.1.11-next.3

Patch Changes

0.1.11-next.2

Patch Changes

0.1.11-next.1

Patch Changes

0.1.11-next.0

Patch Changes

0.1.10

Patch Changes

0.1.10-next.2

Patch Changes

0.1.10-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.9

Patch Changes

0.1.9-next.1

Patch Changes

0.1.9-next.0

Patch Changes

0.1.8

Patch Changes

0.1.7

Patch Changes

0.1.6

Patch Changes

0.1.5

Patch Changes

0.1.5-next.2

Patch Changes

0.1.5-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.0

Minor Changes

  • 23a98f8: Migrated the AWS ALB auth provider to new @backstage/plugin-auth-backend-module-aws-alb-provider module package.

Patch Changes

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • 23a98f8: Migrated the AWS ALB auth provider to new @backstage/plugin-auth-backend-module-aws-alb-provider module package.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-azure-easyauth-provider

0.2.16-next.0

Patch Changes

0.2.15

Patch Changes

0.2.15-next.1

Patch Changes

0.2.15-next.0

Patch Changes

0.2.14

Patch Changes

0.2.14-next.1

Patch Changes

0.2.14-next.0

Patch Changes

0.2.13

Patch Changes

0.2.13-next.0

Patch Changes

0.2.12

Patch Changes

0.2.12-next.0

Patch Changes

0.2.11

Patch Changes

0.2.11-next.0

Patch Changes

0.2.10

Patch Changes

0.2.10-next.0

Patch Changes

0.2.9

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.2

Patch Changes

0.2.8-next.1

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.6

Patch Changes

0.2.6-next.1

Patch Changes

0.2.6-next.0

Patch Changes

0.2.5

Patch Changes

0.2.5-next.2

Patch Changes

0.2.5-next.1

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.6

Patch Changes

0.1.6-next.3

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

0.1.5-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.2

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • 06a6725: New auth backend module to add 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.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-bitbucket-provider

0.3.11-next.0

Patch Changes

0.3.10

Patch Changes

0.3.10-next.1

Patch Changes

0.3.10-next.0

Patch Changes

0.3.9

Patch Changes

0.3.9-next.1

Patch Changes

0.3.9-next.0

Patch Changes

0.3.8

Patch Changes

0.3.8-next.0

Patch Changes

0.3.7

Patch Changes

0.3.7-next.0

Patch Changes

0.3.6

Patch Changes

0.3.6-next.0

Patch Changes

0.3.5

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.6

Patch Changes

0.1.6-next.3

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

0.1.5-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.2

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • 8efc6cf: Added support for the new shared additionalScopes configuration. In addition, the account scope has been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.2-next.2

Patch Changes

  • 8efc6cf: Added support for the new shared additionalScopes configuration. In addition, the account scope has been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • ba763b6: Migrate the Bitbucket auth provider to the new @backstage/plugin-auth-backend-module-bitbucket-provider module package.

Patch Changes

@backstage/plugin-auth-backend-module-bitbucket-server-provider@0.2.12-next.0

@backstage/plugin-auth-backend-module-bitbucket-server-provider

0.2.11-next.0

Patch Changes

0.2.10

Patch Changes

0.2.10-next.1

Patch Changes

0.2.10-next.0

Patch Changes

0.2.9

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.7-next.0

Patch Changes

0.2.6

Patch Changes

0.2.6-next.0

Patch Changes

0.2.5

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.2

Patch Changes

0.1.3-next.1

Patch Changes

0.1.3-next.0

Patch Changes

0.1.2

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • 527d973: New module for @backstage/plugin-auth-backend that adds a Bitbucket Server auth provider.

Patch Changes

0.1.0-next.0

Minor Changes

  • 527d973: New module for @backstage/plugin-auth-backend that adds a Bitbucket Server auth provider.

Patch Changes

@backstage/plugin-auth-backend-module-cloudflare-access-provider@0.4.12-next.0

@backstage/plugin-auth-backend-module-cloudflare-access-provider

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0

Minor Changes

  • 75d026a: Support for Cloudflare Custom Headers and Custom Cookie Auth Name

Patch Changes

0.2.0-next.3

Minor Changes

  • 75d026a: Support for Cloudflare Custom Headers and Custom Cookie Auth Name

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

0.1.5-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.2

Patch Changes

0.1.2-next.3

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • c26218d: Created a separate module for the Cloudflare Access auth provider

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-gcp-iap-provider

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.18

Patch Changes

  • c8f1cae: Add signIn to authentication provider configuration schema
  • 13a9c63: Corrected the documentation for the GCP IAP auth module and updated the configuration to follow proxy configuration conventions by ignoring authEnv
  • Updated dependencies

0.2.18-next.3

Patch Changes

0.2.18-next.2

Patch Changes

0.2.18-next.1

Patch Changes

0.2.18-next.0

Patch Changes

0.2.17

Patch Changes

0.2.17-next.1

Patch Changes

0.2.16-next.0

Patch Changes

0.2.14

Patch Changes

0.2.14-next.2

Patch Changes

0.2.14-next.1

Patch Changes

0.2.14-next.0

Patch Changes

0.2.13

Patch Changes

0.2.13-next.1

Patch Changes

0.2.13-next.0

Patch Changes

0.2.12

Patch Changes

0.2.12-next.1

Patch Changes

0.2.12-next.0

Patch Changes

0.2.11

Patch Changes

0.2.10

Patch Changes

0.2.9

Patch Changes

0.2.9-next.2

Patch Changes

0.2.9-next.1

Patch Changes

0.2.8-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.3

Patch Changes

0.2.4-next.2

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.3

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

0.2.1-next.2

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • 6f142d5356: BREAKING gcpIapAuthenticator.initialize() is no longer async

Patch Changes

0.2.0-next.2

Minor Changes

  • 6f142d5356: BREAKING gcpIapAuthenticator.initialize() is no longer async

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.0

Minor Changes

  • 8513cd7d00e3: New module for @backstage/plugin-auth-backend that adds a GCP IAP auth provider.

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • Updated dependencies

0.1.0-next.3

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • Updated dependencies

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • 8513cd7d00e3: New module for @backstage/plugin-auth-backend that adds a GCP IAP auth provider.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-google-provider

0.3.11-next.0

Patch Changes

0.3.10

Patch Changes

0.3.10-next.1

Patch Changes

0.3.10-next.0

Patch Changes

0.3.9

Patch Changes

0.3.9-next.1

Patch Changes

0.3.9-next.0

Patch Changes

0.3.8

Patch Changes

0.3.8-next.0

Patch Changes

0.3.7

Patch Changes

0.3.7-next.0

Patch Changes

0.3.6

Patch Changes

0.3.6-next.0

Patch Changes

0.3.5

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.1

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.20

Patch Changes

0.1.20-next.3

Patch Changes

0.1.20-next.2

Patch Changes

0.1.20-next.1

Patch Changes

0.1.20-next.0

Patch Changes

0.1.19

Patch Changes

0.1.19-next.1

Patch Changes

0.1.18-next.0

Patch Changes

0.1.16

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • 8efc6cf: Added support for the new shared additionalScopes configuration. In addition, the openid, userinfo.email, and userinfo.profile scopes have been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.16-next.2

Patch Changes

  • 8efc6cf: Added support for the new shared additionalScopes configuration. In addition, the openid, userinfo.email, and userinfo.profile scopes have been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.16-next.1

Patch Changes

0.1.16-next.0

Patch Changes

0.1.15

Patch Changes

0.1.15-next.1

Patch Changes

0.1.15-next.0

Patch Changes

0.1.14

Patch Changes

0.1.14-next.1

Patch Changes

0.1.14-next.0

Patch Changes

0.1.13

Patch Changes

0.1.12

Patch Changes

0.1.11

Patch Changes

0.1.11-next.2

Patch Changes

0.1.11-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.7

Patch Changes

0.1.7-next.3

Patch Changes

0.1.7-next.2

Patch Changes

0.1.7-next.1

Patch Changes

0.1.7-next.0

Patch Changes

0.1.6

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

0.1.5-next.3

Patch Changes

0.1.5-next.2

Patch Changes

0.1.5-next.1

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.4-next.2

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.0

Minor Changes

  • 8513cd7d00e3: New module for @backstage/plugin-auth-backend that adds a Google auth provider.

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • Updated dependencies

0.1.0-next.3

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • Updated dependencies

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • 8513cd7d00e3: New module for @backstage/plugin-auth-backend that adds a Google auth provider.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-microsoft-provider

0.3.11-next.0

Patch Changes

0.3.10

Patch Changes

0.3.10-next.1

Patch Changes

0.3.10-next.0

Patch Changes

0.3.9

Patch Changes

0.3.9-next.1

Patch Changes

0.3.9-next.0

Patch Changes

0.3.8

Patch Changes

0.3.8-next.0

Patch Changes

0.3.7

Patch Changes

0.3.7-next.0

Patch Changes

0.3.6

Patch Changes

0.3.6-next.0

Patch Changes

0.3.5

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.1

Patch Changes

  • fa15e80: Update auth.microsoft.signIn.resolvers config def to include the userIdMatchingUserEntityAnnotation resolver.
  • Updated dependencies

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

  • fa15e80: Update auth.microsoft.signIn.resolvers config def to include the userIdMatchingUserEntityAnnotation resolver.
  • Updated dependencies

0.3.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • daa02d6: Add skipUserProfile config flag to Microsoft authenticator
  • Updated dependencies

0.2.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • daa02d6: Add skipUserProfile config flag to Microsoft authenticator
  • Updated dependencies

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

  • 3c2d690: Allow users without defined email to be ingested by the msgraph catalog plugin and add userIdMatchingUserEntityAnnotation sign-in resolver for the Microsoft auth provider to support sign-in for users without defined email.
  • c2b63ab: Updated dependency supertest to ^7.0.0.
  • Updated dependencies

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

  • 3c2d690: Allow users without defined email to be ingested by the msgraph catalog plugin and add userIdMatchingUserEntityAnnotation sign-in resolver for the Microsoft auth provider to support sign-in for users without defined email.
  • Updated dependencies

0.1.18

Patch Changes

  • c8f1cae: Add signIn to authentication provider configuration schema
  • 93095ee: Make sure node-fetch is version 2.7.0 or greater
  • 39f36a9: Updated the Microsoft authenticator to accurately define required scopes, but to also omit the required and additional scopes when requesting resource scopes.
  • Updated dependencies

0.1.18-next.3

Patch Changes

0.1.18-next.2

Patch Changes

0.1.18-next.1

Patch Changes

0.1.18-next.0

Patch Changes

  • 39f36a9: Updated the Microsoft authenticator to accurately define required scopes, but to also omit the required and additional scopes when requesting resource scopes.
  • Updated dependencies

0.1.17

Patch Changes

0.1.17-next.1

Patch Changes

0.1.16-next.0

Patch Changes

0.1.14

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • 8efc6cf: Added support for the new shared additionalScopes configuration.
  • d44a20a: Added additional plugin metadata to package.json.
  • c187a9c: Minor internal type updates
  • Updated dependencies

0.1.14-next.2

Patch Changes

  • 8efc6cf: Added support for the new shared additionalScopes configuration.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.14-next.1

Patch Changes

0.1.14-next.0

Patch Changes

0.1.13

Patch Changes

0.1.13-next.1

Patch Changes

0.1.13-next.0

Patch Changes

0.1.12

Patch Changes

0.1.12-next.1

Patch Changes

0.1.12-next.0

Patch Changes

0.1.11

Patch Changes

0.1.10

Patch Changes

0.1.9

Patch Changes

0.1.9-next.2

Patch Changes

0.1.9-next.1

Patch Changes

0.1.8-next.0

Patch Changes

0.1.5

Patch Changes

  • 8472188: Added or fixed the repository field in package.json.
  • 1ff2684: Added the possibility to use custom scopes for performing login with Microsoft EntraID.
  • Updated dependencies

0.1.5-next.3

Patch Changes

0.1.5-next.2

Patch Changes

0.1.5-next.1

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

  • 928efbc: Deprecated the authModuleMicrosoftProvider export. A default export is now available and should be used like this in your backend: backend.add(import('@backstage/plugin-auth-backend-module-microsoft-provider'));
  • 4016f21: Remove some unused dependencies
  • Updated dependencies

0.1.4-next.2

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.3

Patch Changes

0.1.3-next.2

Patch Changes

0.1.3-next.1

Patch Changes

0.1.3-next.0

Patch Changes

0.1.2

Patch Changes

  • a3236ad0ca: Fix link to the repository in README.md.

  • 3979524c74: Added support for specifying a domain hint on the Microsoft authentication provider configuration.

  • fde212dd10: Re-add the missing profile photo as well as access token retrieval for foreign scopes.

    Additionally, we switch from previously 48x48 to 96x96 which is the size used at the profile card.

  • 5aeb14f035: Correctly mark the client secret in configuration as secret

  • 2817115d09: Removed prompt=consent from start method to fix #20641

  • Updated dependencies

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

  • 3979524c74: Added support for specifying a domain hint on the Microsoft authentication provider configuration.
  • 5aeb14f035: Correctly mark the client secret in configuration as secret
  • Updated dependencies

0.1.2-next.0

Patch Changes

0.1.0

Minor Changes

  • 2d8f7e82c1: Migrated the Microsoft auth provider to new @backstage/plugin-auth-backend-module-microsoft-provider module package.

Patch Changes

0.1.0-next.0

Minor Changes

  • 2d8f7e82c1: Migrated the Microsoft auth provider to new @backstage/plugin-auth-backend-module-microsoft-provider module package.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-oauth2-provider

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.1-next.2

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.2

Patch Changes

0.4.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.3.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.4

Patch Changes

0.2.4-next.3

Patch Changes

0.2.4-next.2

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.0

Minor Changes

  • 8efc6cf: BREAKING: The scope config option have been removed and replaced by the standard additionalScopes config.

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.2.0-next.2

Minor Changes

  • 8efc6cf: BREAKING: The scope config option have been removed and replaced by the standard additionalScopes config.

Patch Changes

0.1.16-next.1

Patch Changes

0.1.16-next.0

Patch Changes

0.1.15

Patch Changes

0.1.15-next.1

Patch Changes

0.1.15-next.0

Patch Changes

0.1.14

Patch Changes

0.1.14-next.1

Patch Changes

0.1.14-next.0

Patch Changes

0.1.13

Patch Changes

0.1.12

Patch Changes

0.1.11

Patch Changes

0.1.11-next.2

Patch Changes

0.1.11-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.7

Patch Changes

0.1.7-next.3

Patch Changes

0.1.7-next.2

Patch Changes

0.1.7-next.1

Patch Changes

0.1.7-next.0

Patch Changes

0.1.6

Patch Changes

0.1.6-next.2

Patch Changes

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

0.1.5-next.3

Patch Changes

0.1.5-next.2

Patch Changes

0.1.5-next.1

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.4-next.2

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.0

Minor Changes

  • 101cf1d13b04: New module for @backstage/plugin-auth-backend that adds a oauth2 auth provider.

Patch Changes

0.1.0-next.0

Minor Changes

  • 101cf1d13b04: New module for @backstage/plugin-auth-backend that adds a oauth2 auth provider.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-oauth2-proxy-provider

0.2.16-next.0

Patch Changes

0.2.15

Patch Changes

0.2.15-next.1

Patch Changes

0.2.15-next.0

Patch Changes

0.2.14

Patch Changes

0.2.14-next.1

Patch Changes

0.2.14-next.0

Patch Changes

0.2.13

Patch Changes

0.2.13-next.0

Patch Changes

0.2.12

Patch Changes

0.2.12-next.0

Patch Changes

0.2.11

Patch Changes

0.2.11-next.0

Patch Changes

0.2.10

Patch Changes

0.2.10-next.0

Patch Changes

0.2.9

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.2

Patch Changes

0.2.8-next.1

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.6

Patch Changes

0.2.6-next.1

Patch Changes

0.2.6-next.0

Patch Changes

0.2.5

Patch Changes

0.2.5-next.2

Patch Changes

0.2.5-next.1

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.16

Patch Changes

0.1.16-next.3

Patch Changes

0.1.16-next.2

Patch Changes

0.1.16-next.1

Patch Changes

0.1.16-next.0

Patch Changes

0.1.15

Patch Changes

0.1.15-next.1

Patch Changes

0.1.14-next.0

Patch Changes

0.1.12

Patch Changes

0.1.12-next.2

Patch Changes

0.1.12-next.1

Patch Changes

0.1.12-next.0

Patch Changes

0.1.11

Patch Changes

0.1.11-next.1

Patch Changes

0.1.11-next.0

Patch Changes

0.1.10

Patch Changes

0.1.10-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.9

Patch Changes

0.1.8

Patch Changes

0.1.7

Patch Changes

  • 2af5354: Bump dependency jose to v5
  • e77d7a9: Internal refactor to avoid deprecated method.
  • b1b012d: Fix issue with providerInfo not being set properly for some proxy providers, by making providerInfo an explicit optional return from authenticate
  • Updated dependencies

0.1.7-next.2

Patch Changes

0.1.7-next.1

Patch Changes

0.1.6-next.0

Patch Changes

  • 2af5354: Bump dependency jose to v5
  • e77d7a9: Internal refactor to avoid deprecated method.
  • b1b012d: Fix issue with providerInfo not being set properly for some proxy providers, by making providerInfo an explicit optional return from authenticate
  • Updated dependencies

0.1.2

Patch Changes

0.1.2-next.3

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.2

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • 271aa12: Release of oauth2-proxy-provider plugin

Patch Changes

  • a6be465: Exported the provider as default so it gets discovered when using featureDiscoveryServiceFactory()
  • 510dab4: Change provider id from oauth2ProxyProvider to oauth2Proxy
  • cc4228e: Switched module ID to use kebab-case.
  • Updated dependencies

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

  • a6be465: Exported the provider as default so it gets discovered when using featureDiscoveryServiceFactory()
  • 510dab4: Change provider id from oauth2ProxyProvider to oauth2Proxy
  • cc4228e: Switched module ID to use kebab-case.
  • Updated dependencies

0.1.0-next.0

Minor Changes

  • 271aa12c7c: Release of oauth2-proxy-provider plugin

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-oidc-provider

0.4.12-next.0

Patch Changes

0.4.11

Patch Changes

0.4.11-next.1

Patch Changes

0.4.11-next.0

Patch Changes

0.4.10

Patch Changes

0.4.10-next.1

Patch Changes

0.4.10-next.0

Patch Changes

0.4.9

Patch Changes

0.4.9-next.1

Patch Changes

0.4.9-next.0

Patch Changes

0.4.8

Patch Changes

0.4.8-next.0

Patch Changes

0.4.7

Patch Changes

0.4.7-next.0

Patch Changes

0.4.6

Patch Changes

0.4.6-next.0

Patch Changes

0.4.5

Patch Changes

0.4.5-next.0

Patch Changes

0.4.4

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.2-next.2

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.1-next.2

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.4.0-next.3

Patch Changes

0.4.0-next.2

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.5-next.1

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.2-next.2

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • 094eaa3: Remove references to in-repo backend-common
  • Updated dependencies

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.4

Patch Changes

0.2.4-next.3

Patch Changes

0.2.4-next.2

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.0

Minor Changes

  • 8efc6cf: BREAKING: The scope config option have been removed and replaced by the standard additionalScopes config. In addition, openid, profile, and email scopes have been set to required and will always be present.

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • d44a20a: Added additional plugin metadata to package.json.
  • 4f21993: if oidc server do not provide revocation_endpoint,we should not call revoke function
  • Updated dependencies

0.2.0-next.3

Minor Changes

  • 8efc6cf: BREAKING: The scope config option have been removed and replaced by the standard additionalScopes config. In addition, openid, profile, and email scopes have been set to required and will always be present.

Patch Changes

0.1.10-next.2

Patch Changes

0.1.10-next.1

Patch Changes

0.1.10-next.0

Patch Changes

0.1.9

Patch Changes

0.1.9-next.1

Patch Changes

0.1.9-next.0

Patch Changes

0.1.8

Patch Changes

0.1.8-next.1

Patch Changes

0.1.8-next.0

Patch Changes

0.1.7

Patch Changes

0.1.6

Patch Changes

0.1.5

Patch Changes

0.1.4

Patch Changes

0.1.4-next.2

Patch Changes

0.1.4-next.1

Patch Changes

0.1.3-next.0

Patch Changes

0.1.0

Minor Changes

  • 5d2fcba: Created new @backstage/plugin-auth-backend-module-oidc-provider module package to house oidc auth provider migration.

Patch Changes

0.1.0-next.3

Patch Changes

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • 5d2fcba: Created new @backstage/plugin-auth-backend-module-oidc-provider module package to house oidc auth provider migration.

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-okta-provider

0.2.11-next.0

Patch Changes

0.2.10

Patch Changes

0.2.10-next.1

Patch Changes

0.2.10-next.0

Patch Changes

0.2.9

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.7-next.0

Patch Changes

0.2.6

Patch Changes

0.2.6-next.1

Patch Changes

  • 94476d2: Updated dependency @davidzemon/passport-okta-oauth to ^0.0.7.

0.2.6-next.0

Patch Changes

0.2.5

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

0.2.1-next.2

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.2

Patch Changes

0.1.3-next.1

Patch Changes

0.1.3-next.0

Patch Changes

0.1.2

Patch Changes

0.1.2-next.2

Patch Changes

0.1.2-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.1.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.0-next.2

Patch Changes

0.1.0-next.1

Patch Changes

0.1.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.0.16

Patch Changes

0.0.16-next.3

Patch Changes

0.0.16-next.2

Patch Changes

0.0.16-next.1

Patch Changes

0.0.16-next.0

Patch Changes

0.0.15

Patch Changes

0.0.15-next.1

Patch Changes

0.0.14-next.0

Patch Changes

0.0.12

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • 8efc6cf: Added support for the new shared additionalScopes configuration, which means it can now also be specified as an array. In addition, the openid, email, profile, and offline_access scopes have been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.0.12-next.2

Patch Changes

  • 8efc6cf: Added support for the new shared additionalScopes configuration, which means it can now also be specified as an array. In addition, the openid, email, profile, and offline_access scopes have been set to required and will always be present.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.0.12-next.1

Patch Changes

0.0.12-next.0

Patch Changes

0.0.11

Patch Changes

0.0.11-next.1

Patch Changes

0.0.11-next.0

Patch Changes

0.0.10

Patch Changes

0.0.10-next.1

Patch Changes

0.0.10-next.0

Patch Changes

0.0.9

Patch Changes

0.0.8

Patch Changes

0.0.7

Patch Changes

0.0.7-next.2

Patch Changes

0.0.7-next.1

Patch Changes

0.0.6-next.0

Patch Changes

0.0.3

Patch Changes

  • cd5114c: Added missing additionalScopes option to configuration schema.
  • 8472188: Added or fixed the repository field in package.json.
  • Updated dependencies

0.0.3-next.3

Patch Changes

0.0.3-next.2

Patch Changes

0.0.3-next.1

Patch Changes

0.0.3-next.0

Patch Changes

0.0.2

Patch Changes

0.0.2-next.2

Patch Changes

0.0.2-next.1

Patch Changes

0.0.2-next.0

Patch Changes

0.0.1

Patch Changes

0.0.1-next.3

Patch Changes

0.0.1-next.2

Patch Changes

0.0.1-next.1

Patch Changes

0.0.1-next.0

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-backend-module-onelogin-provider

0.3.11-next.0

Patch Changes

0.3.10

Patch Changes

0.3.10-next.1

Patch Changes

0.3.10-next.0

Patch Changes

0.3.9

Patch Changes

0.3.9-next.1

Patch Changes

0.3.9-next.0

Patch Changes

0.3.8

Patch Changes

0.3.8-next.0

Patch Changes

0.3.7

Patch Changes

0.3.7-next.0

Patch Changes

0.3.6

Patch Changes

0.3.6-next.0

Patch Changes

0.3.5

Patch Changes

0.3.5-next.0

Patch Changes

0.3.4

Patch Changes

0.3.4-next.1

Patch Changes

0.3.4-next.0

Patch Changes

0.3.3

Patch Changes

0.3.3-next.2

Patch Changes

0.3.3-next.1

Patch Changes

0.3.3-next.0

Patch Changes

0.3.2

Patch Changes

0.3.1

Patch Changes

0.3.1-next.1

Patch Changes

0.3.1-next.0

Patch Changes

0.3.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.2.5-next.0

Patch Changes

0.2.4

Patch Changes

0.2.4-next.1

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

0.2.2-next.0

Patch Changes

0.2.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.1

Patch Changes

  • 217458a: Updated configuration schema to include the new allowedDomains option for the emailLocalPartMatchingUserEntityName sign-in resolver.
  • Updated dependencies

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.2.0-next.2

Patch Changes

0.2.0-next.1

Patch Changes

0.2.0-next.0

Minor Changes

  • d425fc4: BREAKING: The return values from createBackendPlugin, createBackendModule, and createServiceFactory are now simply BackendFeature and ServiceFactory, instead of the previously deprecated form of a function that returns them. For this reason, createServiceFactory also no longer accepts the callback form where you provide direct options to the service. This also affects all coreServices.* service refs.

    This may in particular affect tests; if you were effectively doing createBackendModule({...})() (note the parentheses), you can now remove those extra parentheses at the end. You may encounter cases of this in your packages/backend/src/index.ts too, where you add plugins, modules, and services. If you were using createServiceFactory with a function as its argument for the purpose of passing in options, this pattern has been deprecated for a while and is no longer supported. You may want to explore the new multiton patterns to achieve your goals, or moving settings to app-config.

    As part of this change, the IdentityFactoryOptions type was removed, and can no longer be used to tweak that service. The identity service was also deprecated some time ago, and you will want to migrate to the new auth system if you still rely on it.

Patch Changes

0.1.4

Patch Changes

0.1.4-next.3

Patch Changes

0.1.4-next.2

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

0.1.3-next.1

Patch Changes

0.1.2-next.0

Patch Changes

0.1.0

Minor Changes

  • 566d7cb: Separate out the OneLogin provider into its own module

Patch Changes

  • 78a0b08: Internal refactor to handle BackendFeature contract change.
  • d44a20a: Added additional plugin metadata to package.json.
  • Updated dependencies

0.1.0-next.0

Minor Changes

  • 566d7cb: Separate out the OneLogin provider into its own module

Patch Changes

@backstage/[email protected]

@backstage/plugin-auth-node

0.6.12-next.0

Patch Changes

0.6.11

Patch Changes

  • 4eeba9e: Upgrade zod-validation-error to version 4
  • 872eb91: Upgrade zod-to-json-schema to latest version
  • Updated dependencies

0.6.10

Patch Changes

  • 2389358: remove leading dot in auth cookie cleanup call
  • de96a60: chore(deps): bump express from 4.21.2 to 4.22.0
  • b35f8b2: Fixed chunked cookie replacing edge case in OAuthCookieManager class where some of the old chunks would not get removed if new chunked cookie would have fewer chunks.
  • e9dd634: fix flawed cookie removal logic with chunked tokens
  • Updated dependencies

0.6.10-next.1

Patch Changes

0.6.10-next.0

Patch Changes

0.6.9

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

0.6.9-next.1

Patch Changes

0.6.9-next.0

Patch Changes

0.6.8

Patch Changes

0.6.8-next.0

Patch Changes

0.6.7

Patch Changes

  • 54ddfef: Updating plugin metadata
  • 3aff9e1: Changes OAuth cookies from domain-scoped to host-only by avoid setting the domain attribute in the default cookie configurer.
  • Updated dependencies

0.6.7-next.1

Patch Changes

0.6.7-next.0

Patch Changes

  • 3aff9e1: Changes OAuth cookies from domain-scoped to host-only by avoid setting the domain attribute in the default cookie configurer.
  • Updated dependencies

0.6.6

Patch Changes

0.6.6-next.0

Patch Changes

0.6.5

Patch Changes

0.6.5-next.0

Patch Changes

0.6.4

Patch Changes

0.6.4-next.1

Patch Changes

0.6.4-next.0

Patch Changes

0.6.3

Patch Changes

  • 332e934: Added the identity property to BackstageSignInResult.

    The prepareBackstageIdentityResponse function will now also forward the identity to the response if present in the provided sign-in result.

  • ab53e6f: Added a new dangerousEntityRefFallback option to the signInWithCatalogUser method in AuthResolverContext. The option will cause the provided entity reference to be used as a fallback in case the user is not found in the catalog. It is up to the caller to provide the fallback entity reference.

    Auth providers that include pre-defined sign-in resolvers are encouraged to define a flag named dangerouslyAllowSignInWithoutUserInCatalog in their config, which in turn enables use of the dangerousEntityRefFallback option. For example:

    ts
    export const usernameMatchingUserEntityName = createSignInResolverFactory({
      optionsSchema: z
        .object({
          dangerouslyAllowSignInWithoutUserInCatalog: z.boolean().optional(),
        })
        .optional(),
      create(options = {}) {
        return async (
          info: SignInInfo<OAuthAuthenticatorResult<PassportProfile>>,
          ctx,
        ) => {
          const { username } = info.result.fullProfile;
          if (!username) {
            throw new Error('User profile does not contain a username');
          }
    
          return ctx.signInWithCatalogUser(
            { entityRef: { name: username } },
            {
              dangerousEntityRefFallback:
                options?.dangerouslyAllowSignInWithoutUserInCatalog
                  ? { entityRef: { name: username } }
                  : undefined,
            },
          );
        };
      },
    });
    
  • Updated dependencies

0.6.3-next.2

Patch Changes

  • ab53e6f: Added a new dangerousEntityRefFallback option to the signInWithCatalogUser method in AuthResolverContext. The option will cause the provided entity reference to be used as a fallback in case the user is not found in the catalog. It is up to the caller to provide the fallback entity reference.

    Auth providers that include pre-defined sign-in resolvers are encouraged to define a flag named dangerouslyAllowSignInWithoutUserInCatalog in their config, which in turn enables use of the dangerousEntityRefFallback option. For example:

    ts
    export const usernameMatchingUserEntityName = createSignInResolverFactory({
      optionsSchema: z
        .object({
          dangerouslyAllowSignInWithoutUserInCatalog: z.boolean().optional(),
        })
        .optional(),
      create(options = {}) {
        return async (
          info: SignInInfo<OAuthAuthenticatorResult<PassportProfile>>,
          ctx,
        ) => {
          const { username } = info.result.fullProfile;
          if (!username) {
            throw new Error('User profile does not contain a username');
          }
    
          return ctx.signInWithCatalogUser(
            { entityRef: { name: username } },
            {
              dangerousEntityRefFallback:
                options?.dangerouslyAllowSignInWithoutUserInCatalog
                  ? { entityRef: { name: username } }
                  : undefined,
            },
          );
        };
      },
    });
    
  • Updated dependencies

0.6.3-next.1

Patch Changes

0.6.3-next.0

Patch Changes

0.6.2

Patch Changes

0.6.1

Patch Changes

0.6.1-next.1

Patch Changes

0.6.1-next.0

Patch Changes

0.6.0

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.6.0-next.2

Patch Changes

0.6.0-next.1

Minor Changes

  • 61f464e: Added auth.providers.<providerId>.sessionDuration config for auth providers to allow the lifespan of user sessions to be configured.

Patch Changes

0.5.7-next.0

Patch Changes

0.5.6

Patch Changes

0.5.6-next.1

Patch Changes

0.5.6-next.0

Patch Changes

0.5.5

Patch Changes

0.5.5-next.2

Patch Changes

0.5.5-next.1

Patch Changes

0.5.5-next.0

Patch Changes

0.5.4

Patch Changes

  • a0a9a4a: Browsers silently drop cookies that exceed 4KB, which can be problematic for refresh tokens and other large cookies.This update ensures that large cookies, like refresh tokens, are not dropped by browsers, maintaining the integrity of the authentication process. The changes include both the implementation of the cookie splitting logic and corresponding tests to validate the new functionality.
  • 4e58bc7: Upgrade to uuid v11 internally
  • Updated dependencies

0.5.4-next.2

Patch Changes

0.5.4-next.1

Patch Changes

0.5.4-next.0

Patch Changes

  • a0a9a4a: Browsers silently drop cookies that exceed 4KB, which can be problematic for refresh tokens and other large cookies.This update ensures that large cookies, like refresh tokens, are not dropped by browsers, maintaining the integrity of the authentication process. The changes include both the implementation of the cookie splitting logic and corresponding tests to validate the new functionality.
  • Updated dependencies

0.5.3

Patch Changes

  • 217458a: Added a new allowedDomains option for the common emailLocalPartMatchingUserEntityName sign-in resolver.
  • 094eaa3: Remove references to in-repo backend-common
  • e4ad29a: Fix authentication error handling using redirect flow via enableExperimentalRedirectFlow config. If an error is caught during authentication, the user is redirected back to app origin with error query parameter containing the error message.
  • Updated dependencies

0.5.3-next.1

Patch Changes

0.5.3-next.0

Patch Changes

0.5.2

Patch Changes

0.5.2-next.2

Patch Changes

0.5.2-next.1

Patch Changes

0.5.2-next.0

Patch Changes

0.5.0

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

0.5.0-next.3

Patch Changes

0.5.0-next.2

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

0.4.18-next.1

Patch Changes

0.4.18-next.0

Patch Changes

0.4.17

Patch Changes

0.4.17-next.1

Patch Changes

0.4.16-next.0

Patch Changes

0.4.14

Patch Changes

  • 798ec37: Updated scope management for OAuth providers, where the createOAuthAuthenticator now accepts a new collection of scopes options:

    • scopes.persist - Whether scopes should be persisted, replaces the shouldPersistScopes option.
    • scopes.required - A list of required scopes that will always be requested.
    • scopes.transform - A function that can be used to transform the scopes before they are requested.

    The createOAuthProviderFactory has also received a new additionalScopes option, and will also read additionalScopes from the auth provider configuration. Both of these can be used to add additional scopes that should always be requested.

    A significant change under the hood that this new scope management brings is that providers that persist scopes will now always merge the already granted scopes with the requested ones. The previous behavior was that the full authorization flow would not include existing scopes, while the refresh flow would only include the existing scopes.

  • d44a20a: Added additional plugin metadata to package.json.

  • Updated dependencies

0.4.14-next.3

Patch Changes

  • 798ec37: Updated scope management for OAuth providers, where the createOAuthAuthenticator now accepts a new collection of scopes options:

    • scopes.persist - Whether scopes should be persisted, replaces the shouldPersistScopes option.
    • scopes.required - A list of required scopes that will always be requested.
    • scopes.transform - A function that can be used to transform the scopes before they are requested.

    The createOAuthProviderFactory has also received a new additionalScopes option, and will also read additionalScopes from the auth provider configuration. Both of these can be used to add additional scopes that should always be requested.

    A significant change under the hood that this new scope management brings is that providers that persist scopes will now always merge the already granted scopes with the requested ones. The previous behavior was that the full authorization flow would not include existing scopes, while the refresh flow would only include the existing scopes.

  • d44a20a: Added additional plugin metadata to package.json.

  • Updated dependencies

0.4.14-next.2

Patch Changes

0.4.14-next.1

Patch Changes

0.4.14-next.0

Patch Changes

0.4.13

Patch Changes

0.4.13-next.1

Patch Changes

0.4.13-next.0

Patch Changes

0.4.12

Patch Changes

0.4.12-next.1

Patch Changes

0.4.12-next.0

Patch Changes

0.4.11

Patch Changes

0.4.10

Patch Changes

0.4.9

Patch Changes

  • b4fc6e3: Deprecated the getBearerTokenFromAuthorizationHeader function, which is being replaced by the new HttpAuthService.
  • 2af5354: Bump dependency jose to v5
  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.
  • b1b012d: Fix issue with providerInfo not being set properly for some proxy providers, by making providerInfo an explicit optional return from authenticate
  • Updated dependencies

0.4.9-next.2

Patch Changes

0.4.9-next.1

Patch Changes

0.4.8-next.0

Patch Changes

  • b4fc6e3: Deprecated the getBearerTokenFromAuthorizationHeader function, which is being replaced by the new HttpAuthService.
  • 2af5354: Bump dependency jose to v5
  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.
  • b1b012d: Fix issue with providerInfo not being set properly for some proxy providers, by making providerInfo an explicit optional return from authenticate
  • Updated dependencies

0.4.4

Patch Changes

0.4.4-next.3

Patch Changes

0.4.4-next.2

Patch Changes

0.4.4-next.1

Patch Changes

0.4.4-next.0

Patch Changes

0.4.3

Patch Changes

0.4.3-next.2

Patch Changes

0.4.3-next.1

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.2-next.3

Patch Changes

0.4.2-next.2

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.1-next.2

Patch Changes

0.4.1-next.1

Patch Changes

0.4.1-next.0

Patch Changes

0.4.0

Minor Changes

  • 6f142d5356: BREAKING: The recently introduced ProxyAuthenticator.initialize() method is no longer async to match the way the OAuth equivalent is implemented.

Patch Changes

0.4.0-next.2

Minor Changes

  • 6f142d5356: BREAKING: The recently introduced ProxyAuthenticator.initialize() method is no longer async to match the way the OAuth equivalent is implemented.

Patch Changes

0.3.2-next.1

Patch Changes

0.3.2-next.0

Patch Changes

0.3.0

Minor Changes

  • 8513cd7d00e3: Introduced a new system for building auth providers for @backstage/plugin-auth-backend, which both increases the amount of code re-use across providers, and also works better with the new backend system.

    Many existing types have been moved from @backstage/plugin-auth-backend in order to avoid a direct dependency on the plugin from modules.

    Auth provider integrations are now primarily implemented through a pattern of creating "authenticators", which are in turn specific to each kind of integrations. Initially there are two types: createOAuthAuthenticator and createProxyAuthenticator. These come paired with functions that let you create the corresponding route handlers, createOAuthRouteHandlers and createProxyAuthRouteHandlers, as well as provider factories, createOAuthProviderFactory and createProxyAuthProviderFactory. This new authenticator pattern allows the sign-in logic to be separated from the auth integration logic, allowing it to be completely re-used across all providers of the same kind.

    The new provider factories also implement a new declarative way to configure sign-in resolvers, rather than configuration through code. Sign-in resolvers can now be configured through the resolvers configuration key, where the first resolver that provides an identity will be used, for example:

    yaml
    auth:
      providers:
        google:
          development:
            clientId: ...
            clientSecret: ...
            signIn:
              resolvers:
                - resolver: emailMatchingUserEntityAnnotation
                - resolver: emailLocalPartMatchingUserEntityName
    

    These configurable resolvers are created with a new createSignInResolverFactory function, which creates a sign-in resolver factory, optionally with an options schema that will be used both when configuring the sign-in resolver through configuration and code.

    The internal helpers from @backstage/plugin-auth-backend that were used to implement auth providers using passport strategies have now also been made available as public API, through PassportHelpers and PassportOAuthAuthenticatorHelper.

Patch Changes

0.3.0-next.3

Patch Changes

0.3.0-next.2

Patch Changes

0.3.0-next.1

Patch Changes

0.3.0-next.0

Minor Changes

  • 8513cd7d00e3: Introduced a new system for building auth providers for @backstage/plugin-auth-backend, which both increases the amount of code re-use across providers, and also works better with the new backend system.

    Many existing types have been moved from @backstage/plugin-auth-backend in order to avoid a direct dependency on the plugin from modules.

    Auth provider integrations are now primarily implemented through a pattern of creating "authenticators", which are in turn specific to each kind of integrations. Initially there are two types: createOAuthAuthenticator and createProxyAuthenticator. These come paired with functions that let you create the corresponding route handlers, createOAuthRouteHandlers and createProxyAuthRouteHandlers, as well as provider factories, createOAuthProviderFactory and createProxyAuthProviderFactory. This new authenticator pattern allows the sign-in logic to be separated from the auth integration logic, allowing it to be completely re-used across all providers of the same kind.

    The new provider factories also implement a new declarative way to configure sign-in resolvers, rather than configuration through code. Sign-in resolvers can now be configured through the resolvers configuration key, where the first resolver that provides an identity will be used, for example:

    yaml
    auth:
      providers:
        google:
          development:
            clientId: ...
            clientSecret: ...
            signIn:
              resolvers:
                - resolver: emailMatchingUserEntityAnnotation
                - resolver: emailLocalPartMatchingUserEntityName
    

    These configurable resolvers are created with a new createSignInResolverFactory function, which creates a sign-in resolver factory, optionally with an options schema that will be used both when configuring the sign-in resolver through configuration and code.

    The internal helpers from @backstage/plugin-auth-backend that were used to implement auth providers using passport strategies have now also been made available as public API, through PassportHelpers and PassportOAuthAuthenticatorHelper.

Patch Changes

0.2.17

Patch Changes

0.2.17-next.2

Patch Changes

0.2.17-next.1

Patch Changes

0.2.17-next.0

Patch Changes

0.2.16

Patch Changes

0.2.16-next.0

Patch Changes

0.2.15

Patch Changes

0.2.15-next.2

Patch Changes

0.2.15-next.1

Patch Changes

0.2.15-next.0

Patch Changes

0.2.14

Patch Changes

0.2.14-next.1

Patch Changes

0.2.14-next.0

Patch Changes

0.2.13

Patch Changes

0.2.13-next.2

Patch Changes

0.2.13-next.1

Patch Changes

0.2.13-next.0

Patch Changes

0.2.12

Patch Changes

0.2.12-next.2

Patch Changes

0.2.12-next.1

Patch Changes

0.2.12-next.0

Patch Changes

0.2.11

Patch Changes

0.2.11-next.2

Patch Changes

0.2.11-next.1

Patch Changes

0.2.11-next.0

Patch Changes

0.2.9

Patch Changes

0.2.9-next.1

Patch Changes

0.2.9-next.0

Patch Changes

0.2.8

Patch Changes

0.2.8-next.3

Patch Changes

0.2.8-next.2

Patch Changes

0.2.8-next.1

Patch Changes

0.2.8-next.0

Patch Changes

0.2.7

Patch Changes

0.2.7-next.1

Patch Changes

0.2.7-next.0

Patch Changes

0.2.6

Patch Changes

0.2.6-next.2

Patch Changes

0.2.6-next.1

Patch Changes

0.2.6-next.0

Patch Changes

0.2.5

Patch Changes

  • 9212439d15: Minor update to tests
  • 2cbd533426: IdentityClient is now deprecated. Please migrate to IdentityApi and DefaultIdentityClient instead. The authenticate function on DefaultIdentityClient is also deprecated. Please use getIdentity instead.
  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.
  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • Updated dependencies

0.2.5-next.3

Patch Changes

0.2.5-next.2

Patch Changes

  • 2cbd533426: IdentityClient is now deprecated. Please migrate to IdentityApi and DefaultIdentityClient instead. The authenticate function on DefaultIdentityClient is also deprecated. Please use getIdentity instead.
  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.
  • Updated dependencies

0.2.5-next.1

Patch Changes

0.2.5-next.0

Patch Changes

  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • Updated dependencies

0.2.4

Patch Changes

0.2.4-next.0

Patch Changes

0.2.3

Patch Changes

0.2.3-next.2

Patch Changes

  • a70869e775: Updated dependency msw to ^0.43.0.
  • Updated dependencies

0.2.3-next.1

Patch Changes

0.2.3-next.0

Patch Changes

0.2.2

Patch Changes

  • 5ca0b86b88: Address corner cases where the key store was not being created at startup
  • 8f7b1835df: Updated dependency msw to ^0.41.0.
  • 9079a78078: Added configurable algorithms array for IdentityClient
  • Updated dependencies

0.2.2-next.2

Patch Changes

0.2.2-next.1

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.
  • Updated dependencies

0.2.2-next.0

Patch Changes

  • 9079a78078: Added configurable algorithms array for IdentityClient
  • Updated dependencies

0.2.1

Patch Changes

0.2.1-next.1

Patch Changes

0.2.1-next.0

Patch Changes

0.2.0

Minor Changes

  • 15d3a3c39a: BREAKING: Removed the deprecated id and entity fields from BackstageSignInResult.

Patch Changes

0.2.0-next.0

Minor Changes

  • 15d3a3c39a: BREAKING: Removed the deprecated id and entity fields from BackstageSignInResult.

Patch Changes

0.1.6

Patch Changes

0.1.5

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.3

Patch Changes

0.1.2

Patch Changes

0.1.1

Patch Changes

0.1.0

Minor Changes

  • 9058bb1b5e: Added this package, to hold shared types and functionality that other backend packages need to import.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 05aac34: Migrated DeleteEntityDialog and EntityOrphanWarning components to Backstage UI.

    The deleteEntity.description translation key no longer includes "Click here to delete" text. A new deleteEntity.actionButtonTitle key was added for the action button.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 2f51676: allow entity discoverability via gitlab search API

Patch Changes

@backstage/[email protected]

Minor Changes

  • 8694561: Log group/user count, tenant ID, execution time as separate fields

Patch Changes

@backstage/[email protected]

Minor Changes

  • 0e9578d: Migrated UnregisterEntityDialog from Material UI to Backstage UI components.

  • e8258d0: BREAKING: Removed the 'summary' entity card type from EntityCardType. Users should migrate to using 'content' or 'info' card types instead.

    TypeScript will now show errors if you try to use type: 'summary' when creating entity cards.

Patch Changes

@backstage/[email protected]

@backstage/plugin-mcp-actions-backend

0.1.8-next.0

Patch Changes

0.1.7

Patch Changes

0.1.7-next.1

Patch Changes

  • 4d82a35: build(deps): bump @modelcontextprotocol/sdk from 1.24.3 to 1.25.2
  • Updated dependencies

0.1.7-next.0

Patch Changes

0.1.6

Patch Changes

  • e83e038: Added @cfworker/json-schema as a dependency to this package part of the @modelcontextprotocol/sdk bump as it's required in the types
  • de96a60: chore(deps): bump express from 4.21.2 to 4.22.0
  • 79ef471: Clarify error handling in readme and update handleError.ts to include all backstage/errors
  • Updated dependencies

0.1.6-next.1

Patch Changes

0.1.6-next.0

Patch Changes

0.1.5

Patch Changes

  • 05f60e1: Refactored constructor parameter properties to explicit property declarations for compatibility with TypeScript's erasableSyntaxOnly setting. This internal refactoring maintains all existing functionality while ensuring TypeScript compilation compatibility.
  • Updated dependencies

0.1.5-next.1

Patch Changes

0.1.5-next.0

Patch Changes

0.1.4

Patch Changes

0.1.4-next.1

Patch Changes

0.1.4-next.0

Patch Changes

0.1.3

Patch Changes

  • 1d47bf3: Proxy /.well-known/oauth-authorization-server to /.well-known/openid-configuration on auth-backend when auth.experimentalDynamicClientRegistration.enabled is enabled.
  • 7f2a4a0: Updating docs
  • d08b0c9: The MCP backend will now convert known Backstage errors into textual responses with isError: true. The error message can be useful for an LLM to understand and maybe give back to the user. Previously all errors where thrown out to @modelcontextprotocol/sdk which causes a generic 500.
  • Updated dependencies

0.1.3-next.1

Patch Changes

  • 1d47bf3: Proxy /.well-known/oauth-authorization-server to /.well-known/openid-configuration on auth-backend when auth.experimentalDynamicClientRegistration.enabled is enabled.
  • Updated dependencies

0.1.3-next.0

Patch Changes

  • d08b0c9: The MCP backend will now convert known Backstage errors into textual responses with isError: true. The error message can be useful for an LLM to understand and maybe give back to the user. Previously all errors where thrown out to @modelcontextprotocol/sdk which causes a generic 500.
  • Updated dependencies

0.1.2

Patch Changes

0.1.2-next.0

Patch Changes

0.1.1

Patch Changes

0.1.1-next.1

Patch Changes

0.1.1-next.0

Patch Changes

0.1.0

Minor Changes

  • 4ed0fb6: Initial implementation of an mcp-actions backend

Patch Changes

@backstage/[email protected]

@backstage/plugin-permission-backend

0.7.8-next.0

Patch Changes

0.7.7

Patch Changes

0.7.7-next.1

Patch Changes

0.7.7-next.0

Patch Changes

0.7.6

Patch Changes

0.7.6-next.1

Patch Changes

0.7.6-next.0

Patch Changes

0.7.5

Patch Changes

0.7.5-next.0

Patch Changes

0.7.4

Patch Changes

0.7.4-next.0

Patch Changes

0.7.3

Patch Changes

0.7.3-next.0

Patch Changes

0.7.2

Patch Changes

0.7.2-next.0

Patch Changes

0.7.1

Patch Changes

0.7.1-next.1

Patch Changes

0.7.1-next.0

Patch Changes

0.7.0

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.
  • cf8fd51: BREAKING Removed support for the legacy backend system, please migrate to the new backend system

Patch Changes

0.7.0-next.2

Patch Changes

0.7.0-next.1

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.

Patch Changes

0.7.0-next.0

Minor Changes

Patch Changes

0.6.0

Minor Changes

  • 78eaa50: Improved validation for the /authorize endpoint when a resourceRef is provided alongside a basic permission. Additionally, introduced a clearer error message for cases where users attempt to directly evaluate conditional permissions.

Patch Changes

0.5.55

Patch Changes

0.5.55-next.1

Patch Changes

0.5.55-next.0

Patch Changes

0.5.54

Patch Changes

0.5.54-next.2

Patch Changes

0.5.54-next.1

Patch Changes

0.5.54-next.0

Patch Changes

0.5.53

Patch Changes

0.5.53-next.1

Patch Changes

0.5.53-next.0

Patch Changes

0.5.52

Patch Changes

0.5.52-next.2

Patch Changes

0.5.52-next.1

Patch Changes

0.5.52-next.0

Patch Changes

0.5.51

Patch Changes

0.5.51-next.2

Patch Changes

0.5.51-next.1

Patch Changes

0.5.51-next.0

Patch Changes

0.5.50

Patch Changes

0.5.50-next.1

Patch Changes

0.5.50-next.0

Patch Changes

0.5.49

Patch Changes

0.5.49-next.2

Patch Changes

0.5.49-next.1

Patch Changes

0.5.49-next.0

Patch Changes

0.5.47

Patch Changes

0.5.47-next.3

Patch Changes

0.5.47-next.2

Patch Changes

0.5.47-next.1

Patch Changes

0.5.47-next.0

Patch Changes

0.5.46

Patch Changes

  • ed10fd2: The PermissionPolicy interface has been updated to align with the recent changes to the Backstage auth system. The second argument to the handle method is now of the new PolicyQueryUser type. This type maintains the old fields from the BackstageIdentityResponse, which are now all deprecated. Instead, two new fields have been added, which allows access to the same information:

    • credentials - A BackstageCredentials object, which is useful for making requests to other services on behalf of the user as part of evaluating the policy. This replaces the deprecated token field. See the Auth Service documentation for information about how to create a token using these credentials.
    • info - A BackstageUserInfo object, which contains the same information as the deprecated identity, except for the type field that was redundant.

    Most existing policies can be updated by replacing the BackstageIdentityResponse type with PolicyQueryUser, which is exported from @backstage/plugin-permission-node, as well as replacing any occurrences of user?.identity with user?.info.

  • Updated dependencies

0.5.46-next.1

Patch Changes

0.5.45-next.0

Patch Changes

0.5.43

Patch Changes

0.5.43-next.3

Patch Changes

0.5.43-next.2

Patch Changes

0.5.43-next.1

Patch Changes

0.5.43-next.0

Patch Changes

0.5.42

Patch Changes

0.5.42-next.1

Patch Changes

0.5.42-next.0

Patch Changes

0.5.41

Patch Changes

0.5.41-next.1

Patch Changes

0.5.41-next.0

Patch Changes

0.5.40

Patch Changes

0.5.39

Patch Changes

0.5.38

Patch Changes

  • 9c7fb30: Properly forward causes of errors from upstream backends in the PermissionIntegrationClient

0.5.37

Patch Changes

0.5.37-next.2

Patch Changes

0.5.37-next.1

Patch Changes

0.5.36-next.0

Patch Changes

0.5.33

Patch Changes

0.5.33-next.3

Patch Changes

0.5.33-next.2

Patch Changes

0.5.33-next.1

Patch Changes

0.5.33-next.0

Patch Changes

0.5.32

Patch Changes

0.5.32-next.2

Patch Changes

0.5.32-next.1

Patch Changes

0.5.32-next.0

Patch Changes

0.5.31

Patch Changes

0.5.31-next.3

Patch Changes

0.5.31-next.2

Patch Changes

0.5.31-next.1

Patch Changes

0.5.31-next.0

Patch Changes

0.5.30

Patch Changes

0.5.30-next.2

Patch Changes

0.5.30-next.1

Patch Changes

0.5.30-next.0

Patch Changes

0.5.29

Patch Changes

0.5.29-next.2

Patch Changes

0.5.28-next.1

Patch Changes

0.5.28-next.0

Patch Changes

0.5.26

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • a8a614ba0d07: Minor package.json update.

  • 84ad6fccd4d5: Moved permissionModuleAllowAllPolicy to @backstage/plugin-permission-backend-module-allow-all-policy

  • Updated dependencies

0.5.26-next.3

Patch Changes

  • 71114ac50e02: The export for the new backend system has been moved to be the default export.

    For example, if you are currently importing the plugin using the following pattern:

    ts
    import { examplePlugin } from '@backstage/plugin-example-backend';
    
    backend.add(examplePlugin);
    

    It should be migrated to this:

    ts
    backend.add(import('@backstage/plugin-example-backend'));
    
  • a8a614ba0d07: Minor package.json update.

  • Updated dependencies

0.5.26-next.2

Patch Changes

0.5.26-next.1

Patch Changes

0.5.25-next.0

Patch Changes

0.5.23

Patch Changes

0.5.23-next.2

Patch Changes

0.5.23-next.1

Patch Changes

0.5.23-next.0

Patch Changes

0.5.22

Patch Changes

0.5.22-next.0

Patch Changes

0.5.21

Patch Changes

0.5.21-next.2

Patch Changes

0.5.21-next.1

Patch Changes

0.5.21-next.0

Patch Changes

0.5.20

Patch Changes

0.5.20-next.1

Patch Changes

0.5.20-next.0

Patch Changes

0.5.19

Patch Changes

0.5.19-next.2

Patch Changes

0.5.19-next.1

Patch Changes

0.5.19-next.0

Patch Changes

0.5.18

Patch Changes

0.5.18-next.2

Patch Changes

0.5.18-next.1

Patch Changes

0.5.18-next.0

Patch Changes

0.5.17

Patch Changes

0.5.17-next.2

Patch Changes

0.5.17-next.1

Patch Changes

0.5.17-next.0

Patch Changes

0.5.15

Patch Changes

0.5.15-next.1

Patch Changes

0.5.15-next.0

Patch Changes

0.5.14

Patch Changes

0.5.14-next.3

Patch Changes

0.5.14-next.2

Patch Changes

0.5.14-next.1

Patch Changes

0.5.14-next.0

Patch Changes

0.5.13

Patch Changes

0.5.13-next.1

Patch Changes

0.5.13-next.0

Patch Changes

0.5.12

Patch Changes

0.5.12-next.2

Patch Changes

0.5.12-next.1

Patch Changes

0.5.12-next.0

Patch Changes

0.5.11

Patch Changes

0.5.11-next.2

Patch Changes

0.5.11-next.1

Patch Changes

  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.
  • 2cbd533426: Uptake the IdentityApi change to use getIdentity instead of authenticate for retrieving the logged in users identity.
  • Updated dependencies

0.5.11-next.0

Patch Changes

0.5.10

Patch Changes

0.5.10-next.0

Patch Changes

0.5.9

Patch Changes

0.5.9-next.2

Patch Changes

0.5.9-next.1

Patch Changes

0.5.9-next.0

Patch Changes

0.5.8

Patch Changes

0.5.8-next.2

Patch Changes

0.5.8-next.1

Patch Changes

0.5.8-next.0

Patch Changes

0.5.7

Patch Changes

0.5.7-next.1

Patch Changes

0.5.7-next.0

Patch Changes

0.5.6

Patch Changes

  • c98d271466: Use updated types from @backstage/plugin-permission-common
  • 95284162d6: - Add more specific check for policies which return conditional decisions for non-resource permissions.
    • Refine permission validation in authorize endpoint to differentiate between BasicPermission and ResourcePermission instances.
  • Updated dependencies

0.5.6-next.1

Patch Changes

  • c98d271466: Use updated types from @backstage/plugin-permission-common
  • 95284162d6: - Add more specific check for policies which return conditional decisions for non-resource permissions.
    • Refine permission validation in authorize endpoint to differentiate between BasicPermission and ResourcePermission instances.
  • Updated dependencies

0.5.6-next.0

Patch Changes

0.5.5

Patch Changes

0.5.4

Patch Changes

0.5.4-next.0

Patch Changes

0.5.3

Patch Changes

0.5.2

Patch Changes

0.5.1

Patch Changes

0.5.0

Minor Changes

  • e2cf0662eb: Add a warning if the permission backend is used without setting permission.enabled=true.

    BREAKING Permission backend's createRouter now requires a config option.

    diff
    // packages/backend/src/plugins/permission.ts
    
    ...
    export default async function createPlugin({
      ...
    + config,
    }: PluginEnvironment) {
      return createRouter({
        ...
    +   config,
      });
    }
    

Patch Changes

0.4.3

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

  • b768259244: BREAKING: Wrap batched requests and responses to /authorize in an envelope object. The latest version of the PermissionClient in @backstage/permission-common uses the new format - as long as the permission-backend is consumed using this client, no other changes are necessary.

Patch Changes

0.4.0-next.0

Minor Changes

  • b768259244: BREAKING: Wrap batched requests and responses to /authorize in an envelope object. The latest version of the PermissionClient in @backstage/permission-common uses the new format - as long as the permission-backend is consumed using this client, no other changes are necessary.

Patch Changes

0.3.0

Minor Changes

  • 419ca637c0: Optimizations to the integration between the permission backend and plugin-backends using createPermissionIntegrationRouter:

    • The permission backend already supported batched requests to authorize, but would make calls to plugin backend to apply conditions serially. Now, after applying the policy for each authorization request, the permission backend makes a single batched /apply-conditions request to each plugin backend referenced in policy decisions.
    • The getResource method accepted by createPermissionIntegrationRouter has been replaced with getResources, to allow consumers to make batch requests to upstream data stores. When /apply-conditions is called with a batch of requests, all required resources are requested in a single invocation of getResources.

    Plugin owners consuming createPermissionIntegrationRouter should replace the getResource method in the options with a getResources method, accepting an array of resourceRefs, and returning an array of the corresponding resources.

Patch Changes

0.2.3

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

  • a036b65c2f: Updated to use the new BackstageIdentityResponse type from @backstage/plugin-auth-backend.

    The BackstageIdentityResponse type is backwards compatible with the BackstageIdentity, and provides an additional identity field with the claims of the user.

  • Updated dependencies

0.2.0

Minor Changes

  • 450ca92330: Change route used for integration between the authorization framework and other plugin backends to use the /.well-known prefix.

Patch Changes

0.1.0

Minor Changes

  • 7a8312f126: New package containing the backend for authorization and permissions. For more information, see the authorization PRFC.

Patch Changes

@backstage/[email protected]

@backstage/plugin-permission-common

0.9.5-next.0

Patch Changes

0.9.4

Patch Changes

  • 872eb91: Upgrade zod-to-json-schema to latest version

0.9.3

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns
  • Updated dependencies

0.9.3-next.1

Patch Changes

  • b2bef92: Convert all enums to erasable-syntax compliant patterns

0.9.3-next.0

Patch Changes

0.9.2

Patch Changes

0.9.2-next.0

Patch Changes

0.9.1

Patch Changes

  • 3507fcd: Just some more circular dep cleanup
  • Updated dependencies

0.9.1-next.0

Patch Changes

  • 3507fcd: Just some more circular dep cleanup
  • Updated dependencies

0.9.0

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.

Patch Changes

  • 37328b1: Fixed an issue causing PermissionClient to throw an error when authorizing basic permissions with the permission.EXPERIMENTAL_enableBatchedRequests config enabled.
  • 72d019d: Removed various typos
  • Updated dependencies

0.9.0-next.0

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.

Patch Changes

0.8.4

Patch Changes

0.8.4-next.0

Patch Changes

0.8.3

Patch Changes

0.8.3-next.0

Patch Changes

0.8.2

Patch Changes

0.8.1

Patch Changes

  • df784fe: Add the MetadataResponse type from @backstage/plugin-permission-node, since this type might be used in frontend code.
  • 137fa34: Add the MetadataResponseSerializedRule type from @backstage/plugin-permission-node, since this type might be used in frontend code.
  • Updated dependencies

0.8.1-next.1

Patch Changes

0.8.1-next.0

Patch Changes

0.8.0

Minor Changes

  • f4085b8: BREAKING: Removed the deprecated and unused token option from EvaluatorRequestOptions. The PermissionsClient now has its own PermissionClientRequestOptions type that declares the token option instead.

Patch Changes

0.7.14

Patch Changes

0.7.14-next.0

Patch Changes

0.7.13

Patch Changes

  • 0502d82: The token option of the PermissionEvaluator methods is now deprecated. The options that only apply to backend implementations have been moved to PermissionsService from @backstage/backend-plugin-api instead.
  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.
  • Updated dependencies

0.7.13-next.1

Patch Changes

0.7.13-next.0

Patch Changes

  • 0502d82: The token option of the PermissionEvaluator methods is now deprecated. The options that only apply to backend implementations have been moved to PermissionsService from @backstage/backend-plugin-api instead.
  • 0fb419b: Updated dependency uuid to ^9.0.0. Updated dependency @types/uuid to ^9.0.0.
  • Updated dependencies

0.7.12

Patch Changes

0.7.11

Patch Changes

0.7.10

Patch Changes

0.7.9

Patch Changes

0.7.9-next.0

Patch Changes

0.7.8

Patch Changes

0.7.8-next.2

Patch Changes

0.7.8-next.1

Patch Changes

0.7.8-next.0

Patch Changes

0.7.7

Patch Changes

0.7.7-next.0

Patch Changes

0.7.6

Patch Changes

0.7.6-next.0

Patch Changes

0.7.5

Patch Changes

0.7.5-next.0

Patch Changes

0.7.4

Patch Changes

0.7.4-next.0

Patch Changes

0.7.3

Patch Changes

0.7.3-next.0

Patch Changes

0.7.2

Patch Changes

0.7.2-next.2

Patch Changes

0.7.2-next.1

Patch Changes

0.7.2-next.0

Patch Changes

0.7.1

Patch Changes

0.7.1-next.0

Patch Changes

0.7.0

Minor Changes

  • 46b4a72cee: BREAKING: When defining permission rules, it's now necessary to provide a ZodSchema that specifies the parameters the rule expects. This has been added to help better describe the parameters in the response of the metadata endpoint and to validate the parameters before a rule is executed.

    To help with this, we have also made a change to the API of permission rules. Before, the permission rules toQuery and apply signature expected parameters to be separate arguments, like so...

    ts
    createPermissionRule({
      apply: (resource, foo, bar) => true,
      toQuery: (foo, bar) => {},
    });
    

    The API has now changed to expect the parameters as a single object

    ts
    createPermissionRule({
      paramSchema: z.object({
        foo: z.string().describe('Foo value to match'),
        bar: z.string().describe('Bar value to match'),
      }),
      apply: (resource, { foo, bar }) => true,
      toQuery: ({ foo, bar }) => {},
    });
    

    One final change made is to limit the possible values for a parameter to primitives and arrays of primitives.

Patch Changes

0.7.0-next.2

Minor Changes

  • 46b4a72cee: BREAKING: When defining permission rules, it's now necessary to provide a ZodSchema that specifies the parameters the rule expects. This has been added to help better describe the parameters in the response of the metadata endpoint and to validate the parameters before a rule is executed.

    To help with this, we have also made a change to the API of permission rules. Before, the permission rules toQuery and apply signature expected parameters to be separate arguments, like so...

    ts
    createPermissionRule({
      apply: (resource, foo, bar) => true,
      toQuery: (foo, bar) => {},
    });
    

    The API has now changed to expect the parameters as a single object

    ts
    createPermissionRule({
      paramSchema: z.object({
        foo: z.string().describe('Foo value to match'),
        bar: z.string().describe('Bar value to match'),
      }),
      apply: (resource, { foo, bar }) => true,
      toQuery: ({ foo, bar }) => {},
    });
    

    One final change made is to limit the possible values for a parameter to primitives and arrays of primitives.

Patch Changes

0.6.5-next.1

Patch Changes

0.6.5-next.0

Patch Changes

0.6.4

Patch Changes

  • 7d47def9c4: Removed dependency on @types/jest.
  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.
  • bf5e9030eb: Updated dependency msw to ^0.45.0.
  • Updated dependencies

0.6.4-next.2

Patch Changes

0.6.4-next.1

Patch Changes

  • 667d917488: Updated dependency msw to ^0.47.0.
  • 87ec2ba4d6: Updated dependency msw to ^0.46.0.

0.6.4-next.0

Patch Changes

  • bf5e9030eb: Updated dependency msw to ^0.45.0.

0.6.3

Patch Changes

  • a70869e775: Updated dependency msw to ^0.43.0.
  • 8006d0f9bf: Updated dependency msw to ^0.44.0.
  • Updated dependencies

0.6.3-next.1

Patch Changes

  • a70869e775: Updated dependency msw to ^0.43.0.

0.6.3-next.0

Patch Changes

0.6.2

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.

0.6.2-next.0

Patch Changes

  • 8f7b1835df: Updated dependency msw to ^0.41.0.

0.6.1

Patch Changes

0.6.1-next.0

Patch Changes

0.6.0

Minor Changes

  • 8012ac46a0: Add resourceType property to PermissionCondition type to allow matching them with ResourcePermission instances.

  • c98d271466: Refactor api types into more specific, decoupled names.

    • BREAKING:
      • Renamed AuthorizeDecision to EvaluatePermissionResponse
      • Renamed AuthorizeQuery to EvaluatePermissionRequest
      • Renamed AuthorizeRequest to EvaluatePermissionRequestBatch
      • Renamed AuthorizeResponse to EvaluatePermissionResponseBatch
      • Renamed Identified to IdentifiedPermissionMessage
    • Add PermissionMessageBatch helper type
    • Add ConditionalPolicyDecision, DefinitivePolicyDecision, and PolicyDecision types from @backstage/plugin-permission-node

Patch Changes

  • 90754d4fa9: Removed strict validation from PermissionCriteria schemas to support backward-compatible changes.

  • 2b07063d77: Added PermissionEvaluator, which will replace the existing PermissionAuthorizer interface. This new interface provides stronger type safety and validation by splitting PermissionAuthorizer.authorize() into two methods:

    • authorize(): Used when the caller requires a definitive decision.
    • authorizeConditional(): Used when the caller can optimize the evaluation of any conditional decisions. For example, a plugin backend may want to use conditions in a database query instead of evaluating each resource in memory.
  • 8012ac46a0: Add isPermission helper method.

  • 95284162d6: - Add more specific Permission types.

    • Add createPermission helper to infer the appropriate type for some permission input.
    • Add isResourcePermission helper to refine Permissions to ResourcePermissions.

0.6.0-next.1

Patch Changes

  • 2b07063d77: Added PermissionEvaluator, which will replace the existing PermissionAuthorizer interface. This new interface provides stronger type safety and validation by splitting PermissionAuthorizer.authorize() into two methods:

    • authorize(): Used when the caller requires a definitive decision.
    • authorizeConditional(): Used when the caller can optimize the evaluation of any conditional decisions. For example, a plugin backend may want to use conditions in a database query instead of evaluating each resource in memory.

0.6.0-next.0

Minor Changes

  • 8012ac46a0: Add resourceType property to PermissionCondition type to allow matching them with ResourcePermission instances.

  • c98d271466: Refactor api types into more specific, decoupled names.

    • BREAKING:
      • Renamed AuthorizeDecision to EvaluatePermissionResponse
      • Renamed AuthorizeQuery to EvaluatePermissionRequest
      • Renamed AuthorizeRequest to EvaluatePermissionRequestBatch
      • Renamed AuthorizeResponse to EvaluatePermissionResponseBatch
      • Renamed Identified to IdentifiedPermissionMessage
    • Add PermissionMessageBatch helper type
    • Add ConditionalPolicyDecision, DefinitivePolicyDecision, and PolicyDecision types from @backstage/plugin-permission-node

Patch Changes

  • 8012ac46a0: Add isPermission helper method.
  • 95284162d6: - Add more specific Permission types.
    • Add createPermission helper to infer the appropriate type for some permission input.
    • Add isResourcePermission helper to refine Permissions to ResourcePermissions.

0.5.3

Patch Changes

0.5.2

Patch Changes

  • 79b9d8a861: Add api doc comments to Permission type properties.

0.5.1

Patch Changes

0.5.0

Minor Changes

  • 8c646beb24: BREAKING PermissionCriteria now requires at least one condition in anyOf and allOf arrays. This addresses some ambiguous behavior outlined in #9280.

Patch Changes

  • 1ed305728b: Bump node-fetch to version 2.6.7 and cross-fetch to version 3.1.5
  • c77c5c7eb6: Added backstage.role to package.json
  • Updated dependencies

0.4.0

Minor Changes

  • b768259244: BREAKING: Authorize API request and response types have been updated. The existing AuthorizeRequest and AuthorizeResponse types now match the entire request and response objects for the /authorize endpoint, and new types AuthorizeQuery and AuthorizeDecision have been introduced for individual items in the request and response batches respectively.

    BREAKING: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/plugin-permission-backend.

Patch Changes

0.4.0-next.0

Minor Changes

  • b768259244: BREAKING: Authorize API request and response types have been updated. The existing AuthorizeRequest and AuthorizeResponse types now match the entire request and response objects for the /authorize endpoint, and new types AuthorizeQuery and AuthorizeDecision have been introduced for individual items in the request and response batches respectively.

    BREAKING: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/plugin-permission-backend.

Patch Changes

0.3.1

Patch Changes

0.3.0

Minor Changes

  • 0e8ec6d974: - Add PermissionAuthorizer interface matching PermissionClient to allow alternative implementations like the ServerPermissionClient in @backstage/plugin-permission-node.

    Breaking Changes:

    • Remove "api" suffixes from constructor parameters in PermissionClient
    diff
      const { config, discovery } = options;
    -  const permissionClient = new PermissionClient({ discoveryApi: discovery, configApi: config });
    +  const permissionClient = new PermissionClient({ discovery, config });
    

0.2.0

Minor Changes

  • 92439056fb: Accept configApi rather than enabled flag in PermissionClient constructor.

Patch Changes

@backstage/[email protected]

@backstage/plugin-permission-node

0.10.9-next.0

Patch Changes

0.10.8

Patch Changes

0.10.7

Patch Changes

0.10.7-next.1

Patch Changes

0.10.7-next.0

Patch Changes

0.10.6

Patch Changes

0.10.6-next.1

Patch Changes

0.10.6-next.0

Patch Changes

0.10.5

Patch Changes

0.10.5-next.0

Patch Changes

0.10.4

Patch Changes

0.10.4-next.0

Patch Changes

0.10.3

Patch Changes

0.10.3-next.0

Patch Changes

0.10.2

Patch Changes

0.10.2-next.0

Patch Changes

0.10.1

Patch Changes

0.10.1-next.1

Patch Changes

0.10.1-next.0

Patch Changes

0.10.0

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.

Patch Changes

0.10.0-next.2

Patch Changes

0.10.0-next.1

Minor Changes

  • 4da2965: Fixed an issue causing the PermissionClient to exhaust the request body size limit too quickly when making many requests.

Patch Changes

0.9.2-next.0

Patch Changes

0.9.1

Patch Changes

0.9.0

Minor Changes

  • 22ace13: BREAKING The ServerPermissionClient can no longer be instantiated with a tokenManager and must instead be instantiated with an auth service. If you are still on the legacy backend system, use createLegacyAuthAdapters() from @backstage/backend-common to create a compatible auth service.

Patch Changes

0.8.9-next.1

Patch Changes

0.8.9-next.0

Patch Changes

0.8.8

Patch Changes

  • 049d5d4: The returned router from createPermissionIntegrationRouter is now mutable, allowing for permissions and resources to be added after creation of the router.
  • b71f634: Added a new PermissionRuleset type that encapsulates a lookup function for permission rules, which can be created by the new PermissionsRegistryService via the getPermissionRuleset method. The createConditionTransformer and createConditionAuthorizer functions have been adapted to receive these accessors as arguments, with their older counterparts being deprecated.
  • a9621de: Added a new createPermissionResourceRef utility that encapsulates the constants and types related to a permission resource types. The createConditionExports and createPermissionRule functions have also been adapted to accept these references as arguments, deprecating their older counterparts.
  • Updated dependencies

0.8.8-next.2

Patch Changes

  • b71f634: Added a new PermissionRuleset type that encapsulates a lookup function for permission rules, which can be created by the new PermissionsRegistryService via the getPermissionRuleset method. The createConditionTransformer and createConditionAuthorizer functions have been adapted to receive these accessors as arguments, with their older counterparts being deprecated.
  • a9621de: Added a new createPermissionResourceRef utility that encapsulates the constants and types related to a permission resource types. The createConditionExports and createPermissionRule functions have also been adapted to accept these references as arguments, deprecating their older counterparts.
  • Updated dependencies

0.8.8-next.1

Patch Changes

0.8.8-next.0

Patch Changes

0.8.7

Patch Changes

0.8.7-next.1

Patch Changes

0.8.7-next.0

Patch Changes

0.8.6

Patch Changes

0.8.6-next.2

Patch Changes

0.8.6-next.1

Patch Changes

0.8.6-next.0

Patch Changes

0.8.5

Patch Changes

0.8.5-next.2

Patch Changes

0.8.5-next.1

Patch Changes

0.8.5-next.0

Patch Changes

0.8.4

Patch Changes

0.8.4-next.1

Patch Changes

0.8.4-next.0

Patch Changes

0.8.3

Patch Changes

0.8.3-next.2

Patch Changes

0.8.3-next.1

Patch Changes

0.8.3-next.0

Patch Changes

0.8.1

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.
  • 5cd9878: The MetadataResponseSerializedRule type has been moved to @backstage/plugin-permission-common, 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

0.8.1-next.3

Patch Changes

0.8.1-next.2

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

0.8.1-next.1

Patch Changes

0.8.1-next.0

Patch Changes

0.8.0

Minor Changes

  • 36f91e8: BREAKING: Updated the ServerPermissionClient to match the new PermissionsService interface, where the deprecated token option has been removed and the options are now required.

Patch Changes

  • ed10fd2: The PermissionPolicy interface has been updated to align with the recent changes to the Backstage auth system. The second argument to the handle method is now of the new PolicyQueryUser type. This type maintains the old fields from the BackstageIdentityResponse, which are now all deprecated. Instead, two new fields have been added, which allows access to the same information:

    • credentials - A BackstageCredentials object, which is useful for making requests to other services on behalf of the user as part of evaluating the policy. This replaces the deprecated token field. See the Auth Service documentation for information about how to create a token using these credentials.
    • info - A BackstageUserInfo object, which contains the same information as the deprecated identity, except for the type field that was redundant.

    Most existing policies can be updated by replacing the BackstageIdentityResponse type with PolicyQueryUser, which is exported from @backstage/plugin-permission-node, as well as replacing any occurrences of user?.identity with user?.info.

  • 28b2cfb: Fix invalid cross-reference in API Reference docs

  • Updated dependencies

0.7.33-next.1

Patch Changes

0.7.32-next.0

Patch Changes

0.7.30

Patch Changes

0.7.30-next.3

Patch Changes

0.7.30-next.2

Patch Changes

0.7.30-next.1

Patch Changes

0.7.30-next.0

Patch Changes

0.7.29

Patch Changes

0.7.29-next.1

Patch Changes

0.7.29-next.0

Patch Changes

0.7.28

Patch Changes

0.7.28-next.1

Patch Changes

0.7.28-next.0

Patch Changes

0.7.27

Patch Changes

0.7.26

Patch Changes

0.7.25

Patch Changes

0.7.25-next.2

Patch Changes

0.7.25-next.1

Patch Changes

0.7.24-next.0

Patch Changes

0.7.21

Patch Changes

0.7.21-next.3

Patch Changes

0.7.21-next.2

Patch Changes

0.7.21-next.1

Patch Changes

0.7.21-next.0

Patch Changes

0.7.20

Patch Changes

0.7.20-next.2

Patch Changes

0.7.20-next.1

Patch Changes

0.7.20-next.0

Patch Changes

0.7.19

Patch Changes

0.7.19-next.3

Patch Changes

0.7.19-next.2

Patch Changes

0.7.19-next.1

Patch Changes

0.7.19-next.0

Patch Changes

0.7.18

Patch Changes

0.7.18-next.2

Patch Changes

0.7.18-next.1

Patch Changes

0.7.18-next.0

Patch Changes

0.7.17

Patch Changes

0.7.17-next.2

Patch Changes

0.7.16-next.1

Patch Changes

0.7.16-next.0

Patch Changes

0.7.14

Patch Changes

0.7.14-next.3

Patch Changes

0.7.14-next.2

Patch Changes

0.7.14-next.1

Patch Changes

0.7.13-next.0

Patch Changes

0.7.11

Patch Changes

0.7.11-next.2

Patch Changes

0.7.11-next.1

Patch Changes

0.7.11-next.0

Patch Changes

0.7.10

Patch Changes

0.7.10-next.0

Patch Changes

0.7.9

Patch Changes

0.7.9-next.2

Patch Changes

0.7.9-next.1

Patch Changes

0.7.9-next.0

Patch Changes

0.7.8

Patch Changes

  • a788e715cfc: createPermissionIntegrationRouter now accepts rules and permissions for multiple resource types. Example:

    typescript
    createPermissionIntegrationRouter({
      resources: [
        {
          resourceType: 'resourceType-1',
          permissions: permissionsResourceType1,
          rules: rulesResourceType1,
        },
        {
          resourceType: 'resourceType-2',
          permissions: permissionsResourceType2,
          rules: rulesResourceType2,
        },
      ],
    });
    
  • Updated dependencies

0.7.8-next.1

Patch Changes

0.7.8-next.0

Patch Changes

  • a788e715cfc: createPermissionIntegrationRouter now accepts rules and permissions for multiple resource types. Example:

    typescript
    createPermissionIntegrationRouter({
      resources: [
        {
          resourceType: 'resourceType-1',
          permissions: permissionsResourceType1,
          rules: rulesResourceType1,
        },
        {
          resourceType: 'resourceType-2',
          permissions: permissionsResourceType2,
          rules: rulesResourceType2,
        },
      ],
    });
    
  • Updated dependencies

0.7.7

Patch Changes

  • 788f0f5a152: Introduced alpha export of the policyExtensionPoint for use in the new backend system.
  • 71fd0966d10: Added createConditionAuthorizer utility function, which takes some permission conditions and returns a function that returns a definitive authorization result given a decision and a resource.
  • 1e4f5e91b8e: Bump zod and zod-to-json-schema dependencies.
  • Updated dependencies

0.7.7-next.2

Patch Changes

0.7.7-next.1

Patch Changes

0.7.7-next.0

Patch Changes

0.7.6

Patch Changes

0.7.6-next.2

Patch Changes

0.7.6-next.1

Patch Changes

0.7.6-next.0

Patch Changes

0.7.5

Patch Changes

0.7.5-next.2

Patch Changes

0.7.5-next.1

Patch Changes

0.7.5-next.0

Patch Changes

0.7.3

Patch Changes

0.7.3-next.1

Patch Changes

0.7.3-next.0

Patch Changes

0.7.2

Patch Changes

0.7.2-next.3

Patch Changes

0.7.2-next.2

Patch Changes

0.7.2-next.1

Patch Changes

0.7.2-next.0

Patch Changes

0.7.1

Patch Changes

0.7.1-next.1

Patch Changes

0.7.1-next.0

Patch Changes

0.7.0

Minor Changes

  • 46b4a72cee: BREAKING: When defining permission rules, it's now necessary to provide a ZodSchema that specifies the parameters the rule expects. This has been added to help better describe the parameters in the response of the metadata endpoint and to validate the parameters before a rule is executed.

    To help with this, we have also made a change to the API of permission rules. Before, the permission rules toQuery and apply signature expected parameters to be separate arguments, like so...

    ts
    createPermissionRule({
      apply: (resource, foo, bar) => true,
      toQuery: (foo, bar) => {},
    });
    

    The API has now changed to expect the parameters as a single object

    ts
    createPermissionRule({
      paramSchema: z.object({
        foo: z.string().describe('Foo value to match'),
        bar: z.string().describe('Bar value to match'),
      }),
      apply: (resource, { foo, bar }) => true,
      toQuery: ({ foo, bar }) => {},
    });
    

    One final change made is to limit the possible values for a parameter to primitives and arrays of primitives.

Patch Changes

0.7.0-next.2

Minor Changes

  • 46b4a72cee: BREAKING: When defining permission rules, it's now necessary to provide a ZodSchema that specifies the parameters the rule expects. This has been added to help better describe the parameters in the response of the metadata endpoint and to validate the parameters before a rule is executed.

    To help with this, we have also made a change to the API of permission rules. Before, the permission rules toQuery and apply signature expected parameters to be separate arguments, like so...

    ts
    createPermissionRule({
      apply: (resource, foo, bar) => true,
      toQuery: (foo, bar) => {},
    });
    

    The API has now changed to expect the parameters as a single object

    ts
    createPermissionRule({
      paramSchema: z.object({
        foo: z.string().describe('Foo value to match'),
        bar: z.string().describe('Bar value to match'),
      }),
      apply: (resource, { foo, bar }) => true,
      toQuery: ({ foo, bar }) => {},
    });
    

    One final change made is to limit the possible values for a parameter to primitives and arrays of primitives.

Patch Changes

0.6.6-next.1

Patch Changes

0.6.6-next.0

Patch Changes

0.6.5

Patch Changes

0.6.5-next.3

Patch Changes

0.6.5-next.2

Patch Changes

0.6.5-next.1

Patch Changes

0.6.5-next.0

Patch Changes

0.6.4

Patch Changes

0.6.4-next.0

Patch Changes

0.6.3

Patch Changes

0.6.3-next.2

Patch Changes

0.6.3-next.1

Patch Changes

0.6.3-next.0

Patch Changes

0.6.2

Patch Changes

  • 58426f9c0f: Added a new endpoint for aggregating permission metadata from a plugin backend: /.well-known/backstage/permissions/metadata

    By default, the metadata endpoint will return information about the permission rules supported by the plugin. Plugin authors can also provide an optional permissions parameter to createPermissionIntegrationRouter. If provided, these Permission objects will be included in the metadata returned by this endpoint. The permissions parameter will eventually be required in a future breaking change.

  • 8f7b1835df: Updated dependency msw to ^0.41.0.

  • Updated dependencies

0.6.2-next.2

Patch Changes

0.6.2-next.1

Patch Changes

0.6.2-next.0

Patch Changes

0.6.1

Patch Changes

0.6.1-next.1

Patch Changes

0.6.1-next.0

Patch Changes

0.6.0

Minor Changes

  • 8012ac46a0: BREAKING: Stronger typing in PermissionPolicy 🎉.

    Previously, it was entirely the responsibility of the PermissionPolicy author to only return CONDITIONAL decisions for permissions that are associated with a resource, and to return the correct kind of PermissionCondition instances inside the decision. Now, the policy authoring helpers provided in this package now ensure that the decision and permission match.

    For policy authors: rename and adjust api of createConditionExports. Previously, the function returned a factory for creating conditional decisions named createPolicyDecision, which had a couple of drawbacks:

    1. The function always creates a conditional policy decision, but this was not reflected in the name.
    2. Conditional decisions should only ever be returned from PermissionPolicy#handle for resource permissions, but there was nothing in the API that encoded this constraint.

    This change addresses the drawbacks above by making the following changes for policy authors:

    • The createPolicyDecision method has been renamed to createConditionalDecision.
    • Along with conditions, the method now accepts a permission, which must be a ResourcePermission. This is expected to be the handled permission in PermissionPolicy#handle, whose type must first be narrowed using methods like isPermission and isResourcePermission:
    typescript
    class TestPermissionPolicy implements PermissionPolicy {
      async handle(
        request: PolicyQuery<Permission>,
        _user?: BackstageIdentityResponse,
      ): Promise<PolicyDecision> {
        if (
          // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'>
          isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY)
        ) {
          return createCatalogConditionalDecision(
            request.permission,
            catalogConditions.isEntityOwner(
              _user?.identity.ownershipEntityRefs ?? [],
            ),
          );
        }
    
        return {
          result: AuthorizeResult.ALLOW,
        };
    

    BREAKING: when creating PermissionRules, provide a resourceType.

    diff
    export const isEntityOwner = createCatalogPermissionRule({
      name: 'IS_ENTITY_OWNER',
      description: 'Allow entities owned by the current user',
    +  resourceType: RESOURCE_TYPE_CATALOG_ENTITY,
      apply: (resource: Entity, claims: string[]) => {
        if (!resource.relations) {
          return false;
        }
    
        return resource.relations
          .filter(relation => relation.type === RELATION_OWNED_BY)
          .some(relation => claims.includes(relation.targetRef));
      },
      toQuery: (claims: string[]) => ({
        key: 'relations.ownedBy',
        values: claims,
      }),
    });
    
  • c98d271466: BREAKING:

    • Rename PolicyAuthorizeQuery to PolicyQuery
    • Remove PolicyDecision, DefinitivePolicyDecision, and ConditionalPolicyDecision. These types are now exported from @backstage/plugin-permission-common
  • 322b69e46a: BREAKING: ServerPermissionClient now implements PermissionEvaluator, which moves out the capabilities for evaluating conditional decisions from authorize() to authorizeConditional() method.

Patch Changes

0.6.0-next.2

Minor Changes

  • 322b69e46a: BREAKING: ServerPermissionClient now implements PermissionEvaluator, which moves out the capabilities for evaluating conditional decisions from authorize() to authorizeConditional() method.

Patch Changes

0.6.0-next.1

Minor Changes

  • 8012ac46a0: BREAKING: Stronger typing in PermissionPolicy 🎉.

    Previously, it was entirely the responsibility of the PermissionPolicy author to only return CONDITIONAL decisions for permissions that are associated with a resource, and to return the correct kind of PermissionCondition instances inside the decision. Now, the policy authoring helpers provided in this package now ensure that the decision and permission match.

    For policy authors: rename and adjust api of createConditionExports. Previously, the function returned a factory for creating conditional decisions named createPolicyDecision, which had a couple of drawbacks:

    1. The function always creates a conditional policy decision, but this was not reflected in the name.
    2. Conditional decisions should only ever be returned from PermissionPolicy#handle for resource permissions, but there was nothing in the API that encoded this constraint.

    This change addresses the drawbacks above by making the following changes for policy authors:

    • The createPolicyDecision method has been renamed to createConditionalDecision.
    • Along with conditions, the method now accepts a permission, which must be a ResourcePermission. This is expected to be the handled permission in PermissionPolicy#handle, whose type must first be narrowed using methods like isPermission and isResourcePermission:
    typescript
    class TestPermissionPolicy implements PermissionPolicy {
      async handle(
        request: PolicyQuery<Permission>,
        _user?: BackstageIdentityResponse,
      ): Promise<PolicyDecision> {
        if (
          // Narrow type of `request.permission` to `ResourcePermission<'catalog-entity'>
          isResourcePermission(request.permission, RESOURCE_TYPE_CATALOG_ENTITY)
        ) {
          return createCatalogConditionalDecision(
            request.permission,
            catalogConditions.isEntityOwner(
              _user?.identity.ownershipEntityRefs ?? [],
            ),
          );
        }
    
        return {
          result: AuthorizeResult.ALLOW,
        };
    

    BREAKING: when creating PermissionRules, provide a resourceType.

    diff
    export const isEntityOwner = createCatalogPermissionRule({
      name: 'IS_ENTITY_OWNER',
      description: 'Allow entities owned by the current user',
    +  resourceType: RESOURCE_TYPE_CATALOG_ENTITY,
      apply: (resource: Entity, claims: string[]) => {
        if (!resource.relations) {
          return false;
        }
    
        return resource.relations
          .filter(relation => relation.type === RELATION_OWNED_BY)
          .some(relation => claims.includes(relation.targetRef));
      },
      toQuery: (claims: string[]) => ({
        key: 'relations.ownedBy',
        values: claims,
      }),
    });
    
  • c98d271466: BREAKING:

    • Rename PolicyAuthorizeQuery to PolicyQuery
    • Remove PolicyDecision, DefinitivePolicyDecision, and ConditionalPolicyDecision. These types are now exported from @backstage/plugin-permission-common

Patch Changes

0.5.6-next.0

Patch Changes

0.5.5

Patch Changes

0.5.4

Patch Changes

0.5.4-next.0

Patch Changes

0.5.3

Patch Changes

0.5.2

Patch Changes

  • 0816f8237a: Improved error message shown when permissions are enabled without backend-to-backend authentication.
  • Updated dependencies

0.5.1

Patch Changes

0.5.0

Minor Changes

  • 8c646beb24: BREAKING PermissionCriteria now requires at least one condition in anyOf and allOf arrays. This addresses some ambiguous behavior outlined in #9280.

Patch Changes

0.4.3

Patch Changes

0.4.3-next.0

Patch Changes

0.4.2

Patch Changes

0.4.2-next.1

Patch Changes

0.4.2-next.0

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

  • 0ae4f4cc82: BREAKING: PolicyAuthorizeRequest type has been renamed to PolicyAuthorizeQuery. BREAKING: Update to use renamed request and response types from @backstage/plugin-permission-common.

Patch Changes

0.4.0-next.0

Minor Changes

  • 0ae4f4cc82: BREAKING: PolicyAuthorizeRequest type has been renamed to PolicyAuthorizeQuery. BREAKING: Update to use renamed request and response types from @backstage/plugin-permission-common.

Patch Changes

0.3.0

Minor Changes

  • 419ca637c0: Optimizations to the integration between the permission backend and plugin-backends using createPermissionIntegrationRouter:

    • The permission backend already supported batched requests to authorize, but would make calls to plugin backend to apply conditions serially. Now, after applying the policy for each authorization request, the permission backend makes a single batched /apply-conditions request to each plugin backend referenced in policy decisions.
    • The getResource method accepted by createPermissionIntegrationRouter has been replaced with getResources, to allow consumers to make batch requests to upstream data stores. When /apply-conditions is called with a batch of requests, all required resources are requested in a single invocation of getResources.

    Plugin owners consuming createPermissionIntegrationRouter should replace the getResource method in the options with a getResources method, accepting an array of resourceRefs, and returning an array of the corresponding resources.

Patch Changes

0.2.3

Patch Changes

0.2.2

Patch Changes

  • 2f8a9b665f: Add ServerPermissionClient, which implements PermissionAuthorizer from @backstage/plugin-permission-common. This implementation skips authorization entirely when the supplied token is a valid backend-to-backend token, thereby allowing backend-to-backend systems to communicate without authorization.

    The ServerPermissionClient should always be used over the standard PermissionClient in plugin backends.

  • Updated dependencies

0.2.1

Patch Changes

  • dcd1a0c3f4: Minor improvement to the API reports, by not unpacking arguments directly

  • a036b65c2f: Updated to use the new BackstageIdentityResponse type from @backstage/plugin-auth-backend.

    The BackstageIdentityResponse type is backwards compatible with the BackstageIdentity, and provides an additional identity field with the claims of the user.

  • Updated dependencies

0.2.0

Minor Changes

  • e7851efa9e: Rename and adjust permission policy return type to reduce nesting
  • 450ca92330: Change route used for integration between the authorization framework and other plugin backends to use the /.well-known prefix.

Patch Changes

0.1.0

Minor Changes

  • 44b46644d9: New package containing common permission and authorization utilities for backend plugins. For more information, see the authorization PRFC.

Patch Changes

@backstage/[email protected]

Minor Changes

  • feef8d9: Added support for configuring the default search type in the search page via the search.defaultType option in app-config.yaml. This applies to both the legacy and new frontend systems. If not set, the default is empty, which means searching for "all" types.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 583bd3a: Added elasticsearchAuthExtensionPoint to enable dynamic authentication mechanisms such as bearer tokens with automatic rotation.

Patch Changes

  • 7021165: Fixed bulk indexing to refresh only the target index instead of all indexes, improving performance in multi-index deployments.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 5e3ef57: Added support for the new peerModules metadata field in package.json. This field allows plugin packages to declare modules that should be installed alongside them for cross-plugin integrations. The field is validated by backstage-cli repo fix --publish.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 5e3ef57: Added support for the new peerModules metadata field in package.json. This field allows plugin packages to declare modules that should be installed alongside them for cross-plugin integrations. The field is validated by backstage-cli repo fix --publish.

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • Bumped create-app version.

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 22864b7: Added an apis option to createExtensionTester, renderInTestApp, and renderTestApp to override APIs when testing extensions. Use the mockApis helpers to create mock implementations:

    typescript
    import { identityApiRef } from '@backstage/frontend-plugin-api';
    import { mockApis } from '@backstage/frontend-test-utils';
    
    // Override APIs in createExtensionTester
    const tester = createExtensionTester(myExtension, {
      apis: [
        [
          identityApiRef,
          mockApis.identity({ userEntityRef: 'user:default/guest' }),
        ],
      ],
    });
    
    // Override APIs in renderInTestApp
    renderInTestApp(<MyComponent />, {
      apis: [
        [
          identityApiRef,
          mockApis.identity({ userEntityRef: 'user:default/guest' }),
        ],
      ],
    });
    
    // Override APIs in renderTestApp
    renderTestApp({
      extensions: [myExtension],
      apis: [
        [
          identityApiRef,
          mockApis.identity({ userEntityRef: 'user:default/guest' }),
        ],
      ],
    });
    
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 1c52dcc: add square shape

@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

  • ce3639c: Add PersistentVolume and PersistentVolumeClaims Rendering

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • a88c437: Updated MUI to BUI theme converter to align with latest token changes

    Changes:

    • Removed generation of deprecated tokens: --bui-fg-link, --bui-fg-link-hover, --bui-fg-tint, --bui-fg-tint-disabled, --bui-bg-tint and all its variants
    • Added generation of new info status tokens: --bui-fg-info, --bui-fg-info-on-bg, --bui-bg-info, --bui-border-info
    • Updated status color mapping to generate both standalone and -on-bg variants for danger, warning, success, and info
    • Status colors now use .main for standalone variants and .dark for -on-bg variants, providing better visual hierarchy

    The converter now generates tokens that match the updated BUI design system structure, with clear distinction between status colors for standalone use vs. use on colored backgrounds.

  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 5e3ef57: Added peerModules metadata declaring recommended modules for cross-plugin integrations.
  • 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/plugin-scaffolder-backend-module-confluence-to-markdown@0.3.18-next.1

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

  • 32c51c0: Added new gitlab:user:info scaffolder action that retrieves information about a GitLab user. The action can fetch either the current authenticated user or a specific user by ID.
  • 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

  • 2ee354a: Return numberOfResults count with search query responses
  • 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

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes