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

Package detail

@backstage/plugin-catalog

backstage205.8kApache-2.01.31.1TypeScript support: included

The Backstage plugin for browsing the Backstage catalog

backstage

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/plugin-catalog

1.31.1

Patch Changes

1.31.1-next.2

Patch Changes

1.31.1-next.1

Patch Changes

1.31.1-next.0

Patch Changes

1.31.0

Minor Changes

  • 406acb6: Add support to customize the about card icon links via EntityIconLinkBlueprint and provide a default catalog view catalog source, launch scaffolder template and read techdocs docs icon links extensions.

    BREAKING ALPHA

    The Scaffolder launch template and TechDocs read documentation icons have been extracted from the default Catalog about card links and are now provided respectively by the Scaffolder and TechDocs plugins in the new frontend system. It means that they will not be available unless you install the TechDocs and Scaffolder plugins. Also If you are using translation for these icon link titles other than the default, you should now translate them using the scaffolder translation reference or the TechDocs translation reference (the translation keys are still the same, aboutCard.viewTechdocs and aboutCard.launchTemplate).

  • ec7b35d: Introduced backstage.io/techdocs-entity-path annotation which allows deep linking into another entities TechDocs in conjunction with backstage.io/techdocs-entity.

Patch Changes

1.31.0-next.2

Minor Changes

  • 406acb6: Add support to customize the about card icon links via EntityIconLinkBlueprint and provide a default catalog view catalog source, launch scaffolder template and read techdocs docs icon links extensions.

    BREAKING ALPHA

    The Scaffolder launch template and TechDocs read documentation icons have been extracted from the default Catalog about card links and are now provided respectively by the Scaffolder and TechDocs plugins in the new frontend system. It means that they will not be available unless you install the TechDocs and Scaffolder plugins. Also If you are using translation for these icon link titles other than the default, you should now translate them using the scaffolder translation reference or the TechDocs translation reference (the translation keys are still the same, aboutCard.viewTechdocs and aboutCard.launchTemplate).

Patch Changes

1.31.0-next.1

Patch Changes

1.31.0-next.0

Minor Changes

  • ec7b35d: Introduced backstage.io/techdocs-entity-path annotation which allows deep linking into another entities TechDocs in conjunction with backstage.io/techdocs-entity.

Patch Changes

1.30.0

Minor Changes

  • 970cb48: Show the pagination text for the offset-paginated catalog table, and remove the pagination bar from the top of the CatalogTable when pagination is enabled.

Patch Changes

1.30.0-next.3

Minor Changes

  • 970cb48: Show the pagination text for the offset-paginated catalog table, and remove the pagination bar from the top of the CatalogTable when pagination is enabled.

Patch Changes

1.29.1-next.2

Patch Changes

1.29.1-next.1

Patch Changes

1.29.1-next.0

Patch Changes

1.29.0

Minor Changes

  • 9454ef9: Added support of filtering based on system columns in catalog table
  • 61d350f: BREAKING ALPHA: CatalogFilterBlueprint, used in the new frontend system, is now exported under plugin-catalog-react instead of plugin-catalog.

    + import { CatalogFilterBlueprint } from '@backstage/plugin-catalog-react/alpha';
    - import { CatalogFilterBlueprint } from '@backstage/plugin-catalog/alpha';
  • 09afd67: Adds EntityContextMenuItemBlueprint to enable extending the entity page's context menu with user defined items.

    For example:

    import { EntityContextMenuItemBlueprint } from '@backstage/plugin-catalog-react/alpha';
    
    const myCustomHref = EntityContextMenuItemBlueprint.make({
      name: 'test-href',
      params: {
        icon: <span>Example Icon</span>,
        useProps: () => ({
          title: 'Example Href',
          href: '/example-path',
          disabled: false,
          component: 'a',
        }),
      },
    });
    
    const myCustomOnClick = EntityContextMenuItemBlueprint.make({
      name: 'test-click',
      params: {
        icon: <span>Test Icon</span>,
        useProps: () => ({
          title: 'Example onClick',
          onClick: () => window.alert('Hello world!'),
          disabled: false,
        }),
      },
    });

Patch Changes

1.29.0-next.2

Minor Changes

  • 61d350f: BREAKING ALPHA: CatalogFilterBlueprint, used in the new frontend system, is now exported under plugin-catalog-react instead of plugin-catalog.

    + import { CatalogFilterBlueprint } from '@backstage/plugin-catalog-react/alpha';
    - import { CatalogFilterBlueprint } from '@backstage/plugin-catalog/alpha';
  • 09afd67: Adds EntityContextMenuItemBlueprint to enable extending the entity page's context menu with user defined items.

    For example:

    import { EntityContextMenuItemBlueprint } from '@backstage/plugin-catalog-react/alpha';
    
    const myCustomHref = EntityContextMenuItemBlueprint.make({
      name: 'test-href',
      params: {
        icon: <span>Example Icon</span>,
        useProps: () => ({
          title: 'Example Href',
          href: '/example-path',
          disabled: false,
          component: 'a',
        }),
      },
    });
    
    const myCustomOnClick = EntityContextMenuItemBlueprint.make({
      name: 'test-click',
      params: {
        icon: <span>Test Icon</span>,
        useProps: () => ({
          title: 'Example onClick',
          onClick: () => window.alert('Hello world!'),
          disabled: false,
        }),
      },
    });

Patch Changes

1.29.0-next.1

Patch Changes

1.29.0-next.0

Minor Changes

  • 9454ef9: Added support of filtering based on system columns in catalog table

Patch Changes

1.28.0

Minor Changes

  • 247a40b: Now a custom entity page header can be passed as input to the default entity page.
  • a3d93ca: The default layout of the entity page can now optionally be customized with 3 card types: info, peek and full.

    • Cards of type info are rendered in a fixed area on the right;
    • Cards of type peek are rendered on top of the main content area;
    • Cards of type full and cards with undefined type are rendered as they were before, in the main content area, below the peek cards.

    If you want to keep the layout as it was before, you don't need to do anything. But if you want to experiment with the card types and see how they render, here is an example setting the about card to be rendered as an info card:

    app:
      extensions:
        # Entity page cards
    +   - entity-card:catalog/about:
    +       config:
    +         type: info # or peek or full
  • 93533bd: The order in which group tabs appear on the entity page has been changed.

    Before

    Previously, entity contents determined the order in which groups were rendered, so a group was rendered as soon as its first entity content was detected.

    After

    Groups are now rendered first by default based on their order in the app-config.yaml file:

    app:
      extensions:
        - page:catalog/entity:
    +       config:
    +         groups:
    +           # this will be the first tab of the default entity page
    +           - deployment:
    +               title: Deployment
    +           # this will be the second tab of the default entiy page
    +           - documentation:
    +               title: Documentation

    If you wish to place a normal tab before a group, you must add the tab to a group and place the group in the order you wish it to appear on the entity page (groups that contains only one tab are rendered as normal tabs).

    app:
      extensions:
        - page:catalog/entity:
            config:
              groups:
    +            # Example placing the overview tab first
    +           - overview:
    +               title: Overview
                - deployment:
                    title: Deployment
                # this will be the second tab of the default entiy page
                - documentation:
                    title: Documentation
        - entity-content:catalog/overview:
    +       config:
    +          group: 'overview'
  • 06d1226: Allow providing kind parameters to replace the default Component kind for SubComponents card

Patch Changes

1.28.0-next.2

Minor Changes

  • 247a40b: Now a custom entity page header can be passed as input to the default entity page.
  • 93533bd: The order in which group tabs appear on the entity page has been changed.

    Before

    Previously, entity contents determined the order in which groups were rendered, so a group was rendered as soon as its first entity content was detected.

    After

    Groups are now rendered first by default based on their order in the app-config.yaml file:

    app:
      extensions:
        - page:catalog/entity:
    +       config:
    +         groups:
    +           # this will be the first tab of the default entity page
    +           - deployment:
    +               title: Deployment
    +           # this will be the second tab of the default entiy page
    +           - documentation:
    +               title: Documentation

    If you wish to place a normal tab before a group, you must add the tab to a group and place the group in the order you wish it to appear on the entity page (groups that contains only one tab are rendered as normal tabs).

    app:
      extensions:
        - page:catalog/entity:
            config:
              groups:
    +            # Example placing the overview tab first
    +           - overview:
    +               title: Overview
                - deployment:
                    title: Deployment
                # this will be the second tab of the default entiy page
                - documentation:
                    title: Documentation
        - entity-content:catalog/overview:
    +       config:
    +          group: 'overview'

