Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@backstage/integration-react

backstage361.4kApache-2.01.2.7TypeScript support: included

Frontend package for managing integrations towards external systems

readme

headline

Backstage

English | 한국어 | 中文版 | Français

License CNCF Status Discord Code style Codecov OpenSSF Best Practices OpenSSF Scorecard

What is Backstage?

Backstage is an open source framework for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly without compromising autonomy.

Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.

software-catalog

Out of the box, Backstage includes:

  • Backstage Software Catalog for managing all your software such as microservices, libraries, data pipelines, websites, and ML models
  • Backstage Software Templates for quickly spinning up new projects and standardizing your tooling with your organization’s best practices
  • Backstage TechDocs for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach
  • Plus, a growing ecosystem of open source plugins that further expand Backstage’s customizability and functionality

Backstage was created by Spotify but is now hosted by the Cloud Native Computing Foundation (CNCF) as an Incubation level project. For more information, see the announcement.

Project roadmap

For information about the detailed project roadmap including delivered milestones, see the Roadmap.

Getting Started

To start using Backstage, see the Getting Started documentation.

Documentation

The documentation of Backstage includes:

Community

To engage with our community, you can use the following resources:

Governance

See the GOVERNANCE.md document in the backstage/community repository.

License

Copyright 2020-2025 © The Backstage Authors. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: https://www.linuxfoundation.org/trademark-usage

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Security

Please report sensitive security issues using Spotify's bug-bounty program rather than GitHub.

For further details, see our complete security release process.

changelog

@backstage/integration-react

1.2.7

Patch Changes

1.2.7-next.3

Patch Changes

1.2.7-next.2

Patch Changes

1.2.7-next.1

Patch Changes

1.2.7-next.0

Patch Changes

1.2.6

Patch Changes

1.2.6-next.1

Patch Changes

1.2.6-next.0

Patch Changes

1.2.5

Patch Changes

1.2.5-next.0

Patch Changes

1.2.4

Patch Changes

1.2.4-next.0

Patch Changes

1.2.3

Patch Changes

1.2.3-next.0

Patch Changes

1.2.2

Patch Changes

1.2.2-next.1

Patch Changes

1.2.2-next.0

Patch Changes

1.2.1

Patch Changes

1.2.0

Minor Changes

  • a11495a: Added new ScmAuth method forBitbucketServer that uses correct OAuth scopes by default. Also updated forBitbucket method to allow overriding the default OAuth scopes.

Patch Changes

1.2.0-next.2

Patch Changes

1.2.0-next.1

Minor Changes

  • a11495a: Added new ScmAuth method forBitbucketServer that uses correct OAuth scopes by default. Also updated forBitbucket method to allow overriding the default OAuth scopes.

Patch Changes

1.1.32-next.0

Patch Changes

1.1.31

Patch Changes

1.1.31-next.0

Patch Changes

1.1.30

Patch Changes

1.1.30-next.0

Patch Changes

1.1.29

Patch Changes

1.1.29-next.0

Patch Changes

1.1.28

Patch Changes

1.1.28-next.1

Patch Changes

1.1.28-next.0

Patch Changes

1.1.27

Patch Changes

1.1.27-next.0

Patch Changes

1.1.26

Patch Changes

1.1.26-next.0

Patch Changes

1.1.25

Patch Changes

1.1.25-next.2

Patch Changes

1.1.25-next.1

Patch Changes

1.1.25-next.0

Patch Changes

1.1.24

Patch Changes

1.1.24-next.2

Patch Changes

1.1.24-next.1

Patch Changes

1.1.24-next.0

Patch Changes

1.1.23

Patch Changes

1.1.23-next.0

Patch Changes

1.1.22

Patch Changes

1.1.22-next.1

Patch Changes

1.1.22-next.0

Patch Changes

1.1.21

Patch Changes

1.1.21-next.1

Patch Changes

1.1.21-next.0

Patch Changes

1.1.20

Patch Changes

1.1.20-next.2

Patch Changes

1.1.20-next.1

