Project: Backstage (App Definition and Development / Application Definition & Image Build)
File: v1.6.0-changelog.md

65d1d4343f: Adding `validateEntity` method that calls `/validate-entity` endpoint. 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`. ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`. Note that this major update to the Jest plugin contains some breaking changes. This means that some of your tests may start seeing some new lint errors. . These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them corrected. 8d886dd33e: The `create-plugin` and `create` commands have both been deprecated in favor of a new `new` command. The `new` command is functionally identical to `create`, but the new naming makes it possible to use as yarn script, since `yarn create` is reserved. cc63eb8611: Sort entries in skeleton.tar.gz for better docker layer caching 548053614a: Deprecated the `plugin:diff` command. If you wish to keep running similar checks in your project we recommend using bespoke scripts. A useful utility for such scripts is `@manypkg/get-packages`, which helps you enumerate all packages in a monorepo. 513b4dd4ef: The `versions:bump` command will now update dependency ranges in `package.json`, even if the new version is within the current range. 221e951298: Added support for custom certificate for webpack dev server. 934cc34563: Avoid validating the backend configuration schema when loading static configuration for building the frontend. 3d4f5daadf: Remove use of deprecated trimLeft/trimRight 817f3196f6: Added a new `migrate react-router-deps` command to aid in the migration to React Router v6 stable. 742cb4f3d7: Fix issue when using `.jsx` files inside tests e7600bdb04: Tweaked workspace packaging to not rewrite existing `package.json` files. 6ae0f6a719: Switch out `sucrase` for `swc` for transpilation. `sucrase` is a little more relaxed when it comes to supporting the ways of mocking in `jest`. You might have to make some changes to your tests to meet the `jest` standard and spec if your tests seems to start failing. Mocks that look like this are invalid, and they will throw a reference error in line with the `jest` documentation ```ts const mockCommandExists = jest.fn(); jest.mock('command-exists', () => mockCommandExists); ``` You might need to update these mocks to look a little like the following to defer the call to the `jest.fn()` spy until the mock is called. ```ts const mockCommandExists = jest.fn(); jest.mock( 'command-exists', () => (...args: any[]) => commandExists(...args), ); ``` Also, imports are immutable. So it means that you might get some errors when trying to use `jest.spyOn` with starred imports. You might see an error like this: ```log TypeError: Cannot redefine property: executeFrameHandlerStrategy at Function.defineProperty (<anonymous>) 20 | import { AuthResolverContext } from '../types'; 21 | > 22 | const mockFrameHandler = jest.spyOn( | ^ 23 | helpers, 24 | 'executeFrameHandlerStrategy', 25 | ) as unknown as jest.MockedFunction< ``` This happens when you try to do `import * as something from './something'` and then `jest.spyOn(something, 'test)`. You will need to add a `jest.mock` call to mock out the required starred import to return `jest.fn()` functions from the start. Something like this fixes the above test: ```ts jest.mock('../../helpers', () => ({ executeFrameHandlerStrategy: jest.fn(), })); ``` You can also remove any occurrence of `hot(App)` and any import of `react-hot-loader` if you're using the that package locally, as all this has now been replaced with which you will get out of the box with the new

Note If you're experiencing difficulties with running tests after the migration, please reach out to us on Discord to see if we can help, or raise an issue. But in the meantime you can switch back to the existing behaviour by using the following config in your root `package.json`. ```json "jest": { "transform": { "\\.(js|jsx|ts|tsx|mjs|cjs)$": "@backstage/cli/config/jestSucraseTransform.js", "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$": "@backstage/cli/config/jestFileTransform.js", "\\.(yaml)$": "jest-transform-yaml" } } ``` 1cb078ad9f: Fixed a misconfiguration where all modules where treated as ESM by the React Refresh plugin for Webpack. 1fd4f2746f: Removed internal dependencies on Lerna. It is now no longer necessary to have Lerna installed in a project to use all features of the Backstage CLI. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 33fbd9f9a4: Updated dependency `@types/minimatch` to `^5.0.0`. 68c2697077: Added a new `backstage-cli repo clean` command that cleans the repo root and runs the clean script in all packages. 7d47def9c4: Added dependency on `@types/jest` v27. The `@types/jest` dependency has also been removed from the plugin template and should be removed from any of your own internal packages. If you wish to override the version of `@types/jest` or `jest`, use Yarn resolutions. a7e82c9b01: Updated `versions:bump` command to be compatible with Yarn 3. Updated dependencies @backstage/config-loader@1.1.4 @backstage/cli-common@0.1.10 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/release-manifests@0.0.6 a448fea691: Updated the routing system to be compatible with React Router v6 stable. 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 @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 817f3196f6: Elements rendered in a test app are no longer wrapped in a `Routes` and `Route` element, as this is not compatible with React Router v6 stable. 817f3196f6: Updated React Router dependencies to be peer dependencies. 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`. d9e39544be: Add missing peer dependencies Updated dependencies @backstage/core-app-api@1.1.0 @backstage/core-plugin-api@1.0.6 @backstage/plugin-permission-react@0.4.5 @backstage/config@1.0.2 @backstage/plugin-permission-common@0.6.4 2fc41ebf07: Removed the previously deprecated class `AtlassianAuthProvider`. Please use `providers.atlassian.create(...)` instead. a291688bc5: Renamed the `RedirectInfo` type to `OAuthStartResponse` 8600855fbf: The auth0 integration is updated to use the `passport-auth0` library. The configuration under `auth.providers.auth0.\*` now supports an optional `audience` parameter; providing that allows you to connect to the correct API to get permissions, access tokens, and full profile information. 5b011fb2e6: Allow adding misc claims to JWT d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to