Patch Changes

1.28.0-next.1

Minor Changes

  • 06d1226: Allow providing kind parameters to replace the default Component kind for SubComponents card

Patch Changes

1.28.0-next.0

Minor Changes

  • a3d93ca: The Overview entity content now supports custom cards grid layouts.

Patch Changes

1.27.0

Minor Changes

  • b07756e: The Entity Page now retains the visibility of the Inspect Dialog after a reload. This allows sharing the URL with the dialog open.

Patch Changes

1.27.0-next.3

Patch Changes

1.27.0-next.2

Minor Changes

  • b07756e: The Entity Page now retains the visibility of the Inspect Dialog after a reload. This allows sharing the URL with the dialog open.

Patch Changes

1.26.2-next.1

Patch Changes

1.26.2-next.0

Patch Changes

1.26.1

Patch Changes

1.26.1-next.1

Patch Changes

1.26.1-next.0

Patch Changes

1.26.0

Minor Changes

  • 25beb82: Adds an optional columns attribute to HasSubdomainsCardProps and changes its default columns
  • 39f1abc: Consistent title behaviour across CatalogTable, CursorPaginatedCatalogTable, and OffsetPaginatedCatalogTable.
  • 1ffb9f3: Update CatalogTable title to use properly capitalized Kind facets (e.g. 'Component' instead of 'component')

Patch Changes

1.26.0-next.2

Minor Changes

  • 25beb82: Adds an optional columns attribute to HasSubdomainsCardProps and changes its default columns
  • 39f1abc: Consistent title behaviour across CatalogTable, CursorPaginatedCatalogTable, and OffsetPaginatedCatalogTable.

Patch Changes

1.25.2-next.1

Patch Changes

1.25.2-next.0

Patch Changes

1.25.0

Minor Changes

  • 50df3c8: - Updated EntityLayout component to implement breadcrumb navigation based on the entity relations.

    • Added parentEntityRelations prop to EntityLayoutProps to specify relation types for parent entities.
  • 79e9631: Allow OffsetPaginatedCatalogTable to configure Table options and CursorPaginatedCatalogTable to configure paginationPosition.

Patch Changes

1.25.0-next.3

Minor Changes

  • 50df3c8: - Updated EntityLayout component to implement breadcrumb navigation based on the entity relations.

    • Added parentEntityRelations prop to EntityLayoutProps to specify relation types for parent entities.
  • 79e9631: Allow OffsetPaginatedCatalogTable to configure Table options and CursorPaginatedCatalogTable to configure paginationPosition.

Patch Changes

1.24.1-next.2

Patch Changes

1.24.1-next.1

Patch Changes

1.24.1-next.0

Patch Changes

1.24.0

Minor Changes

  • 71f9f0c: Updated default columns for location entities to remove description and tags from the catalog table view.
  • cec8e8c: Adding negation keyword for entity filtering

Patch Changes

1.24.0-next.2

Minor Changes

  • cec8e8c: Adding negation keyword for entity filtering

Patch Changes

1.24.0-next.1

Patch Changes

1.24.0-next.0

Minor Changes

  • 71f9f0c: Updated default columns for location entities to remove description and tags from the catalog table view.

Patch Changes

1.23.0

Minor Changes

  • 78475c3: Allow offset mode paging in entity list provider

Patch Changes

1.23.0-next.2

Minor Changes

  • 78475c3: Allow offset mode paging in entity list provider

Patch Changes

1.22.1-next.1

Patch Changes

1.22.1-next.0

Patch Changes

1.22.0

Minor Changes

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

Patch Changes

1.22.0-next.3

Patch Changes

1.22.0-next.2

Minor Changes

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

Patch Changes

1.21.2-next.1

Patch Changes

1.21.2-next.0

Patch Changes

1.21.1

Patch Changes

1.21.1-next.2

Patch Changes

1.21.1-next.1

Patch Changes

1.21.1-next.0

Patch Changes

1.21.0

Minor Changes

  • 863a800: Added the following default targets for external routes:

    • createComponent binds to the Scaffolder page.
    • viewTechDoc binds to the TechDocs entity documentation page.
    • createFromTemplate binds to the Scaffolder selected template page.

Patch Changes

1.21.0-next.3

Patch Changes

1.21.0-next.2

Minor Changes

  • 863a800: Added the following default targets for external routes:

    • createComponent binds to the Scaffolder page.
    • viewTechDoc binds to the TechDocs entity documentation page.
    • createFromTemplate binds to the Scaffolder selected template page.

Patch Changes

1.20.1-next.1

Patch Changes

1.20.1-next.0

Patch Changes

1.20.0

Minor Changes

  • 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context.

Patch Changes

1.20.0-next.2

Minor Changes

  • 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context.

Patch Changes

1.19.1-next.1

Patch Changes

1.19.1-next.0

Patch Changes

1.19.0

Minor Changes

  • 18c7f12: Add isApiType() to EntitySwitch routing functions.

Patch Changes

1.19.0-next.1

Patch Changes

1.19.0-next.0

Minor Changes

  • 18c7f12: Add isApiType() to EntitySwitch routing functions.

Patch Changes

1.18.2

Patch Changes

1.18.1

Patch Changes

1.18.0

Minor Changes

  • 72b8827: Adds a title to the PaginatedCatalogTable for better visibility on what you're viewing.

Patch Changes

1.18.0-next.2

Minor Changes

  • 72b8827: Adds a title to the PaginatedCatalogTable for better visibility on what you're viewing.

Patch Changes

1.17.1-next.1

Patch Changes

1.17.1-next.0

Patch Changes

1.17.0

Minor Changes

  • d208a93: Updated the paginated catalog table to support server side text filtering.
  • 1f8c2fa: Add entity warning components to the default entity overview page.
  • e541c0e: Exported CatalogTable.defaultColumnsFunc for defining the columns in <CatalogTable /> of some Kinds while using the default columns for the others.

Patch Changes

1.17.0-next.3

Minor Changes

  • 1f8c2fa: Add entity warning components to the default entity overview page.

Patch Changes

1.17.0-next.2

Patch Changes

1.17.0-next.1

Patch Changes

1.17.0-next.0

Minor Changes

  • e541c0e: Exported CatalogTable.defaultColumnsFunc for defining the columns in <CatalogTable /> of some Kinds while using the default columns for the others.

Patch Changes

1.16.1

Patch Changes

1.16.1-next.2

Patch Changes

1.16.1-next.1

Patch Changes

1.16.1-next.0

Patch Changes

1.16.0

Minor Changes

  • e223f22: Properly support both function- and string-form visibility filter expressions in the new extensions exported via /alpha.
  • b8e1eb2: The columns prop can be an array or a function that returns an array in order to override the default columns of the CatalogIndexPage.

Patch Changes

1.16.0-next.4

Patch Changes

1.16.0-next.3

Patch Changes

1.16.0-next.2

Minor Changes

  • e223f2264d: Properly support both function- and string-form visibility filter expressions in the new extensions exported via /alpha.

Patch Changes

1.16.0-next.1

Patch Changes

1.16.0-next.0

Minor Changes

  • b8e1eb2c0f: The columns prop can be an array or a function that returns an array in order to override the default columns of the CatalogIndexPage.

Patch Changes

1.15.0

Minor Changes

  • 1e5b7d993a: Added the DefaultEntityPresentationApi, which is an implementation of the EntityPresentationApi that @backstage/plugin-catalog-react exposes through its entityPresentationApiRef. This implementation is also by default made available automatically by the catalog plugin, unless you replace it with a custom one. It batch fetches and caches data from the catalog as needed for display, and is customizable by adopters to add their own rendering functions.

Patch Changes

1.15.0-next.2

Patch Changes

1.15.0-next.1

Patch Changes

1.15.0-next.0

Minor Changes

  • 1e5b7d993a: Added the DefaultEntityPresentationApi, which is an implementation of the EntityPresentationApi that @backstage/plugin-catalog-react exposes through its entityPresentationApiRef. This implementation is also by default made available automatically by the catalog plugin, unless you replace it with a custom one. It batch fetches and caches data from the catalog as needed for display, and is customizable by adopters to add their own rendering functions.

Patch Changes

1.14.0