Patch Changes

1.1.20-next.0

Patch Changes

1.1.19

Patch Changes

1.1.19-next.3

Patch Changes

1.1.19-next.2

Patch Changes

1.1.19-next.1

Patch Changes

1.1.18-next.0

Patch Changes

1.1.16

Patch Changes

1.1.16-next.1

Patch Changes

1.1.16-next.0

Patch Changes

1.1.15

Patch Changes

1.1.15-next.2

Patch Changes

1.1.15-next.1

Patch Changes

1.1.15-next.0

Patch Changes

1.1.14

Patch Changes

1.1.14-next.3

Patch Changes

1.1.14-next.2

Patch Changes

1.1.14-next.1

Patch Changes

1.1.14-next.0

Patch Changes

1.1.13

Patch Changes

1.1.13-next.2

Patch Changes

1.1.13-next.1

Patch Changes

1.1.13-next.0

Patch Changes

1.1.12

Patch Changes

1.1.12-next.3

Patch Changes

1.1.12-next.2

Patch Changes

1.1.12-next.1

Patch Changes

1.1.12-next.0

Patch Changes

1.1.11

Patch Changes

1.1.11-next.2

Patch Changes

1.1.11-next.1

Patch Changes

1.1.11-next.0

Patch Changes

1.1.10

Patch Changes

1.1.10-next.1

Patch Changes

1.1.10-next.0

Patch Changes

1.1.9

Patch Changes

1.1.9-next.2

Patch Changes

1.1.9-next.1

Patch Changes

1.1.9-next.0

Patch Changes

1.1.8

Patch Changes

1.1.7

Patch Changes

1.1.7-next.4

Patch Changes

1.1.7-next.3

Patch Changes

1.1.7-next.2

Patch Changes

1.1.7-next.1

Patch Changes

1.1.7-next.0

Patch Changes

1.1.6

Patch Changes

1.1.6-next.1

Patch Changes

1.1.6-next.0

Patch Changes

1.1.5

Patch Changes

1.1.5-next.2

Patch Changes

1.1.5-next.1

Patch Changes

1.1.5-next.0

Patch Changes

1.1.4

Patch Changes

1.1.4-next.2

Patch Changes

1.1.4-next.1

Patch Changes

1.1.4-next.0

Patch Changes

1.1.3

Patch Changes

1.1.3-next.1

Patch Changes

1.1.3-next.0

Patch Changes

1.1.2

Patch Changes

1.1.2-next.3

Patch Changes

1.1.2-next.2

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

  • 1b4e1e2306: Split bitbucket integration into bitbucketCloud and bitbucketServer (backwards compatible).

    In order to migrate to the new integration configs, move your configs from integrations.bitbucket to integrations.bitbucketCloud or integrations.bitbucketServer.

    Migration example:

    Before:

    integrations:
      bitbucket:
        - host: bitbucket.org
          username: bitbucket_user
          appPassword: app-password
        - host: bitbucket-server.company.com
          token: my-token

    After:

    integrations:
      bitbucketCloud:
        - username: bitbucket_user
          appPassword: app-password
      bitbucketServer:
        - host: bitbucket-server.company.com
          token: my-token

Patch Changes

1.1.0-next.2

Patch Changes

1.1.0-next.1

Patch Changes

1.1.0-next.0

Minor Changes

  • 1b4e1e2306: Split bitbucket integration into bitbucketCloud and bitbucketServer (backwards compatible).

    In order to migrate to the new integration configs, move your configs from integrations.bitbucket to integrations.bitbucketCloud or integrations.bitbucketServer.

    Migration example:

    Before:

    integrations:
      bitbucket:
        - host: bitbucket.org
          username: bitbucket_user
          appPassword: app-password
        - host: bitbucket-server.company.com
          token: my-token

    After:

    integrations:
      bitbucketCloud:
        - username: bitbucket_user
          appPassword: app-password
      bitbucketServer:
        - host: bitbucket-server.company.com
          token: my-token

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

  • 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.1.25

Patch Changes