e1ebaeb332: Cloudflare Access Provider: Add JWT to CloudflareAccessResult Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 6c1c59b96e: Added README card `EntityAzureReadmeCard` for Azure Devops. To get the README component working you'll need to do the following two steps: First we need to add the @backstage/plugin-azure-devops package to your frontend app: ```bash yarn add --cwd packages/app @backstage/plugin-azure-devops ``` Second we need to add the `EntityAzureReadmeCard` extension to the entity page in your app: ```tsx // In packages/app/src/components/catalog/EntityPage.tsx import { EntityAzureReadmeCard, isAzureDevOpsAvailable, } from '@backstage/plugin-azure-devops'; // As it is a card, you can customize it the way you prefer // For example in the Service section const overviewContent = ( <Grid container spacing={3} alignItems="stretch"> <EntitySwitch> <EntitySwitch.Case if={isAzureDevOpsAvailable}> <Grid item md={6}> ... </Grid> <Grid item md={6}> <EntityAzureReadmeCard maxHeight={350} /> </Grid> </EntitySwitch.Case> </EntitySwitch> </Grid> ); ``` Notes: You'll need to add the `EntitySwitch.Case` above from step 2 to all the entity sections you want to see Readme in. For example if you wanted to see Readme when looking at Website entities then you would need to add this to the `websiteEntityPage` section. The `if` prop is optional on the `EntitySwitch.Case`, you can remove it if you always want to see the tab even if the entity being viewed does not have the needed annotation The `maxHeight` property on the `EntityAzureReadmeCard` will set the maximum screen size you would like to see, if not set it will default to 100% 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-azure-devops-common@0.3.0 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 6c1c59b96e: Added README card `EntityAzureReadmeCard` for Azure Devops. To get the README component working you'll need to do the following two steps: First we need to add the @backstage/plugin-azure-devops package to your frontend app: ```bash yarn add --cwd packages/app @backstage/plugin-azure-devops ``` Second we need to add the `EntityAzureReadmeCard` extension to the entity page in your app: ```tsx // In packages/app/src/components/catalog/EntityPage.tsx import { EntityAzureReadmeCard, isAzureDevOpsAvailable, } from '@backstage/plugin-azure-devops'; // As it is a card, you can customize it the way you prefer // For example in the Service section const overviewContent = ( <Grid container spacing={3} alignItems="stretch"> <EntitySwitch> <EntitySwitch.Case if={isAzureDevOpsAvailable}> <Grid item md={6}> ... </Grid> <Grid item md={6}> <EntityAzureReadmeCard maxHeight={350} /> </Grid> </EntitySwitch.Case> </EntitySwitch> </Grid> ); ``` Notes: You'll need to add the `EntitySwitch.Case` above from step 2 to all the entity sections you want to see Readme in. For example if you wanted to see Readme when looking at Website entities then you would need to add this to the `websiteEntityPage` section. The `if` prop is optional on the `EntitySwitch.Case`, you can remove it if you always want to see the tab even if the entity being viewed does not have the needed annotation The `maxHeight` property on the `EntityAzureReadmeCard` will set the maximum screen size you would like to see, if not set it will default to 100% 3f739be9d9: Minor API signatures cleanup dd395335bc: Allow unknown typed location from being registered via the location service by configuration settings 651c9d6800: The search index now does retain fields that have a very long value, but in the form of just a null. This makes it possible to at least filter for their existence. 6e63bc43f2: Added the `refresh` function to the Connection of the entity providers. eadf56bbbf: Bump `git-url-parse` version to