Minor Changes

  • 28f1ab2e1a: The catalog plugin no longer implements the experimental reconfiguration API. The create button title can now instead be configured using the new experimental internationalization API, via the catalogTranslationRef exported at /alpha. For example:

    import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha';
    
    const app = createApp({
      __experimentalTranslations: {
        resources: [
          createTranslationMessages({
            ref: catalogTranslationRef,
            catalog_page_create_button_title: 'Create Software',
          }),
        ],
      },
    });
  • f3561a2935: include owner chip in catalog search result item

Patch Changes

1.14.0-next.2

Patch Changes

1.14.0-next.1

Patch Changes

1.14.0-next.0

Minor Changes

  • 28f1ab2e1a: The catalog plugin no longer implements the experimental reconfiguration API. The create button title can now instead be configured using the new experimental internationalization API, via the catalogTranslationRef exported at /alpha. For example:

    import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha';
    
    const app = createApp({
      __experimentalTranslations: {
        resources: [
          createTranslationMessages({
            ref: catalogTranslationRef,
            catalog_page_create_button_title: 'Create Software',
          }),
        ],
      },
    });
  • f3561a2935: include owner chip in catalog search result item

Patch Changes

1.13.0

Minor Changes

  • e44f45ac4515: This change allows a new annotation of backstage.io/techdocs-entity this ref allows you to reference another entity for its TechDocs. This allows you have a single TechDoc for all items in a system, for example you might have a frontend and a backend in the same repo. This would allow you to have TechDocs build under a System entity while referencing the system e.g.: backstage.io/techdocs-entity: system:default/example that will show the systems docs in both the TechDocs button and the TechDocs tab without needing to do duplicate builds and filling the TechDocs page with garbage.

Patch Changes

1.13.0-next.3

Patch Changes

1.13.0-next.2

Minor Changes

  • e44f45ac4515: This change allows a new annotation of backstage.io/techdocs-entity this ref allows you to reference another entity for its TechDocs. This allows you have a single TechDoc for all items in a system, for example you might have a frontend and a backend in the same repo. This would allow you to have TechDocs build under a System entity while referencing the system e.g.: backstage.io/techdocs-entity: system:default/example that will show the systems docs in both the TechDocs button and the TechDocs tab without needing to do duplicate builds and filling the TechDocs page with garbage.

Patch Changes

1.12.5-next.1

Patch Changes

1.12.4-next.0

Patch Changes

1.12.1

Patch Changes

1.12.1-next.2

Patch Changes

1.12.1-next.1

Patch Changes

1.12.1-next.0

Patch Changes

1.12.0

Minor Changes

  • eae0352d3864: Tables which use EntityTableProps now have an additional tableOptions prop which can be used to provide additional table options to these components.

Patch Changes

1.12.0-next.2

Minor Changes

  • eae0352d3864: Tables which use EntityTableProps now have an additional tableOptions prop which can be used to provide additional table options to these components.

Patch Changes

1.11.3-next.1

Patch Changes

1.11.3-next.0

Patch Changes

1.11.2

Patch Changes

1.11.2-next.3

Patch Changes

1.11.1-next.2

Patch Changes

1.11.1-next.1

Patch Changes

1.11.1-next.0

Patch Changes

1.11.0

Minor Changes

  • 2258dcae970: Added an entity namespace filter and column on the default catalog page.

    If you have a custom version of the catalog page, you can add this filter in your CatalogPage code:

    <CatalogFilterLayout>
      <CatalogFilterLayout.Filters>
        <EntityTypePicker />
        <UserListPicker initialFilter={initiallySelectedFilter} />
        <EntityTagPicker />
        /* if you want namespace picker */
        <EntityNamespacePicker />
      </CatalogFilterLayout.Filters>
      <CatalogFilterLayout.Content>
        <CatalogTable columns={columns} actions={actions} />
      </CatalogFilterLayout.Content>
    </CatalogFilterLayout>

    The namespace column can be added using createNamespaceColumn();. This is only needed if you customized the columns for CatalogTable.

Patch Changes

1.11.0-next.2

Patch Changes

1.11.0-next.1

Patch Changes

1.11.0-next.0

Minor Changes

  • 2258dcae970: Added an entity namespace filter and column on the default catalog page.

    If you have a custom version of the catalog page, you can add this filter in your CatalogPage code:

    <CatalogFilterLayout>
      <CatalogFilterLayout.Filters>
        <EntityTypePicker />
        <UserListPicker initialFilter={initiallySelectedFilter} />
        <EntityTagPicker />
        /* if you want namespace picker */
        <EntityNamespacePicker />
      </CatalogFilterLayout.Filters>
      <CatalogFilterLayout.Content>
        <CatalogTable columns={columns} actions={actions} />
      </CatalogFilterLayout.Content>
    </CatalogFilterLayout>

    The namespace column can be added using createNamespaceColumn();. This is only needed if you customized the columns for CatalogTable.

Patch Changes

1.10.0

Minor Changes

  • 4dbf3d3e4da: Added a new EntitySwitch isResourceType to allow different views depending on Resource type
  • fc6cab4eb48: Added isEntityWith condition helper for EntitySwitch case statements.

Patch Changes

1.10.0-next.3

Patch Changes

1.10.0-next.2

Patch Changes

1.10.0-next.1

Patch Changes

1.10.0-next.0

Minor Changes

  • 4dbf3d3e4da: Added a new EntitySwitch isResourceType to allow different views depending on Resource type
  • fc6cab4eb48: Added isEntityWith condition helper for EntitySwitch case statements.

Patch Changes

1.9.0

Minor Changes

  • 23cc40039c0: Allow EntitySwitch to render all cases that match the condition.

    This change introduces a new parameter for the EntitySwitch component renderMultipleMatches. In case the parameter value is all, the EntitySwitch will render all EntitySwitch.Case that contain if parameter, and it evaluates to true. In case none of the cases match, the default case will be rendered, if any.

    This means for example in the CI/CD page you can now do the following:

    <EntitySwitch renderMultipleMatches="all">
      <EntitySwitch.Case if={isJenkinsAvailable}>Jenkins</EntitySwitch.Case>
      <EntitySwitch.Case if={isCodebuildAvailable}>CodeBuild</EntitySwitch.Case>
      <EntitySwitch.Case>No CI/CD</EntitySwitch.Case>
    </EntitySwitch>

    This allows the component to have multiple CI/CD systems and all of those are rendered on the same page.

  • 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item

  • c9a9f3c834f: Add a columns prop to certain components that use the EntityTable for easier extensibility.

Patch Changes

1.9.0-next.2

Minor Changes

  • 23cc40039c0: allow entity switch to render all cases that match the condition

Patch Changes

1.9.0-next.1

Minor Changes

  • c9a9f3c834f: Add a columns prop to certain components that use the EntityTable for easier extensibility.

Patch Changes

1.9.0-next.0

Minor Changes

  • 3f75b7607c: Add ability to pass icon as function to have ability to customize it by search item

Patch Changes

1.8.0

Minor Changes

  • 0c1fc3986c: Added Markdown support in the AboutCard description section
  • 0eaa579f89: The CatalogSearchResultListItem component is now a search result extension. This means that when rendered as a child of components that render search extensions, the result, rank, and highlight properties are optional. See the documentation for more details.

Patch Changes

1.8.0-next.2

Patch Changes

1.8.0-next.1

Minor Changes

  • 0c1fc3986c: Added Markdown support in the AboutCard description section
  • 0eaa579f89: The CatalogSearchResultListItem component is now a search result extension. This means that when rendered as a child of components that render search extensions, the result, rank, and highlight properties are optional. See the documentation for more details.

Patch Changes

1.7.3-next.0

Patch Changes

1.7.2

Patch Changes

1.7.2-next.2

Patch Changes

1.7.2-next.1

Patch Changes

1.7.2-next.0

Patch Changes

1.7.1

Patch Changes

1.7.0

Minor Changes

  • 6ffa47bb0a: Fixes in kind selectors (now OwnershipCard works again). EntityKindPicker now accepts an optional allowedKinds prop, just like CatalogKindHeader.
  • 462c1d012e: Removed CatalogKindHeader from DefaultCatalogPage. Deprecated CatalogKindHeader in favour of EntityKindPicker.

Patch Changes

1.7.0-next.4

Patch Changes

1.7.0-next.3

Patch Changes

1.7.0-next.2

Minor Changes

  • 6ffa47bb0a: Fixes in kind selectors (now OwnershipCard works again). EntityKindPicker now accepts an optional allowedKinds prop, just like CatalogKindHeader.
  • 462c1d012e: Removed CatalogKindHeader from DefaultCatalogPage. Deprecated CatalogKindHeader in favour of EntityKindPicker.