0.1.25-next.0

Patch Changes

0.1.24

Patch Changes

0.1.23

Patch Changes

0.1.22

Patch Changes

0.1.21

Patch Changes

0.1.21-next.0

Patch Changes

0.1.20

Patch Changes

  • cee44ad289: Added the ability to collect users oauth token from the RepoUrlPicker for use in the template manifest
  • Updated dependencies

0.1.20-next.0

Patch Changes

0.1.19

Patch Changes

0.1.19-next.0

Patch Changes

0.1.18

Patch Changes

0.1.17

Patch Changes

0.1.16

Patch Changes

0.1.15

Patch Changes

0.1.14

Patch Changes

0.1.13

Patch Changes

0.1.12

Patch Changes

0.1.11

Patch Changes

  • 18148f23da: Added ScmAuthApi along with the implementation ScmAuth. The ScmAuthApi provides methods for client-side authentication towards multiple different source code management services simultaneously.

    When requesting credentials you supply a URL along with the same options as the other OAuthApis, and optionally a request for additional high-level scopes.

    For example like this:

    const { token } = await scmAuthApi.getCredentials({
      url: 'https://ghe.example.com/backstage/backstage',
      additionalScope: {
        repoWrite: true,
      },
    });

    The instantiation of the API can either be done with a default factory that adds support for the public providers (github.com, gitlab.com, etc.):

    // in packages/app/apis.ts
    ScmAuth.createDefaultApiFactory();

    Or with a more custom setup that can add support for additional providers, for example like this:

    createApiFactory({
      api: scmAuthApiRef,
      deps: {
        gheAuthApi: gheAuthApiRef,
        githubAuthApi: githubAuthApiRef,
      },
      factory: ({ githubAuthApi, gheAuthApi }) =>
        ScmAuth.merge(
          ScmAuth.forGithub(githubAuthApi),
          ScmAuth.forGithub(gheAuthApi, {
            host: 'ghe.example.com',
          }),
        ),
    });

    The additional gheAuthApiRef utility API can be defined either inside the app itself if it's only used for this purpose, or inside an internal common package for APIs, such as @internal/apis:

    const gheAuthApiRef: ApiRef<OAuthApi & ProfileInfoApi & SessionApi> =
      createApiRef({
        id: 'internal.auth.ghe',
      });

    And then implemented using the GithubAuth class from @backstage/core-app-api:

    createApiFactory({
      api: gheAuthApiRef,
      deps: {
        discoveryApi: discoveryApiRef,
        oauthRequestApi: oauthRequestApiRef,
        configApi: configApiRef,
      },
      factory: ({ discoveryApi, oauthRequestApi, configApi }) =>
        GithubAuth.create({
          provider: {
            id: 'ghe',
            icon: ...,
            title: 'GHE'
          },
          discoveryApi,
          oauthRequestApi,
          defaultScopes: ['read:user'],
          environment: configApi.getOptionalString('auth.environment'),
        }),
    })

    Finally you also need to add and configure another GitHub provider to the auth-backend using the provider ID ghe:

    // Add the following options to `createRouter` in packages/backend/src/plugins/auth.ts
    providerFactories: {
      ghe: createGithubProvider(),
    },

    Other providers follow the same steps, but you will want to use the appropriate auth API implementation in the frontend, such as for example GitlabAuth.

  • Updated dependencies

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

  • 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.4

Patch Changes

0.1.3

Patch Changes

  • f4e3ac5ce: Move ScmIntegrationIcon from @backstage/plugin-catalog to @backstage/integration-react and make it customizable using app.getSystemIcon().
  • Updated dependencies [eda9dbd5f]

0.1.2

Patch Changes

  • 062bbf90f: chore: bump @testing-library/user-event from 12.8.3 to 13.1.8
  • 675a569a9: chore: bump react-use dependency in all packages
  • Updated dependencies [062bbf90f]
  • Updated dependencies [889d89b6e]
  • Updated dependencies [3f988cb63]
  • Updated dependencies [675a569a9]