07dda0b746: Add optional value to `hasAnnotation` permission rule 243533ecdc: Added support to mysql on some raw queries ce77e78c93: Fixes a bug to be able to utilize refresh keys after the entity is loaded from cache 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 679f7c5e95: Include entity ref into error message when catalog policies fail 06e2b077a1: Limit the length of error messages that get written to the database and logs - to prevent performance issues 62788b2ee8: The experimental `CatalogProcessingExtensionPoint` now accepts multiple providers and processors at once. Updated dependencies @backstage/backend-plugin-api@0.1.2 @backstage/backend-common@0.15.1 @backstage/plugin-permission-node@0.6.5 @backstage/plugin-catalog-node@1.1.0 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-scaffolder-common@1.2.0 @backstage/plugin-catalog-common@1.0.6 @backstage/plugin-search-common@1.0.1 9743bc788c: Added refresh function to the `EntityProviderConnection` to be able to schedule refreshes from entity providers. 7d7d947352: Adds experimental `catalogServiceRef` for obtaining a `CatalogClient` in the new backend system. 409ed984e8: Updated usage of experimental backend service APIs. 62788b2ee8: The experimental `CatalogProcessingExtensionPoint` now accepts multiple providers and processors at once. Updated dependencies @backstage/backend-plugin-api@0.1.2 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 e44c0b3811: New features: Some visual improvements to the table that displays Problems Added support for viewing recent Synthetics results using Added some additional linking to the configured Dynatrace instance 7d47def9c4: Removed dependency on `@types/jest`. 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/catalog-model@1.1.1 d3737da337: Implement playlist plugin, check out the `README.md` for more details! Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-permission-react@0.4.5 @backstage/plugin-search-react@1.1.0 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-playlist-common@0.1.0 @backstage/plugin-catalog-common@1.0.6 d3737da337: Implement playlist plugin, check out the `README.md` for more details! Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/plugin-permission-node@0.6.5 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/backend-test-utils@0.1.28 @backstage/plugin-playlist-common@0.1.0 d3737da337: Implement playlist plugin, check out the `README.md` for more details! Updated dependencies @backstage/plugin-permission-common@0.6.4 3424a8075d: Added support for `async` validation for the `next` version of the plugin ad036784e9: Ability to modify the layout of the step form 192d856495: Implementing review step for the scaffolder under `create/next` 817f3196f6: Updated React Router dependencies to be peer dependencies. eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 9ffb75616d: Fix bug with empty strings in `EntityPicker` 3f739be9d9: Minor API signatures cleanup 763fb81e82: Internal refactor to use more type safe code when dealing with route parameters. a66d44b72b: Fixing bug when the workspace would not be automatically saved when using `allowedOwners` 7d47def9c4: Removed dependency on `@types/jest`. 6522e459aa: Support displaying and ordering by counts in `EntityTagPicker` field. Add the `showCounts` option to enable this. Also support configuring `helperText`. f0510a20b5: Addition of a dismissible Error Banner in Scaffolder page 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. 9097278df2: Updated dependency `json-schema-library` to `^7.0.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. de336de9cd: fix uiSchema generation when using complex dependencies Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-permission-react@0.4.5 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/integration-react@1.1.4 @backstage/plugin-scaffolder-common@1.2.0 @backstage/plugin-catalog-common@1.0.6 ea2eee9e6a: Add the option for a homepage when using the `github:publish` action 8872cc735d: Fixed a bug in plugin-scaffolder-backend where it ignores the skip migration database options. To use this new implementation you need to create the instance of `DatabaseTaskStore` using the `PluginDatabaseManager` instead of `Knex`; import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common'; import { DatabaseTaskStore } from '@backstage/plugin-scaffolder-backend'; const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() }); const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } }); const databaseTaskStore = await

7db9613671: Added `projectId` for gitlab projects to be displayed in the `gitlab:publish` output d1f7ba58e3: Added `repositoryId` output when create a repository in Azure 1ff817b3f0: add entity metadata to the template info type eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` de8ee4afe3: Provide information about the user into scaffolder template action's context 096631e571: Added support for handling broken symlinks within the scaffolder backend. This is intended for templates that may hold a symlink that is invalid at build time but valid within the destination repo. 0d8d650e32: Applied the fix from version 1.5.1 of this package, which is part of the v1.5.1 release of Backstage. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 2df9955f4a: Removed the depreacated `publish:file` action, use the template editor to test templates instead. 0ecc9a6784: Properly set `ctx.isDryRun` when running actions in dry run mode. Also always log action inputs for debugging purposes when running in dry run mode. 6b9f6c0a4d: Added alpha `scaffolderPlugin` to be used with experimental backend system. 83c037cd46: Disable octokit throttling in publish:github:pull-request 2cbd533426: Uptake the `IdentityApi` change to use `getIdentity` instead of `authenticate` for retrieving the logged in users identity. ef9ab322de: Minor API signatures cleanup 50467bc15b: The number of task workers used to execute templates now default to 3, rather than 1. Updated dependencies @backstage/backend-plugin-api@0.1.2 @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/plugin-catalog-node@1.1.0 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-scaffolder-common@1.2.0 1ff817b3f0: add entity metadata to the template info type Updated dependencies @backstage/catalog-model@1.1.1 8872cc735d: Fixed a bug in search-backend-module-pg where it ignores the skip migration database options when using the database. To use this new implementation you need to create the instance of `DatabaseDocumentStore` using the `PluginDatabaseManager` instead of `Knex`; import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common'; import { DatabaseDocumentStore } from '@backstage/plugin-search-backend-module-pg'; const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() }); const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } }); const databaseDocumentStore = await DatabaseDocumentStore.create(databaseManager); d669d89206: Minor API signatures cleanup Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-search-backend-node@1.0.2 @backstage/config@1.0.2 @backstage/plugin-search-common@1.0.1 97f2b8f3fd: The `<SearchResult/>` component now accepts a optional `query` prop to request results from the search api: > Note: If a query prop is not defined, the results will by default be consumed from the context. Example: ```jsx import React, { useState, useCallback } from 'react'; import { Grid, List, Paper } from '@material-ui/core'; import { Page, Header, Content, Lifecycle } from '@backstage/core-components'; import { DefaultResultListItem, SearchBarBase, SearchResult, } from '@backstage/plugin-search-react'; const SearchPage = () => { const [query, setQuery] = useState({ term: '', types: [], filters: {}, }); const handleChange = useCallback( (term: string) => { setQuery(prevQuery => ({ ...prevQuery, term })); }, [setQuery], ); return ( <Page themeId="home"> <Header title="Search" subtitle={<Lifecycle alpha />} /> <Content> <Grid container direction="row"> <Grid item xs={12}> <Paper> <SearchBarBase debounceTime={100} onChange={handleChange} /> </Paper> </Grid> <Grid item xs> <SearchResult query={query}> {({ results }) => ( <List> {results.map(({ document }) => ( <DefaultResultListItem key={document.location} result={document} /> ))} </List> )} </SearchResult> </Grid> </Grid> </Content> </Page> ); }; ``` Additionally, a search page can also be composed using these two new results layout components: ```jsx // Example rendering results as list <SearchResult> {({ results }) => ( <SearchResultListLayout resultItems={results} renderResultItem={({ type, document }) => { switch (type) { case 'custom-result-item': return ( <CustomResultListItem key={document.location} result={document} /> ); default: return ( <DefaultResultListItem key={document.location} result={document} /> ); } }} /> )} </SearchResult> ``` ```jsx // Example rendering results as groups <SearchResult> {({ results }) => ( <> <SearchResultGroupLayout icon={<CustomIcon />} title="Custom" link="See all custom results" resultItems={results.filter( ({ type }) => type === 'custom-result-item', )} renderResultItem={({ document }) => ( <CustomResultListItem key={document.location} result={document} /> )} /> <SearchResultGroupLayout icon={<DefaultIcon />} title="Default"

({ type }) => type !== 'custom-result-item', )} renderResultItem={({ document }) => ( <DefaultResultListItem key={document.location} result={document} /> )} /> </> )} </SearchResult> ``` A `SearchResultList` and `SearchResultGroup` components were also created for users who have search pages with multiple queries, both are specializations of `SearchResult` and also accept a `query` as a prop as well: ```jsx // Example using the <SearchResultList /> const SearchPage = () => { const query = { term: 'example', }; return ( <SearchResultList query={query} renderResultItem={({ type, document, highlight, rank }) => { switch (type) { case 'custom': return ( <CustomResultListItem key={document.location} icon={<CatalogIcon />} result={document} highlight={highlight} rank={rank} /> ); default: return ( <DefaultResultListItem key={document.location} result={document} /> ); } }} /> ); }; ``` ```jsx // Example using the <SearchResultGroup /> for creating a component that search and group software catalog results import React, { useState, useCallback } from 'react'; import { MenuItem } from '@material-ui/core'; import { JsonValue } from '@backstage/types'; import { CatalogIcon } from '@backstage/core-components'; import { CatalogSearchResultListItem } from '@backstage/plugin-catalog'; import { SearchResultGroup, SearchResultGroupTextFilterField, SearchResultGroupSelectFilterField, } from @backstage/plugin-search-react; import { SearchQuery } from '@backstage/plugin-search-common'; const CatalogResultsGroup = () => { const [query, setQuery] = useState<Partial<SearchQuery>>({ types: ['software-catalog'], }); const filterOptions = [ { label: 'Lifecycle', value: 'lifecycle', }, { label: 'Owner', value: 'owner', }, ]; const handleFilterAdd = useCallback( (key: string) => () => { setQuery(prevQuery => { const { filters: prevFilters, ...rest } = prevQuery; const newFilters = { ...prevFilters, [key]: undefined }; return { ...rest, filters: newFilters }; }); }, [], ); const handleFilterChange = useCallback( (key: string) => (value: JsonValue) => { setQuery(prevQuery => { const { filters: prevFilters, ...rest } = prevQuery; const newFilters = { ...prevFilters, [key]: value }; return { ...rest, filters: newFilters }; }); }, [], ); const handleFilterDelete = useCallback( (key: string) => () => { setQuery(prevQuery => { const { filters: prevFilters, ...rest } = prevQuery; const newFilters = { ...prevFilters }; delete newFilters[key]; return { ...rest, filters: newFilters }; }); }, [], ); return ( <SearchResultGroup query={query} icon={<CatalogIcon />} title="Software Catalog" link="See all software catalog results" filterOptions={filterOptions} renderFilterOption={({ label, value }) => ( <MenuItem key={value} onClick={handleFilterAdd(value)}> {label} </MenuItem> )} renderFilterField={(key: string) => { switch (key) { case 'lifecycle': return ( <SearchResultGroupSelectFilterField key={key} label="Lifecycle" value={query.filters?.lifecycle} onChange={handleFilterChange('lifecycle')} onDelete={handleFilterDelete('lifecycle')} > <MenuItem value="production">Production</MenuItem> <MenuItem value="experimental">Experimental</MenuItem> </SearchResultGroupSelectFilterField> ); case 'owner': return ( <SearchResultGroupTextFilterField key={key} label="Owner" value={query.filters?.owner} onChange={handleFilterChange('owner')} onDelete={handleFilterDelete('owner')} /> ); default: return null; } } renderResultItem={({ document, highlight, rank }) => ( <CatalogSearchResultListItem key={document.location} result={document} highlight={highlight} rank={rank} /> )} /> ); }; ``` 18f60427f2: Provides search autocomplete functionality through a `SearchAutocomplete` component. A `SearchAutocompleteDefaultOption` can also be used to render options with icons, primary texts, and secondary texts. Example: ```jsx import React, { ChangeEvent, useState, useCallback } from 'react'; import useAsync from 'react-use/lib/useAsync'; import { Grid, Paper } from '@material-ui/core'; import { Page, Content } from '@backstage/core-components'; import { SearchAutocomplete, SearchAutocompleteDefaultOption} from '@backstage/plugin-search-react'; const OptionsIcon = () => <svg /> const SearchPage = () => { const [inputValue, setInputValue] = useState(''); const options = useAsync(async () => { // Gets and returns autocomplete options }, [inputValue]) const useCallback((_event: ChangeEvent<{}>, newInputValue: string) => { setInputValue(newInputValue); }, [setInputValue]) return ( <Page themeId="home"> <Content> <Grid container direction="row"> <Grid item xs={12}> <Paper> <SearchAutocomplete options={options} inputValue={inputValue} inputDebounceTime={100} onInputChange={handleInputChange} getOptionLabel={option => option.title} renderOption={option => ( <SearchAutocompleteDefaultOption icon={<OptionIcon />} primaryText={option.title}

/> )} /> </Paper> </Grid> </Grid> {'/ Filters and results are omitted /'} </Content> </Page> ); }; ``` ca8d5a6eae: We noticed a repeated check for the existence of a parent context before creating a child search context in more the one component such as Search Modal and Search Bar and to remove code duplication we extract the conditional to the context provider, now you can use it passing an `inheritParentContextIfAvailable` prop to the `SearchContextProvider`. Note: This added property does not create a local context if there is a parent context and in this case, you cannot use it together with `initialState`, it will result in a type error because the parent context is already initialized. 817f3196f6: Updated React Router dependencies to be peer dependencies. d3737da337: Reset page cursor on search filter change Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-search-common@1.0.1 f7e99ac1d8: Added the possibility to display check results of different types on a single scorecard. BREAKING Removed the `getScorecardsDefinition` method from the `TechInsightsApi` interface. Added the `getCheckResultRenderers` method that returns rendering components for given types. BREAKING The `CheckResultRenderer` type now exposes the `component` factory method that creates a React component used to display a result of a provided check result. The `TechInsightsClient` constructor accepts now the optional `renderers` parameter that can be used to inject a custom renderer. BREAKING The `title` parameter in the `EntityTechInsightsScorecardContent` and `EntityTechInsightsScorecardCard` components is now mandatory. The `jsonRulesEngineCheckResultRenderer` used to render `json-rules-engine` check results is exported. The `BooleanCheck` component that can be used to render other check results types is also exported. If you were overriding the `getScorecardsDefinition` method to adjust the rendering of check results, you should now provide a custom renderer using `renderers` parameter in the `TechInsightsClient` class. See the for more details. 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 763fb81e82: Internal refactor to use more type safe code when dealing with route parameters. 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 aa524a5377: Add `projectId` config option to GCP Cloud Storage techdocs publisher. This will allow users to override the project ID, instead of implicitly using the same one as found in a credentials bundle. 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 @backstage/backend-common@0.15.1 @backstage/plugin-techdocs-node@1.4.0 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-catalog-common@1.0.6 @backstage/plugin-search-common@1.0.1 aa524a5377: Add `projectId` config option to GCP Cloud Storage techdocs publisher. This will allow users to override the project ID, instead of implicitly using the same one as found in a credentials bundle. 33ac0c0546: Fix Techdocs S3 and GCS publisher to include bucketRootPath in requests eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` Updated dependencies @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-search-common@1.0.1 108cdc3912: Added new plugin `@backstage/plugin-user-settings-backend` to store user related settings in the database. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d9e39544be: Add missing peer dependencies Updated dependencies @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-permission-react@0.4.5 2c57c0c499: Made `ApiRef.defaultFactory` internal. 854ba37357: Updated to support new `ServiceFactory` formats. af6bb42c68: Updated `ServiceRegistry` to not initialize factories more than once. 409ed984e8: Updated service implementations and backend wiring to support scoped service. de3347ca74: Updated usages of `ServiceFactory`. 1f384c5644: Improved error messaging when failing to instantiate services. Updated dependencies @backstage/backend-plugin-api@0.1.2 @backstage/backend-common@0.15.1 @backstage/plugin-permission-node@0.6.5 @backstage/backend-tasks@0.3.5 @backstage/errors@1.1.1 399286d7dd: Workaround support for `swc` instead of `sucrase` eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` c3c90280be: Added a keep-alive refresh loop to the `DatabaseManager`, keeping the connection pool up. c3c90280be: The options part of `DatabaseManager.fromConfig` now accepts an optional logger

