diff --git a/.changeset/afraid-carpets-know.md b/.changeset/afraid-carpets-know.md
deleted file mode 100644
index 94a5452606..0000000000
--- a/.changeset/afraid-carpets-know.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search': patch
----
-
-Add Optional Props to Override Icon for SidebarSearch and SidebarSearchModal Component
diff --git a/.changeset/blue-queens-sniff.md b/.changeset/blue-queens-sniff.md
deleted file mode 100644
index 9a26507f92..0000000000
--- a/.changeset/blue-queens-sniff.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/app-defaults': patch
-'@backstage/core-app-api': patch
-'@backstage/core-plugin-api': patch
----
-
-Add `FetchApi` and related `fetchApiRef` which implement fetch, with an added Backstage token header when available.
diff --git a/.changeset/brave-impalas-switch.md b/.changeset/brave-impalas-switch.md
deleted file mode 100644
index 729a4ec96a..0000000000
--- a/.changeset/brave-impalas-switch.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-'@backstage/backend-common': patch
----
-
-Fixed bug in backend-common to allow passing of remote option in order to enable passing remote url in --config option. The remote option should be passed along with reloadIntervalSeconds from packages/backend/src/index.ts (Updated the file as well)
-
-These changes are needed in `packages/backend/src/index.ts` if remote URLs are desired to be passed in --config option and read and watch remote files for config.
-
-```diff
-@@ -86,7 +86,11 @@ async function main() {
- const config = await loadBackendConfig({
- argv: process.argv,
- logger,
-+ remote: {
-+ reloadIntervalSeconds: 60 * 10 // Check remote config changes every 10 minutes. Change to your desired interval in seconds
-+ }
- });
-+
- const createEnv = makeCreateEnv(config);
-
- const healthcheckEnv = useHotMemoize(module, () => createEnv('healthcheck'));
-```
diff --git a/.changeset/bright-ears-visit.md b/.changeset/bright-ears-visit.md
deleted file mode 100644
index 350cc5b094..0000000000
--- a/.changeset/bright-ears-visit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/app-defaults': patch
----
-
-Added an instance of PermissionApi to the apis included by default in createApp.
diff --git a/.changeset/chatty-wombats-buy.md b/.changeset/chatty-wombats-buy.md
new file mode 100644
index 0000000000..aa743a6a71
--- /dev/null
+++ b/.changeset/chatty-wombats-buy.md
@@ -0,0 +1,24 @@
+---
+'@backstage/create-app': patch
+---
+
+removed inline and internal CSS from index.html
+
+To make this change to an existing app, apply the following changes to the `packages/app/public/index.html` file:
+
+Remove internal style
+
+```diff
+-
+```
+
+Remove inline style from the body tag
+
+```diff
+-
++
+```
diff --git a/.changeset/config.json b/.changeset/config.json
index 067dcb5f9f..283caa6ac4 100644
--- a/.changeset/config.json
+++ b/.changeset/config.json
@@ -2,7 +2,7 @@
"$schema": "https://unpkg.com/@changesets/config@1.3.0/schema.json",
"changelog": "./backstage-changelog.js",
"commit": false,
- "linked": [["*"]],
+ "linked": [],
"access": "public",
"baseBranch": "master",
"updateInternalDependencies": "patch",
diff --git a/.changeset/cuddly-cooks-enjoy.md b/.changeset/cuddly-cooks-enjoy.md
deleted file mode 100644
index d39844e7a9..0000000000
--- a/.changeset/cuddly-cooks-enjoy.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/config-loader': patch
----
-
-In case remote.reloadIntervalSeconds is passed, it must be a valid positive value
diff --git a/.changeset/cuddly-suns-sit.md b/.changeset/cuddly-suns-sit.md
deleted file mode 100644
index f1fe16add6..0000000000
--- a/.changeset/cuddly-suns-sit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-user-settings': patch
----
-
-Fix undefined identity bug in UserSettingsProfileCard caused by using deprecated methods of the IdentityApi
diff --git a/.changeset/curly-pillows-provide.md b/.changeset/curly-pillows-provide.md
new file mode 100644
index 0000000000..e6a218233b
--- /dev/null
+++ b/.changeset/curly-pillows-provide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/test-utils': patch
+---
+
+JSON serialize and freeze values stored by the `MockStorageApi`.
diff --git a/.changeset/cyan-seahorses-film.md b/.changeset/cyan-seahorses-film.md
deleted file mode 100644
index 80a27baec0..0000000000
--- a/.changeset/cyan-seahorses-film.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-'@backstage/core-plugin-api': minor
----
-
-**BREAKING CHANGE** The `StorageApi` has received several updates that fills in gaps for some use-cases and makes it easier to avoid mistakes:
-
-- The `StorageValueChange` type has been renamed to `StorageValueSnapshot`, the `newValue` property has been renamed to `value`, the stored value type has been narrowed to `JsonValue`, and it has received a new `presence` property that is `'unknown'`, `'absent'`, or `'present'`.
-- The `get` method has been deprecated in favor of a new `snapshot` method, which returns a `StorageValueSnapshot`.
-- The `observe$` method has had its contract changed. It should now emit values when the `presence` of a key changes, this may for example happen when remotely stored values are requested on page load and the presence switches from `'unknown'` to either `'absent'` or `'present'`.
-
-The above changes have been made with deprecations in place to maintain much of the backwards compatibility for consumers of the `StorageApi`. The only breaking change is the narrowing of the stored value type, which may in some cases require the addition of an explicit type parameter to the `get` and `observe$` methods.
diff --git a/.changeset/dar-jag-gar.md b/.changeset/dar-jag-gar.md
new file mode 100644
index 0000000000..5989614101
--- /dev/null
+++ b/.changeset/dar-jag-gar.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-common': patch
+---
+
+In-memory cache clients instantiated from the same cache manager now share the same memory space.
diff --git a/.changeset/dirty-ways-learn.md b/.changeset/dirty-ways-learn.md
deleted file mode 100644
index e83fbbdfa2..0000000000
--- a/.changeset/dirty-ways-learn.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-config-schema': patch
-'@backstage/plugin-scaffolder': patch
----
-
-Fix a small browser console warning
diff --git a/.changeset/eleven-baboons-sparkle.md b/.changeset/eleven-baboons-sparkle.md
deleted file mode 100644
index e8c28af482..0000000000
--- a/.changeset/eleven-baboons-sparkle.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-react': patch
----
-
-added useOwnedEntities hook to get the list of entities of the logged-in user
diff --git a/.changeset/expor-k8s-backend-client.md b/.changeset/expor-k8s-backend-client.md
deleted file mode 100644
index b4b7bd9973..0000000000
--- a/.changeset/expor-k8s-backend-client.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': minor
----
-
-Includes `KubernetesBackendClient` in the export to allow developers to use it externally.
diff --git a/.changeset/famous-icons-pump.md b/.changeset/famous-icons-pump.md
deleted file mode 100644
index c2a5f07292..0000000000
--- a/.changeset/famous-icons-pump.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-'@backstage/plugin-permission-react': minor
----
-
-Breaking Changes:
-
-- Remove "api" suffixes from constructor parameters in IdentityPermissionApi.create
-
-```diff
- const { config, discovery, identity } = options;
-- const permissionApi = IdentityPermissionApi.create({
-- configApi: config,
-- discoveryApi: discovery,
-- identityApi: identity
-- });
-+ const permissionApi = IdentityPermissionApi.create({ config, discovery, identity });
-```
diff --git a/.changeset/fast-peaches-drop.md b/.changeset/fast-peaches-drop.md
deleted file mode 100644
index 29c3a5755f..0000000000
--- a/.changeset/fast-peaches-drop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Added description to components: BottomLink, Breadcrumbs, BrokenImageIcon, CardTab, Content, ContentHeader, EmptyState, ErrorPage, FeatureCalloutCircular, Gauge, GaugeCard, Header, HeaderIconLinkRow, HeaderLabel, HeaderTabs, HorizontalScrollGrid, InfoCard, IntroCard
diff --git a/.changeset/fluffy-grapes-decide.md b/.changeset/fluffy-grapes-decide.md
deleted file mode 100644
index 17a6cc965f..0000000000
--- a/.changeset/fluffy-grapes-decide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Added peerPluginDependencies option to experimentalInstallationRecipe for install command to install plugins it depends on.
diff --git a/.changeset/fluffy-toys-tease.md b/.changeset/fluffy-toys-tease.md
new file mode 100644
index 0000000000..f20eaebb2c
--- /dev/null
+++ b/.changeset/fluffy-toys-tease.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-tech-insights': minor
+---
+
+fixes api auth in tech-insights plugin
diff --git a/.changeset/fresh-months-approve.md b/.changeset/fresh-months-approve.md
deleted file mode 100644
index c2da09daf6..0000000000
--- a/.changeset/fresh-months-approve.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-tech-radar': minor
----
-
-Add new property to enable open links in a new window/tab
diff --git a/.changeset/friendly-kids-mix.md b/.changeset/friendly-kids-mix.md
deleted file mode 100644
index b59209290c..0000000000
--- a/.changeset/friendly-kids-mix.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/plugin-tech-insights': patch
-'@backstage/plugin-tech-insights-backend-module-jsonfc': patch
----
-
-RunChecks endpoint now handles missing retriever data in checks. Instead of
-showing server errors, the checks will be shown for checks whose retrievers have
-data, and a warning will be shown if no checks are returned.
diff --git a/.changeset/funny-chefs-guess.md b/.changeset/funny-chefs-guess.md
deleted file mode 100644
index 66824892f2..0000000000
--- a/.changeset/funny-chefs-guess.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-Fixed bug in OwnershipCard component where text wasn't correctly pluralized
diff --git a/.changeset/gentle-humans-hope.md b/.changeset/gentle-humans-hope.md
deleted file mode 100644
index b8c337cec9..0000000000
--- a/.changeset/gentle-humans-hope.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend-module-rails': patch
----
-
-Add new options to rails new (force and skipTests)
diff --git a/.changeset/gold-seas-wave.md b/.changeset/gold-seas-wave.md
deleted file mode 100644
index ec0c6451b7..0000000000
--- a/.changeset/gold-seas-wave.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-common': minor
----
-
-Create catalog-common and add catalog permissions.
diff --git a/.changeset/good-fans-dance.md b/.changeset/good-fans-dance.md
deleted file mode 100644
index a24b467c01..0000000000
--- a/.changeset/good-fans-dance.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-bazaar': patch
-'@backstage/plugin-bazaar-backend': patch
----
-
-made the linkage between a Bazaar project to a catalog Entity optional
diff --git a/.changeset/gorgeous-beers-teach.md b/.changeset/gorgeous-beers-teach.md
deleted file mode 100644
index 014398a5be..0000000000
--- a/.changeset/gorgeous-beers-teach.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-app-api': minor
----
-
-Updated `WebStorageApi` to reflect the `StorageApi` changes in `@backstage/core-plugin-api`.
diff --git a/.changeset/green-timers-film.md b/.changeset/green-timers-film.md
deleted file mode 100644
index be94b13f0d..0000000000
--- a/.changeset/green-timers-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/test-utils': minor
----
-
-Updated `MockStorageApi` to reflect the `StorageApi` changes in `@backstage/core-plugin-api`.
diff --git a/.changeset/hip-doors-joke.md b/.changeset/hip-doors-joke.md
deleted file mode 100644
index 8757d0b2ee..0000000000
--- a/.changeset/hip-doors-joke.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-common': patch
----
-
-Updated the `ReadTreeResponse` documentation to clarify that the caller of `dir()` is responsible for removing the directory after use.
diff --git a/.changeset/itchy-grapes-think.md b/.changeset/itchy-grapes-think.md
deleted file mode 100644
index c453b24922..0000000000
--- a/.changeset/itchy-grapes-think.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-Deprecated the `CatalogClientWrapper` class.
-
-The default implementation of `catalogApiRef` that this plugin exposes, is now powered by the new `fetchApiRef`. The default implementation of _that_ API, in turn, has the ability to inject the user's Backstage token in requests in a similar manner to what the deprecated `CatalogClientWrapper` used to do. The latter has therefore been taken out of the default catalog API implementation.
-
-If you use a custom `fetchApiRef` implementation that does NOT issue tokens, or use a custom `catalogApiRef` implementation which does NOT use the default `fetchApiRef`, you can still for some time wrap your catalog API in this class to get back the old behavior:
-
-```ts
-// Add this to your packages/app/src/plugins.ts if you want to get back the old
-// catalog client behavior:
-createApiFactory({
- api: catalogApiRef,
- deps: { discoveryApi: discoveryApiRef, identityApi: identityApiRef },
- factory: ({ discoveryApi, identityApi }) =>
- new CatalogClientWrapper({
- client: new CatalogClient({ discoveryApi }),
- identityApi,
- }),
-}),
-```
-
-But do consider migrating to making use of the `fetchApiRef` as soon as convenient, since the wrapper class will be removed in a future release.
diff --git a/.changeset/lazy-files-check.md b/.changeset/lazy-files-check.md
deleted file mode 100644
index 54c53be434..0000000000
--- a/.changeset/lazy-files-check.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-'@backstage/backend-common': minor
----
-
-Auto-generate secrets for backend-to-backend auth in local development environments.
-
-When NODE_ENV is 'development', the ServerTokenManager will now generate a secret for backend-to-backend auth to make it simpler to work locally on Backstage instances that use backend-to-backend auth. For production deployments, a secret must still be manually configured as described in [the backend-to-backend auth tutorial](https://backstage.io/docs/tutorials/backend-to-backend-auth).
-
-After the change, the static `fromConfig` method on the `ServerTokenManager` requires a logger.
-
-```diff
-- const tokenManager = ServerTokenManager.fromConfig(config);
-+ const tokenManager = ServerTokenManager.fromConfig(config, { logger: root });
-```
diff --git a/.changeset/light-singers-double.md b/.changeset/light-singers-double.md
new file mode 100644
index 0000000000..e21017373d
--- /dev/null
+++ b/.changeset/light-singers-double.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Fix issue with plugin:serve for Plugins not using Lerna monorepo.
diff --git a/.changeset/long-waves-hear.md b/.changeset/long-waves-hear.md
new file mode 100644
index 0000000000..8decec294b
--- /dev/null
+++ b/.changeset/long-waves-hear.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+remove inline CSS from serve_index.html
diff --git a/.changeset/lovely-drinks-kiss.md b/.changeset/lovely-drinks-kiss.md
deleted file mode 100644
index f343888920..0000000000
--- a/.changeset/lovely-drinks-kiss.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/catalog-client': patch
----
-
-Add the ability to supply a custom `fetchApi`. In the default frontend app setup, this will use the `fetchApiRef` implementation.
diff --git a/.changeset/lovely-toys-wonder.md b/.changeset/lovely-toys-wonder.md
deleted file mode 100644
index ec3cc2764c..0000000000
--- a/.changeset/lovely-toys-wonder.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-EntityPicker can require an existing entity be selected by disallowing arbitrary values
diff --git a/.changeset/lucky-bats-reflect.md b/.changeset/lucky-bats-reflect.md
new file mode 100644
index 0000000000..ad3171382e
--- /dev/null
+++ b/.changeset/lucky-bats-reflect.md
@@ -0,0 +1,9 @@
+---
+'@backstage/backend-common': patch
+'@backstage/plugin-catalog': patch
+'@backstage/plugin-catalog-backend': patch
+'@backstage/plugin-scaffolder': patch
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Uptake changes to the GitHub Credentials Provider interface.
diff --git a/.changeset/many-trees-happen.md b/.changeset/many-trees-happen.md
deleted file mode 100644
index f29c11fb22..0000000000
--- a/.changeset/many-trees-happen.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/config-loader': minor
----
-
-Removed deprecated option `env` from `LoadConfigOptions` and associated tests
diff --git a/.changeset/modern-planets-fry.md b/.changeset/modern-planets-fry.md
deleted file mode 100644
index 2da39473a1..0000000000
--- a/.changeset/modern-planets-fry.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-newrelic-dashboard': patch
----
-
-Created a New Plugin , which imports dashboard links and snapshots from New Relic
diff --git a/.changeset/moody-scissors-yell.md b/.changeset/moody-scissors-yell.md
deleted file mode 100644
index deb06b3c6f..0000000000
--- a/.changeset/moody-scissors-yell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-home': patch
----
-
-Fix undefined identity bug in `WelcomeTitle` caused by using deprecated methods of the IdentityApi
diff --git a/.changeset/neat-insects-ring.md b/.changeset/neat-insects-ring.md
new file mode 100644
index 0000000000..a46b6d44e3
--- /dev/null
+++ b/.changeset/neat-insects-ring.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-techdocs': patch
+---
+
+Add the techdocs.sanitizer.allowedIframeHosts config.
+This config allows all iframes which have the host of the attribute src in the 'allowedIframehosts' list to be displayed in the documentation.
diff --git a/.changeset/neat-stingrays-decide.md b/.changeset/neat-stingrays-decide.md
deleted file mode 100644
index f339d7ded6..0000000000
--- a/.changeset/neat-stingrays-decide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/test-utils': minor
----
-
-Removed deprecated `Keyboard` class which has been superseded by `@testing-library/user-event#userEvent`
diff --git a/.changeset/new-suns-agree.md b/.changeset/new-suns-agree.md
deleted file mode 100644
index c93bb1ca12..0000000000
--- a/.changeset/new-suns-agree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-rollbar-backend': patch
----
-
-Bump `axios`
diff --git a/.changeset/new-tips-shop.md b/.changeset/new-tips-shop.md
new file mode 100644
index 0000000000..3ab4e817d0
--- /dev/null
+++ b/.changeset/new-tips-shop.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+remove internal and inline CSS from index.html
diff --git a/.changeset/new-waves-rule.md b/.changeset/new-waves-rule.md
deleted file mode 100644
index 7470a1d08e..0000000000
--- a/.changeset/new-waves-rule.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/core-app-api': minor
----
-
-- Removed deprecated definition `createApp` from `@backstage/core-app-api` which has been replaced by `@backstage/app-defaults#createApp`
-- Removed deprecated type `BackstagePluginWithAnyOutput`
-- Removed deprecated constructors for `GithubAuth`, `OAuth2`, and `SamlAuth` as the `create` method should be used instead
diff --git a/.changeset/nice-apricots-grow.md b/.changeset/nice-apricots-grow.md
deleted file mode 100644
index 290041091d..0000000000
--- a/.changeset/nice-apricots-grow.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/core-plugin-api': minor
----
-
-- Removed deprecated option `description` from `ApiRefConfig`
-- Removed descriptions from all plugin API refs
-- Removed deprecated parameters `path`, `icon`, and `title` in `createRouteRef`
-- Removed deprecated types `Error` and `ErrorContext` from `ErrorApi`
diff --git a/.changeset/nice-feet-hope.md b/.changeset/nice-feet-hope.md
deleted file mode 100644
index cfc660020f..0000000000
--- a/.changeset/nice-feet-hope.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-The `index.html` template of the app has been updated to use the new `config` global provided by the Backstage CLI.
-
-To apply this change to an existing app, make the following changes to `packages/app/public/index.html`:
-
-```diff
-- <%= app.title %>
-+ <%= config.getString('app.title') %>
-```
-
-```diff
-- <% if (app.googleAnalyticsTrackingId && typeof app.googleAnalyticsTrackingId === 'string') { %>
-+ <% if (config.has('app.googleAnalyticsTrackingId')) { %>
-
-```
-
-```diff
-- gtag('config', '<%= app.googleAnalyticsTrackingId %>');
-+ gtag(
-+ 'config',
-+ '<%= config.getString("app.googleAnalyticsTrackingId") %>',
-+ );
-```
diff --git a/.changeset/olive-cameras-rush.md b/.changeset/olive-cameras-rush.md
deleted file mode 100644
index 9a83aea699..0000000000
--- a/.changeset/olive-cameras-rush.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/test-utils': minor
----
-
-Removed deprecated `msw` definition which was replaced by calling `setupRequestMockHandlers` directly
diff --git a/.changeset/perfect-apricots-raise.md b/.changeset/perfect-apricots-raise.md
deleted file mode 100644
index d7a40e6343..0000000000
--- a/.changeset/perfect-apricots-raise.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/config-loader': minor
----
-
-Removed deprecated option `configPaths` as it has been superseded by `configTargets`
diff --git a/.changeset/perfect-buses-collect.md b/.changeset/perfect-buses-collect.md
deleted file mode 100644
index e0df504087..0000000000
--- a/.changeset/perfect-buses-collect.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Added OwnedEntityPicker field which displays Owned Entities in options
diff --git a/.changeset/purple-grapes-kick.md b/.changeset/purple-grapes-kick.md
deleted file mode 100644
index 9d64d4e17c..0000000000
--- a/.changeset/purple-grapes-kick.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-'@backstage/cli': patch
----
-
-The frontend configuration is now available as a `config` global during templating of the `index.html` file. This allows for much more flexibility as the values available during templating is not longer hardcoded to a fixed set of values.
-
-For example, to access the app title, you would now do the following:
-
-```html
-<%= config.getString('app.title') %>
-```
-
-Along with this change, usage of the existing `app.` values has been deprecated and will be removed in a future release. The general pattern for migrating existing usage is to replace `<%= app. %>` with `<%= config.getString('app.') %>`, although in some cases you may need to use for example `config.has('app.')` or `config.getOptionalString('app.')` instead.
-
-The [`@backstage/create-app` changelog](https://github.com/backstage/backstage/blob/master/packages/create-app/CHANGELOG.md#049) also contains more details how to migrate existing usage.
diff --git a/.changeset/rare-ladybugs-invite.md b/.changeset/rare-ladybugs-invite.md
deleted file mode 100644
index 4153363b9c..0000000000
--- a/.changeset/rare-ladybugs-invite.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Fixed the fallback identity population to correctly generate an entity reference for `userEntityRef` if no token is provided.
diff --git a/.changeset/real-geckos-work.md b/.changeset/real-geckos-work.md
deleted file mode 100644
index 549445e079..0000000000
--- a/.changeset/real-geckos-work.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-'@backstage/plugin-permission-common': minor
----
-
-- Add `PermissionAuthorizer` interface matching `PermissionClient` to allow alternative implementations like the `ServerPermissionClient` in @backstage/plugin-permission-node.
-
-Breaking Changes:
-
-- Remove "api" suffixes from constructor parameters in PermissionClient
-
-```diff
- const { config, discovery } = options;
-- const permissionClient = new PermissionClient({ discoveryApi: discovery, configApi: config });
-+ const permissionClient = new PermissionClient({ discovery, config });
-```
diff --git a/.changeset/short-rockets-remain.md b/.changeset/short-rockets-remain.md
deleted file mode 100644
index 603caec71a..0000000000
--- a/.changeset/short-rockets-remain.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/app-defaults': patch
-'@backstage/core-app-api': minor
-'@backstage/core-plugin-api': minor
----
-
-- Removed deprecation configuration option `theme` from `AppTheme` of the `AppThemeApi`
-- Removed reference to `theme` in the `app-defaults` default `AppTheme`
-- Removed logic in `AppThemeProvider` that creates `ThemeProvider` from `appTheme.theme`
diff --git a/.changeset/short-schools-heal.md b/.changeset/short-schools-heal.md
new file mode 100644
index 0000000000..3976ea3a0c
--- /dev/null
+++ b/.changeset/short-schools-heal.md
@@ -0,0 +1,13 @@
+---
+'@backstage/integration': minor
+---
+
+Create an interface for the GitHub credentials provider in order to support providing implementations.
+
+We have changed the name of the `GithubCredentialsProvider` to `SingleInstanceGithubCredentialsProvider`.
+
+`GithubCredentialsProvider` is now an interface that maybe implemented to provide a custom mechanism to retrieve GitHub credentials.
+
+In a later release we will support configuring URL readers, scaffolder tasks, and processors with customer GitHub credentials providers.
+
+If you want to uptake this release, you will need to replace all references to `GithubCredentialsProvider.create` with `SingleInstanceGithubCredentialsProvider.create`.
diff --git a/.changeset/silver-books-clean.md b/.changeset/silver-books-clean.md
deleted file mode 100644
index 9685cc2119..0000000000
--- a/.changeset/silver-books-clean.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/catalog-client': patch
----
-
-Add support for passing paging parameters to the getEntities call of the catalog client
diff --git a/.changeset/sixty-pandas-switch.md b/.changeset/sixty-pandas-switch.md
deleted file mode 100644
index 91e767e154..0000000000
--- a/.changeset/sixty-pandas-switch.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/plugin-search-backend': minor
----
-
-Search result location filtering
-
-This change introduces a filter for search results based on their location protocol. The intention is to filter out unsafe or
-malicious values before they can be consumed by the frontend. By default locations must be http/https URLs (or paths).
diff --git a/.changeset/slimy-snakes-drop.md b/.changeset/slimy-snakes-drop.md
new file mode 100644
index 0000000000..0e1d378454
--- /dev/null
+++ b/.changeset/slimy-snakes-drop.md
@@ -0,0 +1,41 @@
+---
+'@backstage/create-app': patch
+---
+
+Add a `scheduler` to the plugin environment, which can schedule collaborative tasks across backends. To apply the same change in your backend, follow the steps below.
+
+First install the package:
+
+```shell
+# From the Backstage repository root
+cd packages/backend
+yarn add @backstage/backend-tasks
+```
+
+Add the scheduler to your plugin environment type:
+
+```diff
+ // In packages/backend/src/types.ts
++import { PluginTaskScheduler } from '@backstage/backend-tasks';
+
+ export type PluginEnvironment = {
++ scheduler: PluginTaskScheduler;
+```
+
+And finally make sure to add such an instance to each plugin's environment:
+
+```diff
+ // In packages/backend/src/index.ts
++import { TaskScheduler } from '@backstage/backend-tasks';
+
+ function makeCreateEnv(config: Config) {
+ // ...
++ const taskScheduler = TaskScheduler.fromConfig(config);
+
+ return (plugin: string): PluginEnvironment => {
+ // ...
++ const scheduler = taskScheduler.forPlugin(plugin);
+ return {
++ scheduler,
+ // ...
+```
diff --git a/.changeset/smooth-news-melt.md b/.changeset/smooth-news-melt.md
deleted file mode 100644
index deb745a46a..0000000000
--- a/.changeset/smooth-news-melt.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Do not `setState` when unmounted in `OverflowTooltip`
diff --git a/.changeset/soft-scissors-own.md b/.changeset/soft-scissors-own.md
deleted file mode 100644
index e57a018d50..0000000000
--- a/.changeset/soft-scissors-own.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'embedded-techdocs-app': patch
----
-
-The `index.html` template was updated to use the new `config` global.
diff --git a/.changeset/techdocs-sakta-vi-gar.md b/.changeset/techdocs-sakta-vi-gar.md
deleted file mode 100644
index 183d90300b..0000000000
--- a/.changeset/techdocs-sakta-vi-gar.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-backend': patch
----
-
-Fixed a bug preventing cache from being enabled in TechDocs "recommended" deployment mode.
diff --git a/.changeset/ten-candles-call.md b/.changeset/ten-candles-call.md
deleted file mode 100644
index 8907da06bd..0000000000
--- a/.changeset/ten-candles-call.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/core-components': patch
-'@backstage/plugin-scaffolder': patch
----
-
-In @backstage/plugin-scaffolder - When user will have one option available in hostUrl or owner - autoselect and select component should be readonly.
-
-in @backstage/core-components - Select component has extended API with few more props: native : boolean, disabled: boolean. native - if set to true - Select component will use native browser select picker (not rendered by Material UI lib ).
-disabled - if set to true - action on component will not be possible.
diff --git a/.changeset/thick-deers-trade.md b/.changeset/thick-deers-trade.md
deleted file mode 100644
index 9b023d709a..0000000000
--- a/.changeset/thick-deers-trade.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-'@backstage/core-components': patch
-'@backstage/plugin-catalog': patch
-'@backstage/plugin-circleci': patch
-'@backstage/plugin-cloudbuild': patch
-'@backstage/plugin-github-actions': patch
-'@backstage/plugin-gitops-profiles': patch
-'@backstage/plugin-jenkins': patch
-'@backstage/plugin-lighthouse': patch
-'@backstage/plugin-org': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-search': patch
-'@backstage/plugin-sentry': patch
-'@backstage/plugin-sonarqube': patch
----
-
-Prefer using `Link` from `@backstage/core-components` rather than material-UI.
diff --git a/.changeset/twenty-tigers-smash.md b/.changeset/twenty-tigers-smash.md
deleted file mode 100644
index 3ad694fbba..0000000000
--- a/.changeset/twenty-tigers-smash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-jenkins-backend': patch
----
-
-feature: add crumbIssuer option to Jenkins (optional) configuration, improve the UI to show a notification after executing the action re-build
diff --git a/.changeset/twenty-tigers-ymash.md b/.changeset/twenty-tigers-ymash.md
deleted file mode 100644
index c3e03ba75d..0000000000
--- a/.changeset/twenty-tigers-ymash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-jenkins': patch
----
-
-feature: add crumbIssuer option to Jenkins (optional) configuration, improve the UI to show a notification after executing the action re-build
diff --git a/.changeset/unlucky-wolves-reply.md b/.changeset/unlucky-wolves-reply.md
deleted file mode 100644
index ac42b59abb..0000000000
--- a/.changeset/unlucky-wolves-reply.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Add DescriptionField override to support Markdown
diff --git a/.changeset/wet-bikes-pull.md b/.changeset/wet-bikes-pull.md
deleted file mode 100644
index 1c1c98b253..0000000000
--- a/.changeset/wet-bikes-pull.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-permission-node': patch
----
-
-Add `ServerPermissionClient`, which implements `PermissionAuthorizer` from @backstage/plugin-permission-common. This implementation skips authorization entirely when the supplied token is a valid backend-to-backend token, thereby allowing backend-to-backend systems to communicate without authorization.
-
-The `ServerPermissionClient` should always be used over the standard `PermissionClient` in plugin backends.
diff --git a/.changeset/wise-melons-hope.md b/.changeset/wise-melons-hope.md
deleted file mode 100644
index 24a615a7bc..0000000000
--- a/.changeset/wise-melons-hope.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-app-api': patch
----
-
-Schema-validate local storage cached session info on load
diff --git a/.changeset/young-dodos-bake.md b/.changeset/young-dodos-bake.md
deleted file mode 100644
index f620c6a1a4..0000000000
--- a/.changeset/young-dodos-bake.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-plugin-api': minor
----
-
-Removed deprecated types `ApiRefType` and `ApiRefsToTypes`
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 9cc5a2378e..a587419d50 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -43,3 +43,4 @@
/.changeset/techdocs-* @backstage/techdocs-core
/cypress/src/integration/plugins/techdocs.spec.ts @backstage/techdocs-core
/plugins/apache-airflow @backstage/reviewers @cmpadden
+/plugins/newrelic-dashboard @backstage/reviewers @mufaddal7
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 500dbb7559..a2194fd744 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -76,3 +76,5 @@
| [Mosaico](https://www.mosaico.com.br/) | [Wédney Yuri](https://github.com/wedneyyuri),[@tino.milton](https://github.com/miltonjacomini) | A centralized service catalog of our documentation for our service engineers. |
| [Mox Bank](https://www.mox.com/) | [Nick Laqua](https://github.com/nick-laqua-dragon), [Gauthier Roebroeck](https://github.com/gauthier-roebroeck-mox) | "Single pane of glass" developer portal for providing a best-in-class developer experience to our product teams and making Mox the best tech environment in Hongkong 🥰🚀 |
| [Keyloop](https://www.keyloop.com/) | [Andre Wanlin](https://github.com/awanlin) | Future-motive Developer Portal to help our teams create technology to make everything about buying and owning a car better. 🚗 |
+| [Simply Business](https://sbtech.simplybusiness.co.uk/) | [@addersuk](https://github.com/addersuk), [@LightningStairs](https://github.com/LightningStairs), [@punitcse](https://github.com/punitcse), [@moltenice](https://github.com/moltenice) | Central developer portal to access everything a developer needs such as docs, internal service catalog, and the ability to quickly create a new service from a template. Internally developed Backstage plugins allow us to customise the experience to how we work. |
+| [Overwolf](https://www.overwolf.com) | [@tomwolfgang](https://github.com/tomwolfgang) | Dev portal - software catalog, tech-docs, scaffolding |
diff --git a/contrib/chart/backstage/Chart.yaml b/contrib/chart/backstage/Chart.yaml
index 8aeab9be3e..9154368475 100644
--- a/contrib/chart/backstage/Chart.yaml
+++ b/contrib/chart/backstage/Chart.yaml
@@ -5,7 +5,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
-version: 0.1.1
+version: 0.1.2
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
diff --git a/contrib/chart/backstage/templates/ingress.yaml b/contrib/chart/backstage/templates/ingress.yaml
index 9340467800..3ec4990561 100644
--- a/contrib/chart/backstage/templates/ingress.yaml
+++ b/contrib/chart/backstage/templates/ingress.yaml
@@ -40,7 +40,7 @@ spec:
servicePort: 80
{{/* Route the backend inside the same hostname as the frontend when they are the same */}}
{{- if eq $frontendUrl.host $backendUrl.host}}
- - path: /api
+ - path: /api/
backend:
serviceName: {{ include "backend.serviceName" . }}
servicePort: 80
diff --git a/docs/features/techdocs/how-to-guides.md b/docs/features/techdocs/how-to-guides.md
index 8ff486af37..d9a8ffb93a 100644
--- a/docs/features/techdocs/how-to-guides.md
+++ b/docs/features/techdocs/how-to-guides.md
@@ -421,3 +421,24 @@ folder (/docs) or replace the content in this file.
> on how you have configured your `template.yaml`
Done! You now have support for TechDocs in your own software template!
+
+## how to enable iframes in TechDocs
+
+Techdocs uses the [DOMPurify](https://github.com/cure53/DOMPurify) to sanitizes
+HTML and prevents XSS attacks
+
+It's possible to allow some iframes based on a list of allowed hosts. To do
+this, add the allowed hosts in the `techdocs.sanitizer.allowedIframeHosts`
+configuration of your `app-config.yaml`
+
+E.g.
+
+```yaml
+techdocs:
+ sanitizer:
+ allowedIframeHosts:
+ - drive.google.com
+```
+
+This way, all iframes where the host of src attribute is in the
+`sanitizer.allowedIframeHosts` list will be displayed
diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md
index bcb792e7aa..55285e7f4e 100644
--- a/docs/getting-started/configuration.md
+++ b/docs/getting-started/configuration.md
@@ -215,7 +215,7 @@ days for expiration. If you have a hard time picking a number, we suggest to go
for 7 days, it's a lucky number.