Patch Changes

1.6.2-next.1

Patch Changes

1.6.2-next.0

Patch Changes

1.6.1

Patch Changes

1.6.1-next.1

Patch Changes

1.6.1-next.0

Patch Changes

1.6.0

Minor Changes

  • d558f41d3a: Added new column Label to CatalogTable.columns, this new column allows you make use of labels from metadata. For example: category and visibility are type of labels associated with API entity illustrated below.

    YAML code snippet for API entity

    apiVersion: backstage.io/v1alpha1
    kind: API
    metadata:
      name: sample-api
      description: API for sample
      links:
        - url: http://localhost:8080/swagger-ui.html
          title: Swagger UI
      tags:
        - http
      labels:
        category: legacy
        visibility: protected

    Consumers can customise columns to include label column and show in api-docs list

    const columns = [
      CatalogTable.columns.createNameColumn({ defaultKind: 'API' }),
      CatalogTable.columns.createLabelColumn('category', { title: 'Category' }),
      CatalogTable.columns.createLabelColumn('visibility', {
        title: 'Visibility',
        defaultValue: 'public',
      }),
    ];

Patch Changes

1.6.0-next.2

Patch Changes

1.6.0-next.1

Minor Changes

  • d558f41d3a: Added new column Label to CatalogTable.columns, this new column allows you make use of labels from metadata. For example: category and visibility are type of labels associated with API entity illustrated below.

    YAML code snippet for API entity

    apiVersion: backstage.io/v1alpha1
    kind: API
    metadata:
      name: sample-api
      description: API for sample
      links:
        - url: http://localhost:8080/swagger-ui.html
          title: Swagger UI
      tags:
        - http
      labels:
        category: legacy
        visibility: protected

    Consumers can customise columns to include label column and show in api-docs list

    const columns = [
      CatalogTable.columns.createNameColumn({ defaultKind: 'API' }),
      CatalogTable.columns.createLabelColumn('category', { title: 'Category' }),
      CatalogTable.columns.createLabelColumn('visibility', {
        title: 'Visibility',
        defaultValue: 'public',
      }),
    ];

Patch Changes

1.5.2-next.0

Patch Changes

1.5.1

Patch Changes

1.5.1-next.3

Patch Changes

1.5.1-next.2

Patch Changes

1.5.1-next.1

Patch Changes

1.5.1-next.0

Patch Changes

1.5.0

Minor Changes

  • 80da5162c7: Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button.

    You can modify it by doing:

    `typescript jsx import { catalogPlugin } from '@backstage/plugin-catalog';

    catalogPlugin.__experimentalReconfigure({ createButtonTitle: 'New', }); `

  • fe94398418: Allow changing the subtitle of the CatalogTable component

Patch Changes

1.5.0-next.2

Patch Changes

1.5.0-next.1

Minor Changes

  • fe94398418: Allow changing the subtitle of the CatalogTable component

Patch Changes

1.5.0-next.0

Minor Changes

  • 80da5162c7: Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button.

    You can modify it by doing:

    `typescript jsx import { catalogPlugin } from '@backstage/plugin-catalog';

    catalogPlugin.__experimentalReconfigure({ createButtonTitle: 'New', }); `

Patch Changes

1.4.0

Minor Changes

  • 97c46f2359: Add spec.targets (or spec.target) for Location entities at the CatalogTable.
  • cf288221d1: Add Location target(s) to AboutCard.
  • a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title.