3d4f5daadf: Remove use of deprecated trimLeft/trimRight bf3cc134eb: Implemented KubernetesContainerRunner: a ContainerRunner implementation that leverages Jobs on a kubernetes cluster ```ts const kubeConfig = new KubeConfig(); kubeConfig.loadFromDefault(); const options: KubernetesContainerRunnerOptions = { kubeConfig, // namespace where Jobs will be created namespace: 'default', // Jobs name will be prefixed with this name name: 'my-runner', // An existing Kubernetes volume that will be used // as base for mounts mountBase: { volumeName: 'workdir', // Every mount must start with the base path // see example below basePath: '/workdir', }, // Define a Pod template for the Jobs. It has to include // a volume definition named as the mountBase volumeName podTemplate: { spec: { containers: [], volumes: [ { name: 'workdir', persistentVolumeClaim: { claimName: 'workdir-claim', }, }, ], }, }, }; const containerRunner = new KubernetesContainerRunner(options); const runOptions: RunContainerOptions = { imageName: 'golang:1.17', args: ['echo', 'hello world'], mountDirs: { '/workdir/app': '/app', }, }; containerRunner.runContainer(runOptions); ``` e3b1993788: Added port ranges in allowed hosts: ```yaml reading: allow: host: *.examples.org:900-1000 ``` 2f52e74b49: Got rid of usages of the uppercase String type 60b85d8ade: Updated dependency `helmet` to `^6.0.0`. Please note that these policies are no longer applied by default: helmet.contentSecurityPolicy no longer sets block-all-mixed-content directive by default helmet.expectCt is no longer set by default. It can, however, be explicitly enabled. It will be removed in Helmet 7. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 709f468330: The `branch` command has been added to the `isomorphic-git` wrapper. 0c780278e0: Fix for entries being skipped or incomplete when reading large zip archives. 96689fbdcb: Workaround for a rare race condition in tests. Updated dependencies @backstage/integration@1.3.1 @backstage/config-loader@1.1.4 @backstage/cli-common@0.1.10 @backstage/config@1.0.2 @backstage/errors@1.1.1 854ba37357: Updated to support new `ServiceFactory` formats. de3347ca74: Updated usages of `ServiceFactory`. Updated dependencies @backstage/backend-app-api@0.2.1 @backstage/backend-plugin-api@0.1.2 2c57c0c499: Made `ApiRef.defaultFactory` internal. 91eed37a39: Updated `createBackendPlugin` and `createBackendModule` to properly forward lack of options. 409ed984e8: Service are now scoped to either `'plugin'` or `'root'` scope. Service factories have been updated to provide dependency instances directly rather than factory functions. eef91a2558: Simplified the `ServiceFactory` type and removed `AnyServiceFactory`. 854ba37357: The `createServiceFactory` method has been updated to return a higher-order factory that can accept options. 68513f169a: When defining a new `ServiceRef` you can now also include a `defaultFactory`, which will be used to construct instances of the service in case there is no explicit factory defined. Updated dependencies @backstage/backend-common@0.15.1 @backstage/backend-tasks@0.3.5 @backstage/config@1.0.2 @backstage/plugin-permission-common@0.6.4 243533ecdc: Added support to mysql on some raw queries 8872cc735d: Fixed a bug where the database option to skip migrations was ignored. Updated dependencies @backstage/backend-common@0.15.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 854ba37357: Updated to support new `ServiceFactory` formats. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. de3347ca74: Updated usages of `ServiceFactory`. Updated dependencies @backstage/cli@0.19.0 @backstage/backend-app-api@0.2.1 @backstage/backend-plugin-api@0.1.2 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/config@1.0.2 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/cli-common@0.1.10 7d47def9c4: Removed dependency on `@types/jest`. 5ecca7e44b: No longer log when reloading remote config. 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 @backstage/cli-common@0.1.10 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. d3737da337: Export `HeaderActionMenu` and expose default `Table` icons via `Table.icons` 7d47def9c4: Removed dependency on `@types/jest`. b29c44d895: Adds code to generate ids for headers parsed through the MarkdownContent component. 37e8c5e128: The `RoutedTabs` component has been updated to be compatible with React Router v6 stable. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to

bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 13f23f6510: Allow custom images in the empty state component 023d14c52b: Fix overflow bug on MicDrop image for 404 page by moving the image and making it relative rather than absolute c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings Updated dependencies @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/config@1.0.2 6ff94d60d5: Removed usage of the deprecated `diff` command in the root `package.json`. To make this change in an existing app, make the following change in the root `package.json`: ```diff "diff": "lerna run diff --", ``` c1f1a4c760: The Backstage packages and plugins have all been updated to support React Router v6 stable. The `create-app` template has not been migrated yet, but if you want to migrate your own app or plugins, check out the . e83de28e36: Fix typo in the documentation 7d47def9c4: Removed dependency on `@types/jest`. 208d6780c9: The `packages/backend/Dockerfile` received a couple of updates, it now looks as follows: ```Dockerfile FROM node:16-bullseye-slim RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ yarn config set python /usr/bin/python3 USER node WORKDIR /app ENV NODE_ENV production COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)" COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ RUN tar xzf bundle.tar.gz && rm bundle.tar.gz CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"] ``` The two notable changes are that a `USER node` instruction has been added and the ordering of instructions has been changed accordingly. This means that the app will now be running using the least-privileged `node` user. In order for this to work we now need to make sure that all app files are owned by the `node` user, which we do by adding the `--chown=node:node` option to the `COPY` instructions. The second change is the addition of `ENV NODE_ENV production`, which ensured that all Node.js modules run in production mode. If you apply this change to an existing app, note that one of the more significant changes is that this switches the log formatting to use the default production format, JSON. Rather than your log lines looking like this: ```log 2022-08-10T11:36:05.478Z catalog info Performing database migration type=plugin ``` They will now look like this: ```log {"level":"info","message":"Performing database migration","plugin":"catalog","service":"backstage","type":"plugin"} ``` If you wish to keep the existing format, you can override this change by applying the following change to `packages/backend/src/index.ts`: ```diff getRootLogger, setRootLogger, createRootLogger, coloredFormat, useHotMemoize, ... ServerTokenManager, } from '@backstage/backend-common'; ... async function main() { setRootLogger(createRootLogger({ format: coloredFormat })); const config = await loadBackendConfig({ ``` 49416194e8: Adds `IdentityApi` configuration to `create-app` scaffolding templates. To migrate to the new `IdentityApi`, edit the `packages/backend/src/index.ts` adding the following import: ```typescript import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; ``` Use the factory function to create an `IdentityApi` in the `makeCreateEnv` function and return it from the function as follows: ```typescript function makeCreateEnv(config: Config) { ... const identity = DefaultIdentityClient.create({ discovery, }); ... return { ..., identity } } ``` Backend plugins can be upgraded to work with this new

Add `identity` to the `RouterOptions` type. ```typescript export interface RouterOptions { ... identity: IdentityApi; } ``` Then you can use the `IdentityApi` from the plugin. ```typescript export async function createRouter( options: RouterOptions, ): Promise<express.Router> { const { identity } = options; router.get('/user', async (req, res) => { const user = await identity.getIdentity({ request: req }); ... ``` 8d886dd33e: Added `yarn new` as one of the scripts installed by default, which calls `backstage-cli new`. This script replaces `create-plugin`, which you can now remove if you want to. It is kept in the `create-app` template for backwards compatibility. The `remove-plugin` command has been removed, as it has been removed from the Backstage CLI. To apply these changes to an existing app, make the following change to the root `package.json`: ```diff "remove-plugin": "backstage-cli remove-plugin" "new": "backstage-cli new --scope internal" ``` c3c90280be: The options part of `DatabaseManager.fromConfig` now accepts an optional logger field. You may want to supply that logger in your backend initialization code to ensure that you can get relevant logging data when things happen related to the connection pool. In `packages/backend/src/index.ts`: ```diff function makeCreateEnv(config: Config) { const root = getRootLogger(); ... const databaseManager = DatabaseManager.fromConfig(config); const databaseManager = DatabaseManager.fromConfig(config, { logger: root }); ``` a578558180: Updated the root `package.json` to use the new `backstage-cli repo clean` command. To apply this change to an existing project, make the following change to the root `package.json`: ```diff "clean": "backstage-cli clean && lerna run clean", "clean": "backstage-cli repo clean", ``` c0a08fd08c: Added `EntityLinksCard` to the system `EntityPage`. For an existing installation where you want to display the links card for entity pages of kind `system` you should make the following adjustment to `packages/app/src/components/catalog/EntityPage.tsx` ```diff const systemPage = ( ... <Grid item md={6} xs={12}> <EntityCatalogGraphCard variant="gridItem" height={400} /> </Grid> <Grid item md={4} xs={12}> <EntityLinksCard /> </Grid> <Grid item md={6}> <Grid item md={8}> <EntityHasComponentsCard variant="gridItem" /> </Grid> ... ); ``` Updated dependencies @backstage/cli-common@0.1.10 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. 329ed2b9c7: Fixed routing when using React Router v6 stable. 4c5e85ddf3: Removed the dependency and setup of `react-hot-loader`, since the `@backstage/cli` now uses `swc` with `React Refresh` instead. Updated dependencies @backstage/app-defaults@1.0.6 @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/test-utils@1.2.0 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/integration-react@1.1.4 7d47def9c4: Removed dependency on `@types/jest`. eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 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`. 42918e085c: Fixed bug in the `bitbucketServer` integration where token did not take precedence over supplied username and password which is described in the documentation. f76f22c649: Improved caching around github app tokens. Tokens are now cached for 50 minutes, not 10. Calls to get app installations are also included in this cache. If you have more than one github app configured, consider adding `allowedInstallationOwners` to your apps configuration to gain the most benefit from these performance changes. Updated dependencies @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/integration@1.3.1 @backstage/config@1.0.2 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`. 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-techdocs-node@1.4.0 @backstage/catalog-model@1.1.1 @backstage/cli-common@0.1.10 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 7d47def9c4: Removed dependency on `@types/jest`. 667d917488: Updated dependency `msw` to

