diff --git a/.changeset/hungry-buttons-fetch.md b/.changeset/hungry-buttons-fetch.md new file mode 100644 index 0000000000..f2f9bc26bc --- /dev/null +++ b/.changeset/hungry-buttons-fetch.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +The `entityRouteRef` is now a well-known route that should be imported directly from `@backstage/plugin-catalog-react`. It is guaranteed to be globally unique across duplicate installations of the `@backstage/plugin-catalog-react`, starting at this version. + +Deprecated `entityRoute` in favor of `entityRouteRef`. + +Deprecated `rootRoute` and `catalogRouteRef`. If you want to refer to the catalog index page from a public plugin you now need to use an `ExternalRouteRef` instead. For private plugins it is possible to take the shortcut of referring directly to `catalogPlugin.routes.indexPage` instead. diff --git a/.changeset/rude-hounds-happen.md b/.changeset/rude-hounds-happen.md new file mode 100644 index 0000000000..b88c2b12d2 --- /dev/null +++ b/.changeset/rude-hounds-happen.md @@ -0,0 +1,27 @@ +--- +'@backstage/create-app': patch +--- + +Added an external route binding from the `org` plugin to the catalog index page. + +This change is needed because `@backstage/plugin-org` now has a required external route that needs to be bound for the app to start. + +To apply this change to an existing app, make the following change to `packages/app/src/App.tsx`: + +```diff + import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; ++import { orgPlugin } from '@backstage/plugin-org'; + import { SearchPage } from '@backstage/plugin-search'; +``` + +And further down within the `createApp` call: + +```diff + bind(scaffolderPlugin.externalRoutes, { + registerComponent: catalogImportPlugin.routes.importPage, + }); ++ bind(orgPlugin.externalRoutes, { ++ catalogIndex: catalogPlugin.routes.catalogIndex, ++ }); + }, +``` diff --git a/.changeset/shaggy-days-film.md b/.changeset/shaggy-days-film.md new file mode 100644 index 0000000000..ae9c47c318 --- /dev/null +++ b/.changeset/shaggy-days-film.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bazaar': patch +--- + +Switched out internal usage of the `catalogRouteRef` from `@backstage/plugin-catalog-react`. diff --git a/.changeset/short-apples-return.md b/.changeset/short-apples-return.md new file mode 100644 index 0000000000..1339de3410 --- /dev/null +++ b/.changeset/short-apples-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-app-api': patch +--- + +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. diff --git a/.changeset/tough-wombats-taste.md b/.changeset/tough-wombats-taste.md new file mode 100644 index 0000000000..2d034f35b6 --- /dev/null +++ b/.changeset/tough-wombats-taste.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-org': minor +--- + +**BREAKING**: Added a new and required `catalogIndex` external route. It should typically be linked to the `catalogIndex` route of the Catalog plugin: + +```ts +bind(orgPlugin.externalRoutes, { + catalogIndex: catalogPlugin.routes.catalogIndex, +}); +``` diff --git a/microsite/pages/en/link.js b/microsite/pages/en/link.js new file mode 100644 index 0000000000..ddac35e545 --- /dev/null +++ b/microsite/pages/en/link.js @@ -0,0 +1,27 @@ +const React = require('react'); + +// This is an index of stable short-links to different doc sites +// for example https://backstage.io/link?bind-routes +const redirects = { + 'bind-routes': + '/docs/plugins/composability#binding-external-routes-in-the-app', +}; +const fallback = '/docs'; + +function Link() { + return ( + +