Patch Changes

  • dcaf1cb418: Previously, the color of the Entity Context Menu (in the Entity Page Header) was hardcoded as white.

    This was an issue for themes that use a header with a white background. By default, the color of the icon is now theme.page.fontColor.

    It can now also be overridden in the theme, which is only necessary if the header title, subtitle and three-dots icon need to have different colors. For example:

    export function createThemeOverrides(theme: BackstageTheme): Overrides {
      return {
        PluginCatalogEntityContextMenu: {
          button: {
            color: 'blue',
          },
        },
        ...
      },
      ...
      }
  • f1dcc6f3c6: Use entity type predicates from catalog-model

  • 258057a4b9: Adding ability to customize the "unregister entity" menu item in the entity context menu on the entity page with options 'visible','hidden','disabled'.With this three new options, one can hide the "unregister entity" menu item from the list, disable or keep it enabled.

    The boolean input for "unregister entity" will be deprecated later in favour of the above three options.

  • 385389d23c: Updated to remove usage of the bursts object in the theme palette

  • be26d95141: Added new EntityProcessingStatusPicker that will filter for entities with orphans and/or errors.

    If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this:

    ...
    import {
      CatalogFilterLayout,
      EntityTypePicker,
      UserListPicker,
      EntityTagPicker
    + EntityProcessingStatusPicker,
    } from '@backstage/plugin-catalog-react';
    ...
    export const CustomCatalogPage = ({
      columns,
      actions,
      initiallySelectedFilter = 'owned',
    }: CatalogPageProps) => {
      return (
        ...
            <EntityListProvider>
              <CatalogFilterLayout>
                <CatalogFilterLayout.Filters>
                  <EntityKindPicker initialFilter="component" hidden />
                  <EntityTypePicker />
                  <UserListPicker initialFilter={initiallySelectedFilter} />
                  <EntityTagPicker />
    +             <EntityProcessingStatusPicker />
                <CatalogFilterLayout.Filters>
                <CatalogFilterLayout.Content>
                  <CatalogTable columns={columns} actions={actions} />
                </CatalogFilterLayout.Content>
              </CatalogFilterLayout>
            </EntityListProvider>
        ...
    };
  • Updated dependencies

1.4.0-next.3

Patch Changes

1.4.0-next.2

Minor Changes

  • a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title.

Patch Changes

  • 258057a4b9: Adding ability to customize the "unregister entity" menu item in the entity context menu on the entity page with options 'visible','hidden','disabled'.With this three new options, one can hide the "unregister entity" menu item from the list, disable or keep it enabled.

    The boolean input for "unregister entity" will be deprecated later in favour of the above three options.

  • 385389d23c: Updated to remove usage of the bursts object in the theme palette

  • be26d95141: Added new EntityProcessingStatusPicker that will filter for entities with orphans and/or errors.

    If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this:

    ...
    import {
      CatalogFilterLayout,
      EntityTypePicker,
      UserListPicker,
      EntityTagPicker
    + EntityProcessingStatusPicker,
    } from '@backstage/plugin-catalog-react';
    ...
    export const CustomCatalogPage = ({
      columns,
      actions,
      initiallySelectedFilter = 'owned',
    }: CatalogPageProps) => {
      return (
        ...
            <EntityListProvider>
              <CatalogFilterLayout>
                <CatalogFilterLayout.Filters>
                  <EntityKindPicker initialFilter="component" hidden />
                  <EntityTypePicker />
                  <UserListPicker initialFilter={initiallySelectedFilter} />
                  <EntityTagPicker />
    +             <EntityProcessingStatusPicker />
                <CatalogFilterLayout.Filters>
                <CatalogFilterLayout.Content>
                  <CatalogTable columns={columns} actions={actions} />
                </CatalogFilterLayout.Content>
              </CatalogFilterLayout>
            </EntityListProvider>
        ...
    };
  • Updated dependencies

1.3.1-next.1

Patch Changes

1.3.1-next.0

Patch Changes

1.3.0

Minor Changes

  • fe7614ea54: Add an optional icon to the Catalog and TechDocs search results

Patch Changes

1.2.1-next.1

Patch Changes

1.2.1-next.0

Patch Changes

1.2.0

Minor Changes

  • 4274844a8c: Use InfoCardVariants on custom cards variant attribute
  • ceca63d149: Added the prop NotFoundComponent to EntityLayout which can be used to include a custom component when an entity is not found in the catalog

Patch Changes

1.2.0-next.2

Patch Changes

1.2.0-next.1

Patch Changes

1.2.0-next.0

Minor Changes

  • 4274844a8c: Use InfoCardVariants on custom cards variant attribute
  • ceca63d149: Added the prop NotFoundComponent to EntityLayout which can be used to include a custom component when an entity is not found in the catalog

Patch Changes

1.1.0

Minor Changes

  • bdc61b4002: Expose 'initalFilter' through initialKind prop on Catalog Page.

Patch Changes

1.1.0-next.3

Patch Changes

1.1.0-next.2

Patch Changes

1.1.0-next.1

Minor Changes

  • bdc61b4002: Expose 'initalFilter' through initialKind prop on Catalog Page.

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.10.0

Minor Changes

  • 51856359bf: BREAKING: Removed the AboutCard component which has been replaced by EntityAboutCard.
  • 5ea9509e6a: BREAKING: Removed CatalogResultListItemProps and CatalogResultListItem, replaced by CatalogSearchResultListItemProps and CatalogSearchResultListItem.

Patch Changes

0.10.0-next.0

Minor Changes

  • 51856359bf: BREAKING: Removed the AboutCard component which has been replaced by EntityAboutCard.
  • 5ea9509e6a: BREAKING: Removed CatalogResultListItemProps and CatalogResultListItem, replaced by CatalogSearchResultListItemProps and CatalogSearchResultListItem.

Patch Changes

0.9.1

Patch Changes

  • 899f196af5: Use getEntityByRef instead of getEntityByName in the catalog client
  • f41a293231: - DEPRECATION: Deprecated formatEntityRefTitle in favor of the new humanizeEntityRef method instead. Please migrate to using the new method instead.
  • f590d1681b: Removed usage of deprecated favorite utility methods.
  • 44403296e7: Added the following deprecations to the catalog-react package:

    • DEPRECATION: useEntity will now warn if the entity has not yet been loaded, and will soon throw errors instead. If you're using the default implementation of EntityLayout and EntitySwitch then these components will ensure that there is an entity loaded before rendering children. If you're implementing your own EntityLayout or EntitySwitch or something that operates outside or adjacent to them, then use useAsyncEntity.

    • DEPRECATION: the loading, error and refresh properties that are returned from useEntity have been deprecated, and are available on useAsyncEntity instead.

  • da79aac2a6: - Replaced usage of the deprecated and now removed rootRoute and catalogRouteRefs from the catalog-react package

  • 36aa63022b: Use CompoundEntityRef instead of EntityName, and getCompoundEntityRef instead of getEntityName, from @backstage/catalog-model.
  • 8f0e8e039b: Removed usage of deprecated getEntityMetadataViewUrl and getEntityMetadataEditUrl helpers.
  • Updated dependencies

0.9.0

Minor Changes

  • e7b9c3d713: Removed columnFactories, which was accidentally exported on the previous release.
  • 2262fe19c9: BREAKING: Removed support for passing in an explicit entity prop to entity page extensions, which has been deprecated for a long time. This is only a breaking change at the TypeScript level, as this property was already ignored.
  • 3c4376e5e7: BREAKING: Removed the old plugin export, use catalogPlugin instead.

Patch Changes

0.8.0

Minor Changes

  • ae7edbea45: Removed CatalogClientWrapper as usage have been replaced by the fetchApiRef.
  • 37092662cb: BREAKING Completely removed the EntitySystemDiagramCard component which was deprecated in a previous release. Any remaining references to this component are now broken and should be replaced with EntityCatalogGraphCard, which can be imported from package @backstage/plugin-catalog-graph.
  • 7657eeae22: Removed deprecated Router and EntityPageLayout exports. Router is replaced by plugin extensions and EntityPageLayout is replaced by CatalogEntityPage.
  • 0a033351be: BREAKING:

    • The CatalogResultListItem result prop is now of the more narrow and correct type IndexableDocument, rather than any.
    • The individual table column factories (e.g. createNameColumn) are now no longer available directly, but only through CatalogTable.columns.

Patch Changes

0.7.12

Patch Changes

0.7.12-next.0

Patch Changes

0.7.11

Patch Changes

0.7.11-next.1

Patch Changes

0.7.11-next.0

Patch Changes

0.7.10

Patch Changes

  • aac316279f: Deprecated EntitySystemDiagramCard EntitySystemDiagramCard is replaced by EntityCatalogGraphCard which is imported from @backstage/plugin-catalog-graph. This component will be removed in an upcoming release
  • Updated dependencies

0.7.9

Patch Changes

  • 7ba416be78: @backstage/plugin-user-settings: Hide Header on mobile screens to improve the UI & give more space to the content. Furthermore, the "Pin Sidebar" setting is removed on mobile screens, as the mobile sidebar is always pinned to the bottom.

    Other plugins: Smaller style adjustments across plugins to improve the UI on mobile devices.

  • 51fbedc445: Migrated usage of deprecated IdentityApi methods.

  • c54c0d9d10: Add permission check to unregister entity button

    If the permissions framework is disabled, this change should have no effect. If the permission framework is enabled, the unregister entity button will be disabled for those who do not have access to the catalogEntityDeletePermission as specified in your permission policy.

  • 61ded2a863: Export the RelatedEntitiesCard component which is helpful in case you want to model custom relations between entities

  • 2b27e49eb1: Internal update to match status field changes in @backstage/catalog-model.
  • Updated dependencies

0.7.9-next.0

Patch Changes

0.7.8

Patch Changes

0.7.7

Patch Changes

0.7.6

Patch Changes

0.7.5

Patch Changes

  • 3fa31ec84a: Deprecated the CatalogClientWrapper class.

    The default implementation of catalogApiRef that this plugin exposes, is now powered by the new fetchApiRef. The default implementation of that API, in turn, has the ability to inject the user's Backstage token in requests in a similar manner to what the deprecated CatalogClientWrapper used to do. The latter has therefore been taken out of the default catalog API implementation.

    If you use a custom fetchApiRef implementation that does NOT issue tokens, or use a custom catalogApiRef implementation which does NOT use the default fetchApiRef, you can still for some time wrap your catalog API in this class to get back the old behavior:

    // Add this to your packages/app/src/plugins.ts if you want to get back the old
    // catalog client behavior:
    createApiFactory({
      api: catalogApiRef,
      deps: { discoveryApi: discoveryApiRef, identityApi: identityApiRef },
      factory: ({ discoveryApi, identityApi }) =>
        new CatalogClientWrapper({
          client: new CatalogClient({ discoveryApi }),
          identityApi,
        }),
    }),

    But do consider migrating to making use of the fetchApiRef as soon as convenient, since the wrapper class will be removed in a future release.

  • 7a4bd2ceac: Prefer using Link from @backstage/core-components rather than material-UI.

  • Updated dependencies

0.7.4

Patch Changes

0.7.3

Patch Changes

0.7.2

Patch Changes

0.7.1

Patch Changes

  • 82fbda923e: Introduce a new StarredEntitiesApi that is used in the useStarredEntities hook. The @backstage/plugin-catalog installs a default implementation that is backed by the StorageApi, but one can also override the starredEntitiesApiRef.

    This change also updates the storage format from a custom string to an entity reference and moves the location in the local storage. A migration will convert the previously starred entities to the location on the first load of Backstage.

  • 93a13dfb42: Support material-ui overrides in SystemDiagramCard and EmptityLinksEmptyState components

  • b03b9f19e0: added sorting in entity Name column by metadata.title if present
  • Updated dependencies

0.7.0

Minor Changes

  • bb0f6b8a0f: Updates the <EntitySwitch if={asyncMethod}/> to accept asynchronous if functions.

    Adds the new getEntityAncestors method to CatalogClient.

    Updates the <EntityProcessingErrorsPanel /> to make use of the ancestry endpoint to display errors for entities further up the ancestry tree. This makes it easier to discover issues where for example the origin location has been removed or malformed.

    hasCatalogProcessingErrors() is now changed to be asynchronous so any calls outside the already established entitySwitch need to be awaited.

Patch Changes

0.6.17

Patch Changes

0.6.16

Patch Changes

0.6.15

Patch Changes

0.6.14

Patch Changes

  • 10db3ce09: Update the AboutCard to properly support non-standard entity types and rework the defaults for the build-in kinds.

    This change also uses useElementFilter(...) instead of React.children.count(...) in AboutField to properly recognize whether children are available.

  • 7e5f14dda: This change hides pagination counter of search tables and group members list when results fit in one page

  • 3ed78fca3: Added the ability to switch entity kind on the catalog index page. This is a non-breaking change, but if you created a custom CatalogPage and wish to use this feature, make the modifications shown on #6895.
  • aaa1dd17b: Use a Link for the edit button on the AboutCard instead of doing window.open(...)
  • Updated dependencies

0.6.13

Patch Changes

  • 787bc0826: NOTE: The entity <AboutCard /> now uses an external route ref to link to TechDocs sites. This external route must now be bound in order for the "View TechDocs" link to continue working. See the create-app changelog for details.

0.6.12

Patch Changes

0.6.11

Patch Changes

0.6.10

Patch Changes

0.6.9

Patch Changes

  • 19d9995b6: Improve accessibility of core & catalog components by adjusting them with non-breaking 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
  • 224e54484: Added an EntityProcessingErrorsPanel component to show any errors that occurred when refreshing an entity from its source location.

    If upgrading, this should be added to your EntityPage in your Backstage application:

    // packages/app/src/components/catalog/EntityPage.tsx
    
    const overviewContent = (
    ...
              <EntityOrphanWarning />
            </Grid>
           </EntitySwitch.Case>
        </EntitySwitch>
    +   <EntitySwitch>
    +     <EntitySwitch.Case if={hasCatalogProcessingErrors}>
    +       <Grid item xs={12}>
    +         <EntityProcessingErrorsPanel />
    +       </Grid>
    +     </EntitySwitch.Case>
    +   </EntitySwitch>
    

    Additionally, WarningPanel now changes color based on the provided severity.

  • Updated dependencies

0.6.8

Patch Changes

  • 221d7d060: added retry callback to useEntity hook
  • 45b5fc3a8: Updated the layout of catalog and API index pages to handle smaller screen sizes. This adds responsive wrappers to the entity tables, and switches filters to a drawer when width-constrained. If you have created a custom catalog or API index page, you will need to update the page structure to match the updated catalog customization documentation.
  • 71c936eb6: Export CatalogClientWrapper class
  • 03bf17e9b: Improve the responsiveness of the EntityPage UI. With this the Header component should scale with the screen size & wrapping should not cause overflowing/blocking of links. Additionally enforce the Pages using the Grid Layout to use it across all screen sizes & to wrap as intended.

    To benefit from the improved responsive layout, the EntityPage in existing Backstage applications should be updated to set the xs column size on each grid item in the page, as this does not default. For example:

    -  <Grid item md={6}>
    +  <Grid item xs={12} md={6}>
  • Updated dependencies

0.6.7

Patch Changes

0.6.6

Patch Changes

0.6.5

Patch Changes

0.6.4

Patch Changes

  • bba9df7f9: improve the wrapping behavior of long entity links
  • 5f4339b8c: Adding FeatureFlag component and treating FeatureFlags as first class citizens to composability API
  • 7bd46b19d: Allow defaultKind from CatalogTable.column.creatNameColumn to be configurable
  • 71416fb64: Moved installation instructions from the main backstage.io documentation to the package README file. These instructions are not generally needed, since the plugin comes installed by default with npx @backstage/create-app.
  • e3cbfa8c2: Disambiguated titles of EntityDependencyOfComponentsCard and EntityDependsOnComponentsCard.
  • 3d7b1c9f0: Adds an optional actions prop to CatalogTable and CatalogPage to support supplying custom actions for each entity row in the table. This uses the default actions if not provided.
  • 48c9fcd33: Migrated to use the new @backstage/core-* packages rather than @backstage/core.
  • 80a82ffce: Clearer titles for the relationship cards
  • Updated dependencies

0.6.3

Patch Changes

0.6.2

Patch Changes

  • db1c8f93b: A <CatalogResultListItem /> component is now available for use in custom Search Experiences.
  • f4e3ac5ce: Move ScmIntegrationIcon from @backstage/plugin-catalog to @backstage/integration-react and make it customizable using app.getSystemIcon().
  • 7028ee1ca: Expose getEntitySourceLocation, getEntityMetadataViewUrl, and getEntityMetadataEditUrl from @backstage/plugin-catalog-react.
  • 4fbb00707: A new card that shows components that depend on the active component
  • d5ad47bbb: Exported AboutCard contents and utility functions
  • Updated dependencies [27a9b503a]
  • Updated dependencies [f4e3ac5ce]
  • Updated dependencies [7028ee1ca]
  • Updated dependencies [70bc30c5b]
  • Updated dependencies [eda9dbd5f]

0.6.1

Patch Changes

0.6.0

Minor Changes

  • 17c497b81: The default CatalogPage has been reworked to be more composable and make customization easier. This change only affects those who have replaced the default CatalogPage with a custom implementation; others can safely ignore the rest of this changelog.

    If you created a custom CatalogPage to add or remove tabs from the catalog, a custom page is no longer necessary. The fixed tabs have been replaced with a spec.type dropdown that shows all available Component types in the catalog.

    For other needs, customizing the CatalogPage should now be easier. The new CatalogPage.tsx shows the default implementation. Overriding this with your own, similar CatalogPage component in your App.tsx routing allows you to adjust the layout, header, and which filters are available.

    See the documentation added on Catalog Customization for instructions.

Patch Changes

0.5.8

Patch Changes

  • a53f3d603: - Added RelatedEntitesCard as a base implementation of displaying entities that are related to another entity.
    • Added HasResourcesCard to display resources that are part of a system.
    • Added DependsOnComponentsCard to display components that are dependencies of a component.
    • Added DependsOnResourcesCard to display resources that are dependencies of a component.
    • Refactored HasComponentsCard to use base RelatedEntitiesCard. Card remains backwards compatible.
    • Refactored HasSubcomponentsCard to use base RelatedEntitiesCard. Card remains backwards compatible.
    • Refactored HasSystemsCard to use base RelatedEntitiesCard. Card remains backwards compatible.
    • Updated the example app to take advantage of these new components.
  • b203699e9: Display warning when Entity has orphan annotation.
  • Updated dependencies [f7f7783a3]
  • Updated dependencies [65e6c4541]
  • Updated dependencies [68fdbf014]
  • Updated dependencies [5da6a561d]

0.5.7

Patch Changes

  • 062bbf90f: chore: bump @testing-library/user-event from 12.8.3 to 13.1.8
  • 5542de095: This makes the CatalogTable configurable with custom columns, passed through the CatalogPage component rendered on the home page.
  • 675a569a9: chore: bump react-use dependency in all packages
  • Updated dependencies [062bbf90f]
  • Updated dependencies [10c008a3a]
  • Updated dependencies [889d89b6e]
  • Updated dependencies [16be1d093]
  • Updated dependencies [3f988cb63]
  • Updated dependencies [675a569a9]

0.5.6

Patch Changes

  • 19a4dd710: Removed unused swr dependency.
  • da546ce00: Support gridItem variant for EntityLinksCard.
  • e0c9ed759: Add if prop to EntityLayout.Route to conditionally render tabs
  • 1a142ae8a: Switch out the time-based personal greeting for a plain title on the catalog index page, and remove the clocks for different timezones.
  • Updated dependencies [9afcac5af]
  • Updated dependencies [e0c9ed759]
  • Updated dependencies [6eaecbd81]

0.5.5

Patch Changes

  • 96728a2af: SystemDiagramCard UI improvements
  • 87c4f59de: Add low german greeting
  • Updated dependencies [94da20976]
  • Updated dependencies [d8cc7e67a]
  • Updated dependencies [99fbef232]
  • Updated dependencies [ab07d77f6]
  • Updated dependencies [931b21a12]
  • Updated dependencies [937ed39ce]
  • Updated dependencies [9a9e7a42f]
  • Updated dependencies [50ce875a0]

0.5.4

Patch Changes

  • 5d0740563: Implemented missing support for the dependsOn/dependencyOf relationships between Component and Resource catalog model objects.

    Added support for generating the relevant relationships to the BuiltinKindsEntityProcessor, and added simple support for fetching relationships between Components and Resources for rendering in the system diagram. All catalog-model changes backwards compatible.

  • Updated dependencies [bb5055aee]

  • Updated dependencies [d0d1c2f7b]
  • Updated dependencies [5d0740563]
  • Updated dependencies [5cafcf452]
  • Updated dependencies [86a95ba67]
  • Updated dependencies [442f34b87]
  • Updated dependencies [e27cb6c45]

0.5.3

Patch Changes

  • 98dd5da71: Add support for multiple links to post-scaffold task summary page
  • Updated dependencies [1279a3325]
  • Updated dependencies [4a4681b1b]
  • Updated dependencies [97b60de98]
  • Updated dependencies [b051e770c]
  • Updated dependencies [98dd5da71]

0.5.2

Patch Changes

  • aa58c01e2: Adds a new EntitySystemDiagramCard component to visually map all elements in a system.

    To use this new component with the legacy composability pattern, you can add a new tab with the component on to the System Entity Page in your packages/app/src/components/catalog/EntityPage.tsx file.

    For example,

     const SystemEntityPage = ({ entity }: { entity: Entity }) => (
       <EntityPageLayoutWrapper>
         <EntityPageLayout.Content
           path="/*"
           title="Overview"
           element={<SystemOverviewContent entity={entity} />}
         />
    +    <EntityPageLayout.Content
    +      path="/diagram/*"
    +      title="Diagram"
    +      element={<EntitySystemDiagramCard />}
    +    />
       </EntityPageLayoutWrapper>
     );
  • 676ede643: Added the getOriginLocationByEntity and removeLocationById methods to the catalog client

  • 8bee6a131: unify how the owner and lifecycle header labels are made
  • 676ede643: Improve the unregister dialog, to support both unregistration and plain deletion
  • Updated dependencies [676ede643]
  • Updated dependencies [9f48b548c]
  • Updated dependencies [b196a4569]
  • Updated dependencies [8488a1a96]

0.5.1

Patch Changes

  • 4d248725e: Temporarily add UNSTABLE_extraContextMenuItems to the entity layout, so that we could detach the catalog plugin from the dependency on the badges plugin
  • 687f066e1: Add icon for entity badge menu
  • Updated dependencies [01ccef4c7]
  • Updated dependencies [fcc3ada24]
  • Updated dependencies [4618774ff]
  • Updated dependencies [df59930b3]

0.5.0

Minor Changes

  • 3385b374b: Use scmIntegrationsApiRef from the new @backstage/integration-react.

Patch Changes

  • 633a31fec: Add the ability to change the initially selected filter, if not set it still defaults to owned.

    <Route
      path="/catalog"
      element={<CatalogIndexPage initiallySelectedFilter="all" />}
    />
  • 9ca0e4009: use local version of lowerCase and upperCase methods

  • 8686eb38c: Use errors from @backstage/errors
  • Updated dependencies [8686eb38c]
  • Updated dependencies [8686eb38c]
  • Updated dependencies [9ca0e4009]
  • Updated dependencies [34ff49b0f]

0.4.2

Patch Changes

  • 4f3d0dce0: This is a quick fix (while #2791 is being implemented) to make it possible view non well known component types listed in the catalog index page. It buckets any component entities that are not a service, library, or documentation into the Other tab. It also displays a Type column when on Other tab.
  • 0b42fff22: Make use of parseLocationReference/stringifyLocationReference
  • 9f7dc10fb: Show a Not Found message when navigating to a nonexistent entity
  • 93c62c755: Move logic for generating URLs for the view, edit and source links of catalog entities from the catalog frontend into the backend. This is done using the existing support for the backstage.io/view-url, backstage.io/edit-url and backstage.io/source-location annotations that are now filled by the AnnotateLocationEntityProcessor. If these annotations are missing or empty, the UI disables the related controls.
  • Updated dependencies [277644e09]
  • Updated dependencies [52f613030]
  • Updated dependencies [0b42fff22]
  • Updated dependencies [0b42fff22]
  • Updated dependencies [ff4d666ab]
  • Updated dependencies [905cbfc96]
  • Updated dependencies [2089de76b]
  • Updated dependencies [d4e77ec5f]
  • Updated dependencies [dc1fc92c8]

0.4.1

Patch Changes

  • 32a003973: Update messaging when no entities are in a table.
  • 40c0fdbaa: Make the external createComponent route optional, hiding the "Create Component" button if it isn't bound.
  • 10362e9eb: Use entity relation for the owner of an entity in the catalog entity page header.
  • b33e553b2: Removed fullScreen property from UnregisterEntity Dialog modal.
  • Updated dependencies [12d8f27a6]
  • Updated dependencies [40c0fdbaa]
  • Updated dependencies [2a271d89e]
  • Updated dependencies [bece09057]
  • Updated dependencies [169f48deb]
  • Updated dependencies [8a1566719]
  • Updated dependencies [9d455f69a]
  • Updated dependencies [4c049a1a1]
  • Updated dependencies [02816ecd7]

0.4.0

Minor Changes

  • a5f42cf66: The Scaffolder and Catalog plugins have been migrated to partially require use of the new composability API. The Scaffolder used to register its pages using the deprecated route registration plugin API, but those registrations have been removed. This means you now need to add the Scaffolder plugin page to the app directly.

    The page is imported from the Scaffolder plugin and added to the <FlatRoutes> component:

    <Route path="/create" element={<ScaffolderPage />} />

    The Catalog plugin has also been migrated to use an external route reference to dynamically link to the create component page. This means you need to migrate the catalog plugin to use the new extension components, as well as bind the external route.

    To use the new extension components, replace existing usage of the CatalogRouter with the following:

    <Route path="/catalog" element={<CatalogIndexPage />} />
    <Route path="/catalog/:namespace/:kind/:name" element={<CatalogEntityPage />}>
      <EntityPage />
    </Route>

    And to bind the external route from the catalog plugin to the scaffolder template index page, make sure you have the appropriate imports and add the following to the createApp call:

    import { catalogPlugin } from '@backstage/plugin-catalog';
    import { scaffolderPlugin } from '@backstage/plugin-scaffolder';
    
    const app = createApp({
      // ...
      bindRoutes({ bind }) {
        bind(catalogPlugin.externalRoutes, {
          createComponent: scaffolderPlugin.routes.root,
        });
      },
    });
  • d0760ecdf: Moved common useStarredEntities hook to plugin-catalog-react

Patch Changes

  • d6593abe6: Remove domain column from HasSystemsCard and system from HasComponentsCard, HasSubcomponentsCard, and HasApisCard.
  • bad21a085: Implement annotations for customising Entity URLs in the Catalog pages.
  • 437bac549: Make the description column in the catalog table and api-docs table use up as much space as possible before hiding overflowing text.
  • 5469a9761: Changes made in CatalogTable and ApiExplorerTable for using the OverflowTooltip component for truncating large description and showing tooltip on hover-over.
  • 60d1bc3e7: Fix Japanese Good Morning
  • Updated dependencies [3a58084b6]
  • Updated dependencies [e799e74d4]
  • Updated dependencies [d0760ecdf]
  • Updated dependencies [1407b34c6]
  • Updated dependencies [88f1f1b60]
  • Updated dependencies [bad21a085]
  • Updated dependencies [9615e68fb]
  • Updated dependencies [49f9b7346]
  • Updated dependencies [5c2e2863f]
  • Updated dependencies [3a58084b6]
  • Updated dependencies [2c1f2a7c2]

0.3.2

Patch Changes

  • 32a950409: Hide the kind of the owner if it's the default kind for the ownedBy relationship (group).
  • f10950bd2: Minor refactoring of BackstageApp.getSystemIcons to support custom registered icons. Custom Icons can be added using:

    import AlarmIcon from '@material-ui/icons/Alarm';
    import MyPersonIcon from './MyPerson';
    
    const app = createApp({
      icons: {
        user: MyPersonIcon // override system icon
        alert: AlarmIcon, // Custom icon
      },
    });
  • 914c89b13: Remove the "Move repository" menu entry from the catalog page, as it's just a placeholder.

  • 0af242b6d: Introduce new cards to @backstage/plugin-catalog that can be added to entity pages:

    • EntityHasSystemsCard to display systems of a domain.
    • EntityHasComponentsCard to display components of a system.
    • EntityHasSubcomponentsCard to display subcomponents of a subcomponent.
    • In addition, EntityHasApisCard to display APIs of a system is added to @backstage/plugin-api-docs.

    @backstage/plugin-catalog-react now provides an EntityTable to build own cards for entities. The styling of the tables and new cards was also applied to the existing EntityConsumedApisCard, EntityConsumingComponentsCard, EntityProvidedApisCard, and EntityProvidingComponentsCard.

  • f4c2bcf54: Use a more strict type for variant of cards.

  • 53b69236d: Migrate about card to new composability API, exporting the entity cards as EntityAboutCard.
  • Updated dependencies [6c4a76c59]
  • Updated dependencies [fd3f2a8c0]
  • Updated dependencies [d34d26125]
  • Updated dependencies [0af242b6d]
  • Updated dependencies [f4c2bcf54]
  • Updated dependencies [10a0124e0]
  • Updated dependencies [07e226872]
  • Updated dependencies [f62e7abe5]
  • Updated dependencies [96f378d10]
  • Updated dependencies [688b73110]

0.3.1

Patch Changes

  • 6ed2b47d6: Include Backstage identity token in requests to backend plugins.
  • ca559171b: bug fix: 3310 fixes reloading entities with the default owned filter
  • f5e564cd6: Improve display of error messages
  • 1df75733e: Adds an EntityLinksCard component to display entity.metadata.links on entity pages. The new component is a companion for the new Entity Links catalog model addition.

    Here is an example usage within an EntityPage.tsx.

    // in packages/app/src/components/catalog/EntityPage.tsx
    const ComponentOverviewContent = ({ entity }: { entity: Entity }) => (
      <Grid container spacing={3} alignItems="stretch">
        <Grid item md={4} sm={6}>
          <EntityLinksCard />
          // or ...
          <EntityLinksCard cols={{ md: 2, lg: 3, xl: 4 }} />
        </Grid>
      </Grid>
    );
  • e5da858d7: Removed unused functions and the moment library. #4278

  • 9230d07e7: Fix whitespace around variable in unregister error dialog box
  • Updated dependencies [6ed2b47d6]
  • Updated dependencies [72b96e880]
  • Updated dependencies [19d354c78]
  • Updated dependencies [b51ee6ece]

0.3.0

Minor Changes

  • 019fe39a0: @backstage/plugin-catalog stopped exporting hooks and helpers for other plugins. They are migrated to @backstage/plugin-catalog-react. Change both your dependencies and imports to the new package.

Patch Changes

  • 7fc89bae2: Display owner and system as entity page links in the tables of the api-docs plugin.

    Move isOwnerOf and getEntityRelations from @backstage/plugin-catalog to @backstage/plugin-catalog-react and export it from there to use it by other plugins.

  • b37501a3d: Add children option to addPage, which will be rendered as the children of the Route.

  • b37501a3d: Finalize migration to new composability API, with the plugin instance now exported catalogPlugin.
  • 54c7d02f7: Introduce TabbedLayout for creating tabs that are routed.

    <TabbedLayout>
      <TabbedLayout.Route path="/example" title="Example tab">
        <div>This is rendered under /example/anything-here route</div>
      </TabbedLayout.Route>
    </TabbedLayout>
  • Updated dependencies [720149854]

  • Updated dependencies [12ece98cd]
  • Updated dependencies [d82246867]
  • Updated dependencies [7fc89bae2]
  • Updated dependencies [c810082ae]
  • Updated dependencies [5fa3bdb55]
  • Updated dependencies [6e612ce25]
  • Updated dependencies [025e122c3]
  • Updated dependencies [21e624ba9]
  • Updated dependencies [da9f53c60]
  • Updated dependencies [32c95605f]
  • Updated dependencies [7881f2117]
  • Updated dependencies [54c7d02f7]
  • Updated dependencies [019fe39a0]
  • Updated dependencies [11cb5ef94]

0.2.14

Patch Changes

  • 9dd057662: Upgrade git-url-parse to v11.4.4 which fixes parsing an Azure DevOps branch ref.
  • 0b1182346: Add EntityRefLinks that shows one or multiple entity ref links.

    Change the about card and catalog table to use EntityRefLinks due to the nature of relations to support multiple relations per type.

  • Updated dependencies [9dd057662]

0.2.13

Patch Changes

  • a4e636c8f: Hide the kind of owners in the about card if it's the default kind (group)
  • 099c5cf4f: Show the parent component in the about card (via partOf relationship)
  • a08db734c: Remove the WelcomeBanner that links to a plugin that is not longer wired into Backstage instances

0.2.12

Patch Changes

  • 593632f07: Derive the list of to-delete entities in the UnregisterEntityDialog from the backstage.io/managed-by-origin-location annotation. The dialog also rejects deleting entities that are created by the bootstrap:bootstrap location.
  • 33846acfc: Display the owner, system, and domain as links to the entity pages in the about card. Only display fields in the about card that are applicable to the entity kind.
  • f04db53d7: Display systems in catalog table and make both owner and system link to the entity pages. The owner field is now taken from the relations of the entity instead of its spec.
  • Updated dependencies [def2307f3]
  • Updated dependencies [efd6ef753]
  • Updated dependencies [a187b8ad0]
  • Updated dependencies [ed6baab66]
  • Updated dependencies [a93f42213]

0.2.11

Patch Changes

  • c00488983: Enable catalog table actions for all location types.

    The edit button has had support for other providers for a while and there is no specific reason the View in GitHub cannot work for all locations. This change also replaces the GitHub icon with the OpenInNew icon.

  • Updated dependencies [f3b064e1c]

  • Updated dependencies [265a7ab30]
  • Updated dependencies [abbee6fff]
  • Updated dependencies [147fadcb9]

0.2.10

Patch Changes

  • 9c09a364f: Remove the unused dependency to @backstage/plugin-techdocs.
  • Updated dependencies [8e083f41f]
  • Updated dependencies [947d3c269]

0.2.9

Patch Changes

  • 7e0b8cac5: Add CatalogIndexPage and CatalogEntityPage, two new extensions that replace the existing Router component.

    Add EntityLayout to replace EntityPageLayout, using children instead of an element property, and allowing for collection of all RouteRef mount points used within tabs.

    Add EntitySwitch to be used to select components based on entity data, along with accompanying isKind, isNamespace, and isComponentType filters.

  • 87c0c53c2: Add new EntityProvider component, which can be used to provide an entity for the useEntity hook.

  • Updated dependencies [a08c32ced]
  • Updated dependencies [359f9d2d8]

0.2.8

Patch Changes

0.2.7

Patch Changes

0.2.6

Patch Changes

0.2.5

Patch Changes

0.2.4

Patch Changes

0.2.3

Patch Changes

0.2.2

Patch Changes

0.2.1

Patch Changes

  • 2d0bd1be7: Improved the edit link to open the component yaml in edit mode in corresponding SCM. Broke out logic for createEditLink to be reused.
  • Updated dependencies [7b37d65fd]
  • Updated dependencies [4aca74e08]
  • Updated dependencies [e8f69ba93]
  • Updated dependencies [0c0798f08]
  • Updated dependencies [0c0798f08]
  • Updated dependencies [199237d2f]
  • Updated dependencies [6627b626f]
  • Updated dependencies [4577e377b]
  • Updated dependencies [59166e5ec]

0.2.0

Minor Changes

  • 28edd7d29: Create backend plugin through CLI
  • 368fd8243: Created EntityNotFound component for catalog which displays the 404 page when entity is not found.

    Fixes #2266

  • 6d97d2d6f: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items. Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid: <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse' to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

  • f0aa01bcc: Add client side paging for catalog table

  • 8b9c8196f: Locations registered through the catalog client now default to the 'url' type. The type selection dropdown in the register-component form has been removed.
  • 2ebcfac8d: Add a validate button to the register-component page

    This allows the user to validate his location before adding it.

  • 0b956f21b: The URL path for a catalog entity has changed,

    • from: /catalog/:kind/:optionalNamespaceAndName
    • to: /catalog/:namespace/:kind/:name

    Redirects are in place, so disruptions for users should not happen.

Patch Changes

  • 0aecfded0: handle the case where no entities are available to show
  • 60d40892c: Remove "in default" in component name
  • 97c2cb19b: update the EntityNotFound component
  • Updated dependencies [28edd7d29]
  • Updated dependencies [819a70229]
  • Updated dependencies [3a4236570]
  • Updated dependencies [ae5983387]
  • Updated dependencies [0d4459c08]
  • Updated dependencies [482b6313d]
  • Updated dependencies [e0be86b6f]
  • Updated dependencies [f70a52868]
  • Updated dependencies [12b5fe940]
  • Updated dependencies [8351ad79b]
  • Updated dependencies [fb74f1db6]
  • Updated dependencies [1c60f716e]
  • Updated dependencies [144c66d50]
  • Updated dependencies [a768a07fb]
  • Updated dependencies [b79017fd3]
  • Updated dependencies [6d97d2d6f]
  • Updated dependencies [5adfc005e]
  • Updated dependencies [93a3fa3ae]
  • Updated dependencies [782f3b354]
  • Updated dependencies [c5ef12926]
  • Updated dependencies [2713f28f4]
  • Updated dependencies [406015b0d]
  • Updated dependencies [82759d3e4]
  • Updated dependencies [ac8d5d5c7]
  • Updated dependencies [fa56f4615]
  • Updated dependencies [ebca83d48]
  • Updated dependencies [aca79334f]
  • Updated dependencies [c0d5242a0]
  • Updated dependencies [b3d57961c]
  • Updated dependencies [1c8c43756]
  • Updated dependencies [3beb5c9fc]
  • Updated dependencies [754e31db5]
  • Updated dependencies [57b54c8ed]
  • Updated dependencies [1611c6dbc]