87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings b489de83b1: Fix parsing of ADR location which includes a trailing slash Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-search-react@1.1.0 @backstage/catalog-model@1.1.1 @backstage/integration-react@1.1.4 @backstage/plugin-adr-common@0.2.1 @backstage/plugin-search-common@1.0.1 b489de83b1: Continue processing subsequent entities when an error occurs in collator 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-adr-common@0.2.1 @backstage/plugin-search-common@1.0.1 Updated dependencies @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 @backstage/plugin-search-common@1.0.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/dev-utils@1.0.6 @backstage/test-utils@1.2.0 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 7d47def9c4: Removed dependency on `@types/jest`. 2f52e74b49: Got rid of usages of the uppercase String type d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 817f3196f6: Updated React Router dependencies to be peer dependencies. 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`. ef9ab322de: Minor API signatures cleanup c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-catalog@1.5.1 @backstage/catalog-model@1.1.1 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`. ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 d669d89206: Minor API signatures cleanup 60b85d8ade: Updated dependency `helmet` to `^6.0.0`. Please note that these policies are no longer applied by default: helmet.contentSecurityPolicy no longer sets block-all-mixed-content directive by default helmet.expectCt is no longer set by default. It can, however, be explicitly enabled. It will be removed in Helmet 7. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 8872cc735d: Fixed a bug where the database option to skip migrations was ignored. Updated dependencies @backstage/backend-common@0.15.1 @backstage/config-loader@1.1.4 @backstage/config@1.0.2 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 3f739be9d9: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. cb1cfc018b: `createRouter` now requires an additional reader: `UrlReader` argument ```diff export default async function createPlugin( env: PluginEnvironment, ): Promise<Router> { return createRouter({ logger: env.logger, config: env.config, reader:

}); } ``` Remember to check if you have already provided these settings previously. ```yaml azureDevOps: host: dev.azure.com token: my-token organization: my-company ``` ```yaml integrations: azure: host: dev.azure.com token: ${AZURE_TOKEN} ``` ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-azure-devops-common@0.3.0 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. 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`. ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/backend-common@0.15.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 1dd12349d1: Fixed broken routing by removing the wrapping `Router` from the `RoutedTabs` children. Updated dependencies @backstage/cli@0.19.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-catalog@1.5.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 8872cc735d: Fixed a bug where the database option to skip migrations was ignored. Updated dependencies @backstage/backend-common@0.15.1 @backstage/config@1.0.2 @backstage/backend-test-utils@0.1.28 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 @backstage/integration@1.3.1 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-search-react@1.1.0 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 @backstage/integration-react@1.1.4 @backstage/plugin-catalog-common@1.0.6 @backstage/plugin-search-common@1.0.1 Updated dependencies @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-bitbucket-cloud-common@0.1.3 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 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/config@1.0.2 @backstage/plugin-bitbucket-cloud-common@0.1.3 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 3c4a388537: New experimental alpha exports for use with the upcoming backend system. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 3a62594a11: Add support for including (or excluding) Github repositories by topic 287a64bf97: Added the ability to configure the host for the `GitHubEntityProvider` to use against GitHub Enterprise 91e2abbd46: Remove the duplicated `scheduleFn` initialization in `GitHubEntityProvider`. Updated dependencies @backstage/backend-plugin-api@0.1.2 @backstage/backend-common@0.15.1 @backstage/plugin-catalog-node@1.1.0 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 7fa54c3c77: Added ae-dir LDAP vendor to correctly extract DN. c54fcea9af: Now the `searchStream` method in LDAP client awaits the callbacks Updated dependencies @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 c1d32d2b76: Fixed a bug in the `MicrosoftGraphEntityProvider` that ignored the `userExpand` and `groupExpand` configuration parameters d80aab31ae: Added $select attribute to user query a246d5a9b8: Read `queryMode` from the `microsoftGraphOrg` config 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 4c82b955fc: Fix typo Updated dependencies @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-tasks@0.3.5 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-catalog-node@1.1.0 @backstage/integration@1.3.1

@backstage/catalog-model@1.1.1 @backstage/config@1.0.2 Updated dependencies @backstage/plugin-permission-common@0.6.4 @backstage/plugin-search-common@1.0.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 d669d89206: Minor API signatures cleanup 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 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/integration-react@1.1.4 817f3196f6: Updated React Router dependencies to be peer dependencies. f6033d1121: humanizeEntityRef function can now be forced to include default namespace c86741a052: Support showing counts in option labels of the `EntityTagPicker`. You can enable this by adding the `showCounts` property 7d47def9c4: Removed dependency on `@types/jest`. a6d551fad9: Properly handle free-text entity filtering in the case of empty tag arrays ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-permission-react@0.4.5 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-catalog-common@1.0.6 d669d89206: Minor API signatures cleanup Updated dependencies @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 71b7464a7c: Fixing typo in the Readme file: `'@backstage plugin-cicd-statistics-module-gitlab';` -> `'@backstage/plugin-cicd-statistics-module-gitlab';` a98f5d4c21: add the ability to add CICD default options to createGitlabApi constructor Updated dependencies @backstage/core-plugin-api@1.0.6 @backstage/catalog-model@1.1.1 @backstage/plugin-cicd-statistics@0.1.11 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 763fb81e82: Internal refactor to use more type safe code when dealing with route parameters. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 8872cc735d: Fixed a bug where the database option to skip migrations was ignored. Updated dependencies @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. 9318bf15d4: The `CostInsightsHeader`component now uses group names if available d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/catalog-model@1.1.1

817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/plugin-explore-react@0.0.21 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-plugin-api@1.0.6 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. a69ac5b63a: Upgrade `react-query:3` to `@tanstack/react-query:4` Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/integration@1.3.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 1bdb0bf24b: Modify RecentWorkflowRunsCard use constructed route instead of hardcoded route. 3f739be9d9: Minor API signatures cleanup 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 @backstage/integration-react@1.1.4 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. 2665ee4ed4: Clarified GitHub app permissions required by plugin d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 723113296b: Add optional `pullRequestLimit` prop to `EntityTeamPullRequestsCard` and `EntityTeamPullRequestsContent` to limit the number of PRs shown per repository. Excluding this prop will default the number of pull requests shown to 10 per repository (the existing functionality). Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to

bf5e9030eb: Updated dependency `msw` to `^0.45.0`. Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 d669d89206: Minor API signatures cleanup 60b85d8ade: Updated dependency `helmet` to `^6.0.0`. Please note that these policies are no longer applied by default: helmet.contentSecurityPolicy no longer sets block-all-mixed-content directive by default helmet.expectCt is no longer set by default. It can, however, be explicitly enabled. It will be removed in Helmet 7. 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 @backstage/plugin-catalog-graphql@0.3.13 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/plugin-stack-overflow@0.1.5 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 @backstage/plugin-jenkins-common@0.1.8 618c06f838: Add example on how to pass through permissions a966ed8385: Unwrap error message when getting projects 47952621dc: Extend configuration so that extra headers can be sent to jenkins instance d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. 69ec1cf39f: Updated dependency `jenkins` to `^1.0.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. e55d855a6b: Jenkins plugin works again Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-jenkins-common@0.1.8 Updated dependencies @backstage/plugin-permission-common@0.6.4 @backstage/plugin-catalog-common@1.0.6 817f3196f6: Updated React Router dependencies to be peer dependencies. f6be17460d: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 f6be17460d: Minor API signatures cleanup Updated dependencies @backstage/backend-common@0.15.1 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. 0768d6dece: add new kubernetes backend endpoints to kubernetes backend client 19a27929fb: Reset error state on success 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/plugin-kubernetes-common@0.4.2 8902c2e39d: chore: Exporting KubernetesClientProvider and everything in kubernetes-auth-translator as requested in issue #10457 a57d29d572: Adds skipMetricsLookup to the kubernetes-backend schema 0768d6dece: add new kubernetes backend endpoints to kubernetes backend client 60b85d8ade: Updated dependency `helmet` to `^6.0.0`. Please note that these policies are no longer applied by default: helmet.contentSecurityPolicy no longer sets block-all-mixed-content directive by default helmet.expectCt is no longer set by default. It can, however, be explicitly enabled. It will be removed in Helmet 7. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-kubernetes-common@0.4.2 0768d6dece: add new kubernetes backend endpoints to kubernetes backend client d669d89206: Minor API signatures cleanup Updated dependencies @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. f6be17460d: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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

@backstage/core-plugin-api@1.0.6 3f739be9d9: Minor API signatures cleanup d669d89206: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. ab6650ede9: Added an edit button to the `UserProfileCard` that is enabled when the `backstage.io/edit-url` is present, this matches how the `GroupProfileCard` works 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 2cbd533426: Uptake the `IdentityApi` change to use `getIdentity` instead of `authenticate` for retrieving the logged in users identity. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/plugin-permission-node@0.6.5 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 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 @backstage/config@1.0.2 @backstage/errors@1.1.1 9212439d15: Minor update to tests 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 @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. 817f3196f6: DEPRECATION: The `PermissionedRoute` component has been deprecated in favor of the new `RequirePermission` component. This is because the usage pattern of `PermissionedRoute` is not compatible with React Router v6 stable. Embed the type from `react-router` instead of exporting it directly. Updated dependencies @backstage/core-plugin-api@1.0.6 @backstage/config@1.0.2 @backstage/plugin-permission-common@0.6.4 f6be17460d: Minor API signatures cleanup 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 d669d89206: Minor API signatures cleanup 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 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 @backstage/backend-common@0.15.1 @backstage/plugin-scaffolder-backend@1.6.0 @backstage/integration@1.3.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-scaffolder-backend@1.6.0 @backstage/integration@1.3.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 7d47def9c4: Removed dependency on `@types/jest`. Updated dependencies @backstage/plugin-scaffolder-backend@1.6.0 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. 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

18f60427f2: Use the new `inheritParentContextIfAvailable` search context property in `SearchModal` instead of manually checking if a parent context exists, this conditional statement was previously duplicated in more than one component like in `SearchBar` as well and is now only done in ` SearchContextProvider`. Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-search-react@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-search-common@1.0.1 Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/plugin-permission-node@0.6.5 @backstage/plugin-search-backend-node@1.0.2 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-search-common@1.0.1 1bea488bd4: Updated dependency `aws-os-connection` to `^0.2.0`. ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/plugin-search-backend-node@1.0.2 @backstage/config@1.0.2 @backstage/plugin-search-common@1.0.1 3f739be9d9: Minor API signatures cleanup a1124adf5e: Fixed bug in LunrSearchEngine where stopwords in title is causing in-doc search not working Updated dependencies @backstage/backend-common@0.15.1 @backstage/backend-tasks@0.3.5 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-search-common@1.0.1 Updated dependencies @backstage/plugin-permission-common@0.6.4 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to `^0.45.0`. 8a57ffc0fa: Ensure that a stable observable is used in the shortcuts API Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 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`. b8190af939: Create a front end API. a720c44070: Support showing HTML entity references from the API response before rendering the question title to the list component. Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-home@0.4.25 @backstage/config@1.0.2 @backstage/plugin-search-common@1.0.1 79040f73f7: Now requests all questions available using pagination. Default max page is set to 100, with a configurable `maxPage` option on the collator. 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages Updated dependencies @backstage/cli@0.19.0 @backstage/config@1.0.2 @backstage/plugin-search-common@1.0.1 8872cc735d: Fixed a bug where the database option to skip migrations was ignored. 12c6a07c2a: Changed the description of the `techdocsAnnotationFactName` fact. 2e0689e536: Support for timeout in FactRetrieverRegistrationOptions 9e8e9f5243: Modify Tech insight initialization to expose FactRetrieverEngine. Enables users to trigger fact retrieval manually or reschedule retrievers on runtime. Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-tech-insights-node@0.3.4 @backstage/backend-tasks@0.3.5 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-tech-insights-node@0.3.4 @backstage/config@1.0.2 @backstage/errors@1.1.1 3f739be9d9: Minor API signatures cleanup 2e0689e536: Support for timeout in FactRetrieverRegistrationOptions Updated dependencies @backstage/backend-common@0.15.1 @backstage/backend-tasks@0.3.5 @backstage/config@1.0.2 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 817f3196f6: Updated React Router dependencies to be peer dependencies. eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 3f739be9d9: Minor API signatures cleanup 763fb81e82: Internal refactor to use more type safe code when dealing with route parameters. 7d47def9c4: Removed dependency on `@types/jest`. 817f3196f6: Updated the `TechDocsReaderPage` to be compatible with React Router v6 stable. 7a95c705fa: Fixed a bug where addons wouldn't render on sub pages when using React Route v6 stable. 667d917488: Updated dependency `msw` to `^0.47.0`. 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. bf5e9030eb: Updated dependency `msw` to

ca8d5a6eae: Use the new `SearchAutocomplete` component in the `TechDocsSearch` component to maintain consistency across search experiences and avoid code duplication. 829f14a9b0: Always update the title and sub-title when the location changes on a `TechDocs` reader page. e97d616f08: Fixed a bug where scrolling for anchors where the id starts with number didn't work for the current page. ef9ab322de: Minor API signatures cleanup Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-search-react@1.1.0 @backstage/plugin-techdocs-react@1.0.4 @backstage/integration@1.3.1 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/integration-react@1.1.4 @backstage/plugin-search-common@1.0.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 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 @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/test-utils@1.2.0 @backstage/plugin-catalog@1.5.1 @backstage/plugin-search-react@1.1.0 @backstage/plugin-techdocs-react@1.0.4 @backstage/plugin-techdocs@1.3.2 @backstage/integration-react@1.1.4 eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` 3f739be9d9: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-techdocs-react@1.0.4 @backstage/integration@1.3.1 @backstage/integration-react@1.1.4 817f3196f6: Updated React Router dependencies to be peer dependencies. Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 817f3196f6: Updated React Router dependencies to be peer dependencies. 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 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 @backstage/backend-common@0.15.1 @backstage/integration@1.3.1 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/errors@1.1.1 817f3196f6: Updated React Router dependencies to be peer dependencies. 3f739be9d9: Minor API signatures cleanup 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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: Added a `UserSettingsStorage` implementation of the `StorageApi` for use as drop-in replacement for the `WebStorage`, in conjunction with the newly created `@backstage/plugin-user-settings-backend`. Updated dependencies @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/errors@1.1.1 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-catalog-react@1.1.4 @backstage/catalog-model@1.1.1 @backstage/errors@1.1.1 3f739be9d9: Minor API signatures cleanup 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages 60b85d8ade: Updated dependency `helmet` to `^6.0.0`. Please note that these policies are no longer applied by default: helmet.contentSecurityPolicy no longer sets block-all-mixed-content directive by default helmet.expectCt is no longer set by default. It can, however, be explicitly enabled. It will be removed in Helmet 7. 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 @backstage/backend-common@0.15.1 @backstage/backend-tasks@0.3.5 @backstage/config@1.0.2 @backstage/errors@1.1.1 @backstage/backend-test-utils@0.1.28 7d47def9c4: Removed dependency on `@types/jest`. d669d89206: Minor API signatures cleanup 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 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/errors@1.1.1 Updated dependencies @backstage/cli@0.19.0 @backstage/app-defaults@1.0.6 @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/plugin-airbrake@0.3.9 @backstage/plugin-api-docs@0.8.9 @backstage/plugin-azure-devops@0.2.0 @backstage/plugin-badges@0.2.33 @backstage/plugin-catalog-graph@0.2.21 @backstage/plugin-catalog-import@0.8.12 @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-circleci@0.3.9 @backstage/plugin-cloudbuild@0.3.9 @backstage/plugin-code-coverage@0.2.2 @backstage/plugin-cost-insights@0.11.31 @backstage/plugin-explore@0.3.40 @backstage/plugin-gcp-projects@0.3.28 @backstage/plugin-github-actions@0.5.9 @backstage/plugin-graphiql@0.2.41 @backstage/plugin-home@0.4.25 @backstage/plugin-jenkins@0.7.8 @backstage/plugin-kafka@0.3.9 @backstage/plugin-kubernetes@0.7.2 @backstage/plugin-lighthouse@0.3.9 @backstage/plugin-org@0.5.9 @backstage/plugin-pagerduty@0.5.2 @backstage/plugin-permission-react@0.4.5 @backstage/plugin-rollbar@0.4.9 @backstage/plugin-scaffolder@1.6.0 @backstage/plugin-search-react@1.1.0 @backstage/plugin-search@1.0.2 @backstage/plugin-sentry@0.4.2 @backstage/plugin-shortcuts@0.3.1 @backstage/plugin-tech-insights@0.3.0 @backstage/plugin-techdocs-react@1.0.4 @backstage/plugin-techdocs@1.3.2 @backstage/plugin-todo@0.2.11 @backstage/plugin-user-settings@0.4.8 @backstage/plugin-techdocs-module-addons-contrib@1.0.4 @backstage/plugin-newrelic-dashboard@0.2.2 @backstage/plugin-dynatrace@0.2.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/integration-react@1.1.4 @backstage/plugin-apache-airflow@0.2.2 @backstage/plugin-gcalendar@0.3.5 @backstage/plugin-gocd@0.1.15 @backstage/plugin-newrelic@0.3.27 @backstage/plugin-stack-overflow@0.1.5 @backstage/plugin-tech-radar@0.5.16 @backstage/plugin-playlist@0.1.0 @backstage/plugin-catalog-common@1.0.6 @internal/plugin-catalog-customized@0.0.2 @backstage/plugin-search-common@1.0.1 Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-scaffolder-backend@1.6.0 @backstage/plugin-auth-node@0.2.5 @backstage/plugin-permission-node@0.6.5 @backstage/plugin-kubernetes-backend@0.7.2 @backstage/plugin-kafka-backend@0.2.29 @backstage/plugin-proxy-backend@0.2.30 @backstage/plugin-auth-backend@0.16.0 @backstage/integration@1.3.1 @backstage/plugin-catalog-backend@1.4.0 @backstage/plugin-azure-devops-backend@0.3.15 @backstage/plugin-search-backend-node@1.0.2 @backstage/plugin-tech-insights-node@0.3.4 @backstage/backend-tasks@0.3.5 @backstage/plugin-techdocs-backend@1.3.0 @backstage/catalog-client@1.1.0 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/plugin-permission-common@0.6.4 @backstage/plugin-scaffolder-backend-module-rails@0.4.4 @backstage/plugin-search-backend-module-pg@0.4.0 @backstage/plugin-jenkins-backend@0.1.26 @backstage/plugin-playlist-backend@0.1.0 @backstage/plugin-app-backend@0.3.36 @backstage/plugin-graphql-backend@0.1.26 @backstage/plugin-rollbar-backend@0.1.33 @backstage/plugin-code-coverage-backend@0.2.2 @backstage/plugin-permission-backend@0.5.11 @backstage/plugin-todo-backend@0.1.33 @backstage/plugin-search-backend-module-elasticsearch@1.0.2 @backstage/plugin-tech-insights-backend@0.5.2 @backstage/plugin-badges-backend@0.1.30 example-app@0.2.75 @backstage/plugin-search-backend@1.0.2 @backstage/plugin-search-common@1.0.1 @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.20 Updated dependencies @backstage/plugin-scaffolder-backend@1.6.0 @backstage/plugin-catalog-backend@1.4.0 @backstage/backend-defaults@0.1.1 Updated dependencies @backstage/cli@0.19.0 @backstage/app-defaults@1.0.6 @backstage/core-app-api@1.1.0 @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 @backstage/test-utils@1.2.0 @backstage/plugin-catalog@1.5.1 @backstage/plugin-techdocs-react@1.0.4 @backstage/plugin-techdocs@1.3.2 @backstage/catalog-model@1.1.1 @backstage/config@1.0.2 @backstage/integration-react@1.1.4 Updated dependencies @backstage/plugin-catalog-react@1.1.4 @backstage/plugin-catalog@1.5.1 Updated dependencies @backstage/core-components@0.11.1 @backstage/core-plugin-api@1.0.6 Updated dependencies @backstage/backend-common@0.15.1 @backstage/plugin-auth-node@0.2.5 @backstage/config@1.0.2 @backstage/errors@1.1.1 Updated dependencies @backstage/plugin-permission-common@0.6.4