diff --git a/.changeset/afraid-mangos-sip.md b/.changeset/afraid-mangos-sip.md
deleted file mode 100644
index 5cf1b72dc5..0000000000
--- a/.changeset/afraid-mangos-sip.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': patch
----
-
-Add support to fetch data for Stateful Sets and display an accordion in the same way as with Deployments
diff --git a/.changeset/beige-apricots-enjoy.md b/.changeset/beige-apricots-enjoy.md
deleted file mode 100644
index bd1f932454..0000000000
--- a/.changeset/beige-apricots-enjoy.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-tech-insights-backend': patch
----
-
-Updated tech-insights fetch/latest endpoint to return the actual latest row based on the timestamp
diff --git a/.changeset/beige-deers-remember.md b/.changeset/beige-deers-remember.md
deleted file mode 100644
index 4fcba4f0c6..0000000000
--- a/.changeset/beige-deers-remember.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-cost-insights': patch
----
-
-Add missing `export` in configuration schema.
diff --git a/.changeset/beige-dots-bathe.md b/.changeset/beige-dots-bathe.md
deleted file mode 100644
index 3d8f34f1db..0000000000
--- a/.changeset/beige-dots-bathe.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Fixes review mask in `MultistepJsonForm` to work as documented. `show: true` no longer needed when mask is set.
diff --git a/.changeset/beige-horses-scream.md b/.changeset/beige-horses-scream.md
new file mode 100644
index 0000000000..2034491108
--- /dev/null
+++ b/.changeset/beige-horses-scream.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-github-pull-requests-board': patch
+---
+
+Fix bug on fetching teams repositories where were being filtered by type service unnecessarily
diff --git a/.changeset/blue-roses-give.md b/.changeset/blue-roses-give.md
deleted file mode 100644
index 2479c33e46..0000000000
--- a/.changeset/blue-roses-give.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/plugin-catalog-react': patch
----
-
-Accessibility updates:
-
-- Wrapped the `EntityLifecyclePicker`, `EntityOwnerPicker`, `EntityTagPicker`, in `label` elements
-- Changed group name `Typography` component to `span` (from default `h6`), added `aria-label` to the `List` component, and `role` of `menuitem` to the container of the `MenuItem` component
diff --git a/.changeset/breezy-poems-grab.md b/.changeset/breezy-poems-grab.md
new file mode 100644
index 0000000000..ac250b9c7e
--- /dev/null
+++ b/.changeset/breezy-poems-grab.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-tech-insights-backend': patch
+---
+
+TechInsightsBackend: Added missing 'scheduler' to code examples
diff --git a/.changeset/breezy-seas-exist.md b/.changeset/breezy-seas-exist.md
new file mode 100644
index 0000000000..2b061f11a8
--- /dev/null
+++ b/.changeset/breezy-seas-exist.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+The template editor now shows the cause of request errors that happen during a dry-run.
diff --git a/.changeset/bright-balloons-hide.md b/.changeset/bright-balloons-hide.md
new file mode 100644
index 0000000000..5163e72dc1
--- /dev/null
+++ b/.changeset/bright-balloons-hide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Change BackstageIconLinkVertical style to use pallette instead of explicit color
diff --git a/.changeset/calm-experts-buy.md b/.changeset/calm-experts-buy.md
new file mode 100644
index 0000000000..d95844e298
--- /dev/null
+++ b/.changeset/calm-experts-buy.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-node': minor
+---
+
+Added local publishing target directory `config`: `techdocs.publisher.local.publishDirectory`
diff --git a/.changeset/calm-timers-wonder.md b/.changeset/calm-timers-wonder.md
deleted file mode 100644
index 516e2ae9ce..0000000000
--- a/.changeset/calm-timers-wonder.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Fix the public path configuration of the frontend app build so that a trailing `/` is always appended when needed.
diff --git a/.changeset/chilled-mirrors-grab.md b/.changeset/chilled-mirrors-grab.md
new file mode 100644
index 0000000000..ecc95680e2
--- /dev/null
+++ b/.changeset/chilled-mirrors-grab.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-common': patch
+---
+
+Fix parsing of S3 URLs for the default region.
diff --git a/.changeset/curly-candles-battle.md b/.changeset/curly-candles-battle.md
new file mode 100644
index 0000000000..9a4d850fd1
--- /dev/null
+++ b/.changeset/curly-candles-battle.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Bumped `codemirror` dependencies to `v6.0.0`.
diff --git a/.changeset/curvy-weeks-matter.md b/.changeset/curvy-weeks-matter.md
new file mode 100644
index 0000000000..a0a9c43076
--- /dev/null
+++ b/.changeset/curvy-weeks-matter.md
@@ -0,0 +1,8 @@
+---
+'@backstage/backend-common': patch
+'@backstage/catalog-model': patch
+'@backstage/core-components': patch
+'@backstage/plugin-techdocs-react': patch
+---
+
+Updated JSDoc to be MDX compatible.
diff --git a/.changeset/dry-tables-sniff.md b/.changeset/dry-tables-sniff.md
deleted file mode 100644
index 3c938935d6..0000000000
--- a/.changeset/dry-tables-sniff.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-azure': patch
----
-
-Add a new provider `AzureDevOpsEntityProvider` as replacement for `AzureDevOpsDiscoveryProcessor`.
-
-In order to migrate from the `AzureDevOpsDiscoveryProcessor` you need to apply
-the following changes:
-
-**Before:**
-
-```yaml
-# app-config.yaml
-
-catalog:
- locations:
- - type: azure-discovery
- target: https://dev.azure.com/myorg/myproject/_git/service-*?path=/catalog-info.yaml
-```
-
-```ts
-/* packages/backend/src/plugins/catalog.ts */
-
-import { AzureDevOpsDiscoveryProcessor } from '@backstage/plugin-catalog-backend-module-azure';
-
-const builder = await CatalogBuilder.create(env);
-/** ... other processors ... */
-builder.addProcessor(new AzureDevOpsDiscoveryProcessor(env.reader));
-```
-
-**After:**
-
-```yaml
-# app-config.yaml
-
-catalog:
- providers:
- azureDevOps:
- anyProviderId:
- host: selfhostedazure.yourcompany.com # This is only really needed for on-premise user, defaults to dev.azure.com
- organization: myorg # For on-premise this would be your Collection
- project: myproject
- repository: service-*
- path: /catalog-info.yaml
-```
-
-```ts
-/* packages/backend/src/plugins/catalog.ts */
-
-import { AzureDevOpsEntityProvider } from '@backstage/plugin-catalog-backend-module-azure';
-
-const builder = await CatalogBuilder.create(env);
-/** ... other processors and/or providers ... */
-builder.addEntityProvider(
- AzureDevOpsEntityProvider.fromConfig(env.config, {
- logger: env.logger,
- schedule: env.scheduler.createScheduledTaskRunner({
- frequency: { minutes: 30 },
- timeout: { minutes: 3 },
- }),
- }),
-);
-```
-
-Visit [https://backstage.io/docs/integrations/azure/discovery](https://backstage.io/docs/integrations/azure/discovery) for more details and options on configuration.
diff --git a/.changeset/eight-ducks-beg.md b/.changeset/eight-ducks-beg.md
deleted file mode 100644
index ed61c305b2..0000000000
--- a/.changeset/eight-ducks-beg.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-pagerduty': minor
----
-
-**Breaking**: Use identityApi to provide auth token for pagerduty API calls.
diff --git a/.changeset/eleven-mice-collect.md b/.changeset/eleven-mice-collect.md
new file mode 100644
index 0000000000..66c4591d8e
--- /dev/null
+++ b/.changeset/eleven-mice-collect.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': minor
+---
+
+Added a new `/v2/dry-run` endpoint that allows for a synchronous dry run of a provided template. A `supportsDryRun` option has been added to `createTemplateAction`, which signals whether the action should be executed during dry runs. When enabled, the action context will have the new `isDryRun` property set to signal if the action is being executed during a dry run.
diff --git a/.changeset/fair-grapes-joke.md b/.changeset/fair-grapes-joke.md
deleted file mode 100644
index 8ab6516833..0000000000
--- a/.changeset/fair-grapes-joke.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Register `TechDocs` addons on catalog entity pages, follow the steps below to add them manually:
-
-```diff
-// packages/app/src/components/catalog/EntityPage.tsx
-
-+ import { TechDocsAddons } from '@backstage/plugin-techdocs-react';
-+ import {
-+ ReportIssue,
-+ } from '@backstage/plugin-techdocs-module-addons-contrib';
-
-+ const techdocsContent = (
-+
-+
-+
-+
-+
-+ );
-
-const defaultEntityPage = (
- ...
-
-+ {techdocsContent}
-
- ...
-);
-
-const serviceEntityPage = (
- ...
-
-+ {techdocsContent}
-
- ...
-);
-
-const websiteEntityPage = (
- ...
-
-+ {techdocsContent}
-
- ...
-);
-```
diff --git a/.changeset/famous-cups-clap.md b/.changeset/famous-cups-clap.md
deleted file mode 100644
index 206aec9177..0000000000
--- a/.changeset/famous-cups-clap.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-common': patch
----
-
-`@beta` exports now replaced with `@public` exports
diff --git a/.changeset/fifty-dogs-collect.md b/.changeset/fifty-dogs-collect.md
deleted file mode 100644
index ac04d6b930..0000000000
--- a/.changeset/fifty-dogs-collect.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-sentry': patch
----
-
-Exported `isSentryAvailable` which can be used to determine if sentry is available.
diff --git a/.changeset/fifty-planes-dream.md b/.changeset/fifty-planes-dream.md
deleted file mode 100644
index 655cd42dc1..0000000000
--- a/.changeset/fifty-planes-dream.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Increased key field size for signing_keys table to account for larger signature keys
diff --git a/.changeset/fluffy-candles-learn.md b/.changeset/fluffy-candles-learn.md
deleted file mode 100644
index 6fe3f1e09b..0000000000
--- a/.changeset/fluffy-candles-learn.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-Updates the `isKind`, `ìsComponentType`, and `isNamespace` to allow an array of possible values
diff --git a/.changeset/fluffy-cherries-own.md b/.changeset/fluffy-cherries-own.md
deleted file mode 100644
index 93d7272b14..0000000000
--- a/.changeset/fluffy-cherries-own.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-bitbucket-cloud': minor
----
-
-Add new plugin `catalog-backend-module-bitbucket-cloud` with `BitbucketCloudEntityProvider`.
-
-This entity provider is an alternative/replacement to the `BitbucketDiscoveryProcessor` **_(for Bitbucket Cloud only!)_**.
-It replaces use cases using `search=true` and should be powerful enough as a complete replacement.
-
-If any feature for Bitbucket Cloud is missing and preventing you from switching, please raise an issue.
-
-**Before:**
-
-```typescript
-// packages/backend/src/plugins/catalog.ts
-
-builder.addProcessor(
- BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }),
-);
-```
-
-```yaml
-# app-config.yaml
-
-catalog:
- locations:
- - type: bitbucket-discovery
- target: 'https://bitbucket.org/workspaces/workspace-name/projects/apis-*/repos/service-*?search=true&catalogPath=/catalog-info.yaml'
-```
-
-**After:**
-
-```typescript
-// packages/backend/src/plugins/catalog.ts
-builder.addEntityProvider(
- BitbucketCloudEntityProvider.fromConfig(env.config, {
- logger: env.logger,
- schedule: env.scheduler.createScheduledTaskRunner({
- frequency: { minutes: 30 },
- timeout: { minutes: 3 },
- }),
- }),
-);
-```
-
-```yaml
-# app-config.yaml
-
-catalog:
- providers:
- bitbucketCloud:
- yourProviderId: # identifies your ingested dataset
- catalogPath: /catalog-info.yaml # default value
- filters: # optional
- projectKey: '^apis-.*$' # optional; RegExp
- repoSlug: '^service-.*$' # optional; RegExp
- workspace: workspace-name
-```
diff --git a/.changeset/fluffy-wasps-chew.md b/.changeset/fluffy-wasps-chew.md
deleted file mode 100644
index b23a4f8181..0000000000
--- a/.changeset/fluffy-wasps-chew.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': patch
----
-
-show request/limit CPU and Memory on the UI
diff --git a/.changeset/fresh-items-punch.md b/.changeset/fresh-items-punch.md
deleted file mode 100644
index 1893dc7661..0000000000
--- a/.changeset/fresh-items-punch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated Lockfile to support new versions of yarn as well as the legacy 1 version
diff --git a/.changeset/funny-suns-pay.md b/.changeset/funny-suns-pay.md
deleted file mode 100644
index b736d34cc1..0000000000
--- a/.changeset/funny-suns-pay.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-tasks': patch
----
-
-Allow tasks that fail to retry on a loop emitting a warning log every time it fails with the amount of attempts it has
diff --git a/.changeset/give-that-wolf-a-banana.md b/.changeset/give-that-wolf-a-banana.md
deleted file mode 100644
index a9e99782ad..0000000000
--- a/.changeset/give-that-wolf-a-banana.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Use of `SidebarContext` has been deprecated and will be removed in a future release. Instead, `useSidebarOpenState()` should be used to consume the context and `` should be used to provide it.
-
-To prepare your app, update `packages/app/src/components/Root/Root.tsx` as follows:
-
-```diff
-import {
- Sidebar,
- sidebarConfig,
-- SidebarContext
- SidebarDivider,
- // ...
- SidebarSpace,
-+ useSidebarOpenState,
-} from '@backstage/core-components';
-
-// ...
-
-const SidebarLogo = () => {
- const classes = useSidebarLogoStyles();
-- const { isOpen } = useContext(SidebarContext);
-+ const { isOpen } = useSidebarOpenState();
-
- // ...
-};
-```
diff --git a/.changeset/gold-tables-matter.md b/.changeset/gold-tables-matter.md
deleted file mode 100644
index ee5f4e5af3..0000000000
--- a/.changeset/gold-tables-matter.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-A new scaffolder action has been added: `gerrit:publish`
diff --git a/.changeset/good-squids-rest.md b/.changeset/good-squids-rest.md
deleted file mode 100644
index dc9f9129e2..0000000000
--- a/.changeset/good-squids-rest.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-cost-insights': patch
----
-
-Fix broken app-config in the example in the README
diff --git a/.changeset/great-roses-pump.md b/.changeset/great-roses-pump.md
new file mode 100644
index 0000000000..16a49bd464
--- /dev/null
+++ b/.changeset/great-roses-pump.md
@@ -0,0 +1,23 @@
+---
+'@backstage/plugin-catalog': patch
+---
+
+Previously, the color of the Entity Context Menu (in the Entity Page Header) was hardcoded as `white`.
+
+This was an issue for themes that use a header with a white background. By default, the color of the icon is now `theme.palette.bursts.fontColor`.
+
+It can now also be overridden in the theme, which is only necessary if the header title, subtitle and three-dots icon need to have different colors. For example:
+
+```typescript
+export function createThemeOverrides(theme: BackstageTheme): Overrides {
+ return {
+ PluginCatalogEntityContextMenu: {
+ button: {
+ color: 'blue',
+ },
+ },
+ ...
+ },
+ ...
+ }
+```
diff --git a/.changeset/green-actors-argue.md b/.changeset/green-actors-argue.md
new file mode 100644
index 0000000000..e21fbb040c
--- /dev/null
+++ b/.changeset/green-actors-argue.md
@@ -0,0 +1,19 @@
+---
+'@backstage/cli': minor
+---
+
+**BREAKING**: Removed the following deprecated package commands:
+
+- `app:build` - Use `package build` instead
+- `app:serve` - Use `package start` instead
+- `backend:build` - Use `package build` instead
+- `backend:bundle` - Use `package build` instead
+- `backend:dev` - Use `package start` instead
+- `plugin:build` - Use `package build` instead
+- `plugin:serve` - Use `package start` instead
+- `build` - Use `package build` instead
+- `lint` - Use `package lint` instead
+- `prepack` - Use `package prepack` instead
+- `postpack` - Use `package postpack` instead
+
+In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
diff --git a/.changeset/happy-boxes-melt.md b/.changeset/happy-boxes-melt.md
new file mode 100644
index 0000000000..c478e783d3
--- /dev/null
+++ b/.changeset/happy-boxes-melt.md
@@ -0,0 +1,6 @@
+---
+'@techdocs/cli': patch
+'@backstage/plugin-techdocs-node': patch
+---
+
+Fix the flag parsing for `legacyCopyReadmeMdToIndexMd` in `techdocs-cli generate` command, and decouple it's logic from the `techdocs-ref` flag.
diff --git a/.changeset/healthy-pets-mix.md b/.changeset/healthy-pets-mix.md
deleted file mode 100644
index 44075b6a76..0000000000
--- a/.changeset/healthy-pets-mix.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-backend': patch
----
-
-cache and refresh Azure tokens to avoid excessive calls to Azure Identity
diff --git a/.changeset/heavy-carrots-cheer.md b/.changeset/heavy-carrots-cheer.md
deleted file mode 100644
index 484e04d8bd..0000000000
--- a/.changeset/heavy-carrots-cheer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-tech-insights': patch
----
-
-Export TechInsightsClient so it may be extended by custom implementations
diff --git a/.changeset/hip-pears-shout.md b/.changeset/hip-pears-shout.md
deleted file mode 100644
index 61cb7c52a0..0000000000
--- a/.changeset/hip-pears-shout.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-common': patch
----
-
-Replaced all usages of `@backstage/search-common` with `@backstage/plugin-search-common`
diff --git a/.changeset/honest-planets-sin.md b/.changeset/honest-planets-sin.md
deleted file mode 100644
index bb55e881c6..0000000000
--- a/.changeset/honest-planets-sin.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-Fixed a bug in `publish:github` action that didn't permit to add users as collaborators.
-This fix required changing the way parameters are passed to the action.
-In order to add a team as collaborator, now you must use the `team` field instead of `username`.
-In order to add a user as collaborator, you must use the `user` field.
-
-It's still possible to use the field `username` but is deprecated in favor of `team`.
-
-```yaml
-- id: publish
- name: Publish
- action: publish:github
- input:
- repoUrl: ...
- collaborators:
- - access: ...
- team: my_team
- - access: ...
- user: my_username
-```
diff --git a/.changeset/hungry-brooms-wash.md b/.changeset/hungry-brooms-wash.md
deleted file mode 100644
index 307b91ce15..0000000000
--- a/.changeset/hungry-brooms-wash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-pagerduty': patch
----
-
-Fix alert that was not showing after creating an incident.
diff --git a/.changeset/itchy-avocados-hug.md b/.changeset/itchy-avocados-hug.md
deleted file mode 100644
index 1ce61d405e..0000000000
--- a/.changeset/itchy-avocados-hug.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-common': patch
----
-
-Applied the `luxon` dependency fix from the `0.13.4` patch release.
diff --git a/.changeset/khaki-shrimps-tell.md b/.changeset/khaki-shrimps-tell.md
deleted file mode 100644
index cad03e2ae5..0000000000
--- a/.changeset/khaki-shrimps-tell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': patch
----
-
-ability to configure refresh interval on Kubernetes tab
diff --git a/.changeset/large-kangaroos-poke.md b/.changeset/large-kangaroos-poke.md
new file mode 100644
index 0000000000..3a9444cfa1
--- /dev/null
+++ b/.changeset/large-kangaroos-poke.md
@@ -0,0 +1,13 @@
+---
+'@backstage/create-app': patch
+---
+
+Added an explicit `node-gyp` dependency to the root `package.json`. This is to work around a bug in older versions of `node-gyp` that causes Python execution to fail on macOS.
+
+You can add this workaround to your existing project by adding `node-gyp` as a `devDependency` in your root `package.json` file:
+
+```diff
+ "devDependencies": {
++ "node-gyp": "^9.0.0"
+ },
+```
diff --git a/.changeset/large-monkeys-visit.md b/.changeset/large-monkeys-visit.md
deleted file mode 100644
index 1ecaadb890..0000000000
--- a/.changeset/large-monkeys-visit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-cost-insights': patch
----
-
-Fixed css to show large tooltips on cost overview graph
diff --git a/.changeset/lemon-goats-obey.md b/.changeset/lemon-goats-obey.md
new file mode 100644
index 0000000000..7bdb59bd61
--- /dev/null
+++ b/.changeset/lemon-goats-obey.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-apache-airflow': minor
+---
+
+Exposed DagTableComponent as standalone component + added a prop to get only select DAGs instead of the full list
diff --git a/.changeset/loud-jars-kick.md b/.changeset/loud-jars-kick.md
deleted file mode 100644
index b53006f7f9..0000000000
--- a/.changeset/loud-jars-kick.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-allure': patch
----
-
-Add export for `isAllureReportAvailable` and `ALLURE_PROJECT_ID_ANNOTATION` so it can be used outside of plugin
diff --git a/.changeset/loud-walls-itch.md b/.changeset/loud-walls-itch.md
deleted file mode 100644
index eff8c8b5c6..0000000000
--- a/.changeset/loud-walls-itch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Updated the `--version` flag to output the version of the current backstage release instead of the version of create-app.
diff --git a/.changeset/lovely-gifts-itch.md b/.changeset/lovely-gifts-itch.md
deleted file mode 100644
index 3fd1f5a38f..0000000000
--- a/.changeset/lovely-gifts-itch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Fix EntityPage tab scrolling overflow bug on Firefox
diff --git a/.changeset/mean-turtles-reply.md b/.changeset/mean-turtles-reply.md
deleted file mode 100644
index f3b21989d1..0000000000
--- a/.changeset/mean-turtles-reply.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Fix issue where right arrow icon was incorrectly added to side bar items without a sub-menu
diff --git a/.changeset/metal-items-mix.md b/.changeset/metal-items-mix.md
deleted file mode 100644
index 6299e479e6..0000000000
--- a/.changeset/metal-items-mix.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-common': minor
----
-
-**BREAKING**: Server-to-server tokens that are authenticated by the `ServerTokenManager` now must have an `exp` claim that has not expired. Tokens where the `exp` claim is in the past or missing are considered invalid and will throw an error. This is a followup to the deprecation from the `1.2` release of Backstage where perpetual tokens were deprecated. Be sure to update any usage of the `getToken()` method to have it be called every time a token is needed. Do not store tokens for later use.
diff --git a/.changeset/metal-singers-matter.md b/.changeset/metal-singers-matter.md
new file mode 100644
index 0000000000..2c8d370790
--- /dev/null
+++ b/.changeset/metal-singers-matter.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
diff --git a/.changeset/modern-ducks-lay.md b/.changeset/modern-ducks-lay.md
new file mode 100644
index 0000000000..bd62c309ba
--- /dev/null
+++ b/.changeset/modern-ducks-lay.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-stack-overflow': patch
+---
+
+- Publicly exports `StackOverflowIcon`.
+- `HomePageStackOverflowQuestions` accepts optional icon property.
diff --git a/.changeset/modern-pandas-agree.md b/.changeset/modern-pandas-agree.md
deleted file mode 100644
index 9c3f95aef2..0000000000
--- a/.changeset/modern-pandas-agree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-github': patch
----
-
-Adds an edit URL to the GitHub Teams Group entities.
diff --git a/.changeset/moody-worms-rhyme.md b/.changeset/moody-worms-rhyme.md
deleted file mode 100644
index 39517a6416..0000000000
--- a/.changeset/moody-worms-rhyme.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-github-pull-requests-board': minor
----
-
-Add Github Pull Requests board plugin
diff --git a/.changeset/nasty-zoos-cross.md b/.changeset/nasty-zoos-cross.md
new file mode 100644
index 0000000000..7a658d7209
--- /dev/null
+++ b/.changeset/nasty-zoos-cross.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-github-pull-requests-board': patch
+---
+
+Support namespaced teams and fetch all kinds
diff --git a/.changeset/nervous-gorillas-approve.md b/.changeset/nervous-gorillas-approve.md
deleted file mode 100644
index 8c0d742b7b..0000000000
--- a/.changeset/nervous-gorillas-approve.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-aws': patch
-'@backstage/plugin-catalog-backend-module-gerrit': patch
----
-
-Inline config interfaces
diff --git a/.changeset/nervous-humans-sip.md b/.changeset/nervous-humans-sip.md
new file mode 100644
index 0000000000..aa1ca2c60a
--- /dev/null
+++ b/.changeset/nervous-humans-sip.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-app-api': patch
+---
+
+The `signOut` method of the `IdentityApi` will now navigate the user back to the base URL of the app as indicated by the `app.baseUrl` config.
diff --git a/.changeset/nervous-ravens-smash.md b/.changeset/nervous-ravens-smash.md
deleted file mode 100644
index b9d7546d44..0000000000
--- a/.changeset/nervous-ravens-smash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend': patch
----
-
-`RouterOptions` and `createRouter` now marked as public exports
diff --git a/.changeset/odd-baboons-buy.md b/.changeset/odd-baboons-buy.md
deleted file mode 100644
index 3a7f5584b4..0000000000
--- a/.changeset/odd-baboons-buy.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-common': patch
----
-
-Applied the AWS S3 reading patch from the `0.13.5` patch release.
diff --git a/.changeset/olive-rats-rest.md b/.changeset/olive-rats-rest.md
deleted file mode 100644
index 46e76f7c17..0000000000
--- a/.changeset/olive-rats-rest.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Accessibility updates:
-
-- Added `aria-label` to the sidebar Logo link. To enable this for an existing app, please make the following changes:
-
-`packages/app/src/components/Root/Root.tsx`
-
-```diff
-const SidebarLogo = () => {
- const classes = useSidebarLogoStyles();
- const { isOpen } = useContext(SidebarContext);
-
- return (
-
-
- {isOpen ? : }
-
-
- );
-};
-```
diff --git a/.changeset/plenty-garlics-shop.md b/.changeset/plenty-garlics-shop.md
deleted file mode 100644
index cccbae0109..0000000000
--- a/.changeset/plenty-garlics-shop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-common': minor
----
-
-Add support to fetch data for Stateful Sets
diff --git a/.changeset/polite-eagles-invite.md b/.changeset/polite-eagles-invite.md
new file mode 100644
index 0000000000..f9c5073a83
--- /dev/null
+++ b/.changeset/polite-eagles-invite.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-scaffolder': minor
+---
+
+A new template editor has been added which is accessible via the context menu on the top right hand corner of the Create page. It allows you to load a template from a local directory, edit it with a preview, execute it in dry-run mode, and view the results. Note that the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API) must be supported by your browser for this to be available.
+
+To support the new template editor the `ScaffolderApi` now has an optional `dryRun` method, which is implemented by the default `ScaffolderClient`.
diff --git a/.changeset/polite-spiders-pay.md b/.changeset/polite-spiders-pay.md
deleted file mode 100644
index 41528aff6b..0000000000
--- a/.changeset/polite-spiders-pay.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Added configurable algorithm field for TokenFactory
diff --git a/.changeset/poor-years-develop.md b/.changeset/poor-years-develop.md
deleted file mode 100644
index aee42bfc48..0000000000
--- a/.changeset/poor-years-develop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/integration': patch
----
-
-Gerrit Integration: Handle absolute paths in `resolveUrl` properly.
diff --git a/.changeset/poor-zebras-design.md b/.changeset/poor-zebras-design.md
deleted file mode 100644
index 8b618610d1..0000000000
--- a/.changeset/poor-zebras-design.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-- Added an optional `list` method on the `TaskBroker` and `TaskStore` interface to list tasks by an optional `userEntityRef`
-- Implemented a `list` method on the `DatabaseTaskStore` class to list tasks by an optional `userEntityRef`
-- Added a route under `/v2/tasks` to list tasks by a `userEntityRef` using the `createdBy` query parameter
diff --git a/.changeset/popular-pots-yell.md b/.changeset/popular-pots-yell.md
new file mode 100644
index 0000000000..f0decc9fb8
--- /dev/null
+++ b/.changeset/popular-pots-yell.md
@@ -0,0 +1,11 @@
+---
+'@backstage/plugin-auth-backend': minor
+---
+
+**BREAKING**: Removed all directly exported auth provider factories, option types, and sign-in resolvers. For example: `AwsAlbProviderOptions`, `bitbucketUserIdSignInResolver`, `createGithubProvider`. These are all still accessible via the `providers` export. For example, use `providers.github.create()` rather than `createGithubProvider()`, and `providers.bitbucket.resolvers.userIdMatchingUserEntityAnnotation()` rather than `bitbucketUserIdSignInResolver`.
+
+**BREAKING**: Removed the exported `AuthProviderFactoryOptions` type as well as the deprecated option fields of the `AuthProviderFactory` callback. This includes the `tokenManager`, `tokenIssuer`, `discovery`, and `catalogApi` fields. Existing usage of these should be replaced with the new utilities in the `resolverContext` field. The deprecated `TokenIssuer` type is now also removed, since it is no longer used.
+
+**BREAKING**: Removed `getEntityClaims`, use `getDefaultOwnershipEntityRefs` instead.
+
+**DEPRECATION**: Deprecated `AtlassianAuthProvider` as it was unintentionally exported.
diff --git a/.changeset/pre.json b/.changeset/pre.json
index 4d4f1e0623..6ea515cda8 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -2,230 +2,194 @@
"mode": "pre",
"tag": "next",
"initialVersions": {
- "example-app": "0.2.71",
- "@backstage/app-defaults": "1.0.2",
- "example-backend": "0.2.71",
- "@backstage/backend-common": "0.13.3",
- "@backstage/backend-tasks": "0.3.1",
- "@backstage/backend-test-utils": "0.1.24",
- "@backstage/catalog-client": "1.0.2",
- "@backstage/catalog-model": "1.0.2",
- "@backstage/cli": "0.17.1",
+ "example-app": "0.2.72",
+ "@backstage/app-defaults": "1.0.3",
+ "example-backend": "0.2.72",
+ "@backstage/backend-common": "0.14.0",
+ "@backstage/backend-tasks": "0.3.2",
+ "@backstage/backend-test-utils": "0.1.25",
+ "@backstage/catalog-client": "1.0.3",
+ "@backstage/catalog-model": "1.0.3",
+ "@backstage/cli": "0.17.2",
"@backstage/cli-common": "0.1.9",
"@backstage/codemods": "0.1.38",
"@backstage/config": "1.0.1",
- "@backstage/config-loader": "1.1.1",
- "@backstage/core-app-api": "1.0.2",
- "@backstage/core-components": "0.9.4",
- "@backstage/core-plugin-api": "1.0.2",
- "@backstage/create-app": "0.4.27",
- "@backstage/dev-utils": "1.0.2",
+ "@backstage/config-loader": "1.1.2",
+ "@backstage/core-app-api": "1.0.3",
+ "@backstage/core-components": "0.9.5",
+ "@backstage/core-plugin-api": "1.0.3",
+ "@backstage/create-app": "0.4.28",
+ "@backstage/dev-utils": "1.0.3",
"e2e-test": "0.2.0",
"@backstage/errors": "1.0.0",
- "@backstage/integration": "1.2.0",
- "@backstage/integration-react": "1.1.0",
- "@backstage/release-manifests": "0.0.3",
- "@techdocs/cli": "1.1.1",
- "techdocs-cli-embedded-app": "0.2.70",
- "@backstage/techdocs-common": "0.11.15",
- "@backstage/test-utils": "1.1.0",
+ "@backstage/integration": "1.2.1",
+ "@backstage/integration-react": "1.1.1",
+ "@backstage/release-manifests": "0.0.4",
+ "@techdocs/cli": "1.1.2",
+ "techdocs-cli-embedded-app": "0.2.71",
+ "@backstage/test-utils": "1.1.1",
"@backstage/theme": "0.2.15",
"@backstage/types": "1.0.0",
"@backstage/version-bridge": "1.0.1",
- "@backstage/plugin-adr": "0.1.0",
- "@backstage/plugin-adr-backend": "0.1.0",
- "@backstage/plugin-adr-common": "0.1.0",
- "@backstage/plugin-airbrake": "0.3.5",
- "@backstage/plugin-airbrake-backend": "0.2.5",
- "@backstage/plugin-allure": "0.1.21",
- "@backstage/plugin-analytics-module-ga": "0.1.16",
- "@backstage/plugin-apache-airflow": "0.1.13",
- "@backstage/plugin-api-docs": "0.8.5",
- "@backstage/plugin-app-backend": "0.3.32",
- "@backstage/plugin-auth-backend": "0.14.0",
- "@backstage/plugin-auth-node": "0.2.1",
- "@backstage/plugin-azure-devops": "0.1.21",
- "@backstage/plugin-azure-devops-backend": "0.3.11",
+ "@backstage/plugin-adr": "0.1.1",
+ "@backstage/plugin-adr-backend": "0.1.1",
+ "@backstage/plugin-adr-common": "0.1.1",
+ "@backstage/plugin-airbrake": "0.3.6",
+ "@backstage/plugin-airbrake-backend": "0.2.6",
+ "@backstage/plugin-allure": "0.1.22",
+ "@backstage/plugin-analytics-module-ga": "0.1.17",
+ "@backstage/plugin-apache-airflow": "0.1.14",
+ "@backstage/plugin-api-docs": "0.8.6",
+ "@backstage/plugin-app-backend": "0.3.33",
+ "@backstage/plugin-auth-backend": "0.14.1",
+ "@backstage/plugin-auth-node": "0.2.2",
+ "@backstage/plugin-azure-devops": "0.1.22",
+ "@backstage/plugin-azure-devops-backend": "0.3.12",
"@backstage/plugin-azure-devops-common": "0.2.3",
- "@backstage/plugin-badges": "0.2.29",
- "@backstage/plugin-badges-backend": "0.1.26",
- "@backstage/plugin-bazaar": "0.1.20",
- "@backstage/plugin-bazaar-backend": "0.1.16",
- "@backstage/plugin-bitrise": "0.1.32",
- "@backstage/plugin-catalog": "1.2.0",
- "@backstage/plugin-catalog-backend": "1.1.2",
- "@backstage/plugin-catalog-backend-module-aws": "0.1.5",
- "@backstage/plugin-catalog-backend-module-azure": "0.1.3",
- "@backstage/plugin-catalog-backend-module-bitbucket": "0.1.3",
- "@backstage/plugin-catalog-backend-module-gerrit": "0.1.0",
- "@backstage/plugin-catalog-backend-module-github": "0.1.3",
- "@backstage/plugin-catalog-backend-module-gitlab": "0.1.3",
- "@backstage/plugin-catalog-backend-module-ldap": "0.4.3",
- "@backstage/plugin-catalog-backend-module-msgraph": "0.3.2",
- "@backstage/plugin-catalog-common": "1.0.2",
- "@backstage/plugin-catalog-graph": "0.2.17",
- "@backstage/plugin-catalog-graphql": "0.3.9",
- "@backstage/plugin-catalog-import": "0.8.8",
- "@backstage/plugin-catalog-react": "1.1.0",
- "@backstage/plugin-cicd-statistics": "0.1.7",
- "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.1",
- "@backstage/plugin-circleci": "0.3.5",
- "@backstage/plugin-cloudbuild": "0.3.5",
- "@backstage/plugin-code-climate": "0.1.5",
- "@backstage/plugin-code-coverage": "0.1.32",
- "@backstage/plugin-code-coverage-backend": "0.1.30",
- "@backstage/plugin-codescene": "0.1.0",
- "@backstage/plugin-config-schema": "0.1.28",
- "@backstage/plugin-cost-insights": "0.11.27",
- "@internal/plugin-todo-list": "1.0.1",
- "@internal/plugin-todo-list-backend": "1.0.1",
- "@internal/plugin-todo-list-common": "1.0.1",
- "@backstage/plugin-explore": "0.3.36",
- "@backstage/plugin-explore-react": "0.0.17",
- "@backstage/plugin-firehydrant": "0.1.22",
- "@backstage/plugin-fossa": "0.2.37",
- "@backstage/plugin-gcalendar": "0.3.1",
- "@backstage/plugin-gcp-projects": "0.3.24",
- "@backstage/plugin-git-release-manager": "0.3.18",
- "@backstage/plugin-github-actions": "0.5.5",
- "@backstage/plugin-github-deployments": "0.1.36",
- "@backstage/plugin-gitops-profiles": "0.3.23",
- "@backstage/plugin-gocd": "0.1.11",
- "@backstage/plugin-graphiql": "0.2.37",
- "@backstage/plugin-graphql-backend": "0.1.22",
- "@backstage/plugin-home": "0.4.21",
- "@backstage/plugin-ilert": "0.1.31",
- "@backstage/plugin-jenkins": "0.7.4",
- "@backstage/plugin-jenkins-backend": "0.1.22",
- "@backstage/plugin-jenkins-common": "0.1.4",
- "@backstage/plugin-kafka": "0.3.5",
- "@backstage/plugin-kafka-backend": "0.2.25",
- "@backstage/plugin-kubernetes": "0.6.5",
- "@backstage/plugin-kubernetes-backend": "0.5.1",
- "@backstage/plugin-kubernetes-common": "0.2.10",
- "@backstage/plugin-lighthouse": "0.3.5",
- "@backstage/plugin-newrelic": "0.3.23",
- "@backstage/plugin-newrelic-dashboard": "0.1.13",
- "@backstage/plugin-org": "0.5.5",
- "@backstage/plugin-pagerduty": "0.3.32",
- "@backstage/plugin-periskop": "0.1.3",
- "@backstage/plugin-periskop-backend": "0.1.3",
- "@backstage/plugin-permission-backend": "0.5.7",
- "@backstage/plugin-permission-common": "0.6.1",
- "@backstage/plugin-permission-node": "0.6.1",
- "@backstage/plugin-permission-react": "0.4.1",
- "@backstage/plugin-proxy-backend": "0.2.26",
- "@backstage/plugin-rollbar": "0.4.5",
- "@backstage/plugin-rollbar-backend": "0.1.29",
- "@backstage/plugin-scaffolder": "1.2.0",
- "@backstage/plugin-scaffolder-backend": "1.2.0",
- "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.7",
- "@backstage/plugin-scaffolder-backend-module-rails": "0.4.0",
- "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.5",
- "@backstage/plugin-scaffolder-common": "1.1.0",
- "@backstage/plugin-search": "0.8.1",
- "@backstage/plugin-search-backend": "0.5.2",
- "@backstage/plugin-search-backend-module-elasticsearch": "0.1.4",
- "@backstage/plugin-search-backend-module-pg": "0.3.3",
- "@backstage/plugin-search-backend-node": "0.6.1",
- "@backstage/plugin-search-common": "0.3.4",
- "@backstage/plugin-search-react": "0.2.0",
- "@backstage/plugin-sentry": "0.3.43",
- "@backstage/plugin-shortcuts": "0.2.6",
- "@backstage/plugin-sonarqube": "0.3.5",
- "@backstage/plugin-splunk-on-call": "0.3.29",
- "@backstage/plugin-stack-overflow": "0.1.1",
- "@backstage/plugin-stack-overflow-backend": "0.1.1",
- "@backstage/plugin-tech-insights": "0.2.1",
- "@backstage/plugin-tech-insights-backend": "0.4.0",
- "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.16",
+ "@backstage/plugin-badges": "0.2.30",
+ "@backstage/plugin-badges-backend": "0.1.27",
+ "@backstage/plugin-bazaar": "0.1.21",
+ "@backstage/plugin-bazaar-backend": "0.1.17",
+ "@backstage/plugin-bitbucket-cloud-common": "0.1.0",
+ "@backstage/plugin-bitrise": "0.1.33",
+ "@backstage/plugin-catalog": "1.3.0",
+ "@backstage/plugin-catalog-backend": "1.2.0",
+ "@backstage/plugin-catalog-backend-module-aws": "0.1.6",
+ "@backstage/plugin-catalog-backend-module-azure": "0.1.4",
+ "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.0",
+ "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.0",
+ "@backstage/plugin-catalog-backend-module-gerrit": "0.1.1",
+ "@backstage/plugin-catalog-backend-module-github": "0.1.4",
+ "@backstage/plugin-catalog-backend-module-gitlab": "0.1.4",
+ "@backstage/plugin-catalog-backend-module-ldap": "0.5.0",
+ "@backstage/plugin-catalog-backend-module-msgraph": "0.3.3",
+ "@backstage/plugin-catalog-common": "1.0.3",
+ "@backstage/plugin-catalog-graph": "0.2.18",
+ "@backstage/plugin-catalog-graphql": "0.3.10",
+ "@backstage/plugin-catalog-import": "0.8.9",
+ "@backstage/plugin-catalog-react": "1.1.1",
+ "@backstage/plugin-cicd-statistics": "0.1.8",
+ "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.2",
+ "@backstage/plugin-circleci": "0.3.6",
+ "@backstage/plugin-cloudbuild": "0.3.6",
+ "@backstage/plugin-code-climate": "0.1.6",
+ "@backstage/plugin-code-coverage": "0.1.33",
+ "@backstage/plugin-code-coverage-backend": "0.1.31",
+ "@backstage/plugin-codescene": "0.1.1",
+ "@backstage/plugin-config-schema": "0.1.29",
+ "@backstage/plugin-cost-insights": "0.11.28",
+ "@backstage/plugin-dynatrace": "0.1.0",
+ "@internal/plugin-todo-list": "1.0.2",
+ "@internal/plugin-todo-list-backend": "1.0.2",
+ "@internal/plugin-todo-list-common": "1.0.2",
+ "@backstage/plugin-explore": "0.3.37",
+ "@backstage/plugin-explore-react": "0.0.18",
+ "@backstage/plugin-firehydrant": "0.1.23",
+ "@backstage/plugin-fossa": "0.2.38",
+ "@backstage/plugin-gcalendar": "0.3.2",
+ "@backstage/plugin-gcp-projects": "0.3.25",
+ "@backstage/plugin-git-release-manager": "0.3.19",
+ "@backstage/plugin-github-actions": "0.5.6",
+ "@backstage/plugin-github-deployments": "0.1.37",
+ "@backstage/plugin-github-pull-requests-board": "0.1.0",
+ "@backstage/plugin-gitops-profiles": "0.3.24",
+ "@backstage/plugin-gocd": "0.1.12",
+ "@backstage/plugin-graphiql": "0.2.38",
+ "@backstage/plugin-graphql-backend": "0.1.23",
+ "@backstage/plugin-home": "0.4.22",
+ "@backstage/plugin-ilert": "0.1.32",
+ "@backstage/plugin-jenkins": "0.7.5",
+ "@backstage/plugin-jenkins-backend": "0.1.23",
+ "@backstage/plugin-jenkins-common": "0.1.5",
+ "@backstage/plugin-kafka": "0.3.6",
+ "@backstage/plugin-kafka-backend": "0.2.26",
+ "@backstage/plugin-kubernetes": "0.6.6",
+ "@backstage/plugin-kubernetes-backend": "0.6.0",
+ "@backstage/plugin-kubernetes-common": "0.3.0",
+ "@backstage/plugin-lighthouse": "0.3.6",
+ "@backstage/plugin-newrelic": "0.3.24",
+ "@backstage/plugin-newrelic-dashboard": "0.1.14",
+ "@backstage/plugin-org": "0.5.6",
+ "@backstage/plugin-pagerduty": "0.4.0",
+ "@backstage/plugin-periskop": "0.1.4",
+ "@backstage/plugin-periskop-backend": "0.1.4",
+ "@backstage/plugin-permission-backend": "0.5.8",
+ "@backstage/plugin-permission-common": "0.6.2",
+ "@backstage/plugin-permission-node": "0.6.2",
+ "@backstage/plugin-permission-react": "0.4.2",
+ "@backstage/plugin-proxy-backend": "0.2.27",
+ "@backstage/plugin-rollbar": "0.4.6",
+ "@backstage/plugin-rollbar-backend": "0.1.30",
+ "@backstage/plugin-scaffolder": "1.3.0",
+ "@backstage/plugin-scaffolder-backend": "1.3.0",
+ "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.8",
+ "@backstage/plugin-scaffolder-backend-module-rails": "0.4.1",
+ "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.6",
+ "@backstage/plugin-scaffolder-common": "1.1.1",
+ "@backstage/plugin-search": "0.9.0",
+ "@backstage/plugin-search-backend": "0.5.3",
+ "@backstage/plugin-search-backend-module-elasticsearch": "0.1.5",
+ "@backstage/plugin-search-backend-module-pg": "0.3.4",
+ "@backstage/plugin-search-backend-node": "0.6.2",
+ "@backstage/plugin-search-common": "0.3.5",
+ "@backstage/plugin-search-react": "0.2.1",
+ "@backstage/plugin-sentry": "0.3.44",
+ "@backstage/plugin-shortcuts": "0.2.7",
+ "@backstage/plugin-sonarqube": "0.3.6",
+ "@backstage/plugin-splunk-on-call": "0.3.30",
+ "@backstage/plugin-stack-overflow": "0.1.2",
+ "@backstage/plugin-stack-overflow-backend": "0.1.2",
+ "@backstage/plugin-tech-insights": "0.2.2",
+ "@backstage/plugin-tech-insights-backend": "0.4.1",
+ "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.17",
"@backstage/plugin-tech-insights-common": "0.2.4",
- "@backstage/plugin-tech-insights-node": "0.3.0",
- "@backstage/plugin-tech-radar": "0.5.12",
- "@backstage/plugin-techdocs": "1.1.1",
- "@backstage/plugin-techdocs-addons-test-utils": "1.0.0",
- "@backstage/plugin-techdocs-backend": "1.1.1",
- "@backstage/plugin-techdocs-module-addons-contrib": "1.0.0",
- "@backstage/plugin-techdocs-node": "1.1.1",
- "@backstage/plugin-techdocs-react": "1.0.0",
- "@backstage/plugin-todo": "0.2.7",
- "@backstage/plugin-todo-backend": "0.1.29",
- "@backstage/plugin-user-settings": "0.4.4",
- "@backstage/plugin-xcmetrics": "0.2.25",
- "@backstage/plugin-bitbucket-cloud-common": "0.0.0",
- "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.0.0",
- "@backstage/plugin-github-pull-requests-board": "0.0.0"
+ "@backstage/plugin-tech-insights-node": "0.3.1",
+ "@backstage/plugin-tech-radar": "0.5.13",
+ "@backstage/plugin-techdocs": "1.2.0",
+ "@backstage/plugin-techdocs-addons-test-utils": "1.0.1",
+ "@backstage/plugin-techdocs-backend": "1.1.2",
+ "@backstage/plugin-techdocs-module-addons-contrib": "1.0.1",
+ "@backstage/plugin-techdocs-node": "1.1.2",
+ "@backstage/plugin-techdocs-react": "1.0.1",
+ "@backstage/plugin-todo": "0.2.8",
+ "@backstage/plugin-todo-backend": "0.1.30",
+ "@backstage/plugin-user-settings": "0.4.5",
+ "@backstage/plugin-vault": "0.1.0",
+ "@backstage/plugin-vault-backend": "0.1.0",
+ "@backstage/plugin-xcmetrics": "0.2.26",
+ "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.0.0"
},
"changesets": [
- "afraid-mangos-sip",
- "beige-apricots-enjoy",
- "beige-deers-remember",
- "blue-roses-give",
- "fair-grapes-joke",
- "fifty-dogs-collect",
- "fifty-planes-dream",
- "fluffy-candles-learn",
- "fluffy-cherries-own",
- "fluffy-wasps-chew",
- "fresh-items-punch",
- "funny-suns-pay",
- "give-that-wolf-a-banana",
- "gold-tables-matter",
- "healthy-pets-mix",
- "heavy-carrots-cheer",
- "hungry-brooms-wash",
- "itchy-avocados-hug",
- "large-monkeys-visit",
- "loud-jars-kick",
- "loud-walls-itch",
- "lovely-gifts-itch",
- "mean-turtles-reply",
- "modern-pandas-agree",
- "moody-worms-rhyme",
- "nervous-gorillas-approve",
- "odd-baboons-buy",
- "olive-rats-rest",
- "plenty-garlics-shop",
- "polite-spiders-pay",
- "poor-years-develop",
- "pretty-wolves-whisper",
- "quick-ladybugs-try",
- "real-beers-type",
- "reject-failed-index-tasks",
- "renovate-126b147",
- "renovate-648a745",
- "renovate-9363c67",
- "renovate-ad175cc",
- "right-one-at-the-wrong-time",
- "scaffolder-form-context",
- "search-eight-hounds-worry",
- "search-eyes-of-them-all",
- "search-martha-sways",
- "shaggy-crabs-return",
- "shiny-clocks-joke",
- "shiny-windows-roll",
- "short-jokes-applaud",
- "silly-wombats-flash",
- "sixty-plums-kick",
- "sixty-poems-drum",
- "slimy-elephants-attend",
- "slow-apes-appear",
- "spotty-goats-look",
- "tasty-snails-boil",
- "techdocs-buttons-film",
- "techdocs-crabs-retire",
- "techdocs-paws-study",
- "techdocs-swans-check",
- "techdocs-vans-run",
- "techdocs-ways-type",
- "techdocs-wolves-carry",
- "ten-rocks-smile",
- "tricky-hounds-cry",
- "unlucky-lies-pretend",
- "up-in-space-man",
- "violet-apples-repair",
- "warm-bats-jump",
- "wicked-teachers-hide",
- "wise-nails-hang"
+ "beige-horses-scream",
+ "breezy-poems-grab",
+ "breezy-seas-exist",
+ "chilled-mirrors-grab",
+ "curly-candles-battle",
+ "curvy-weeks-matter",
+ "eleven-mice-collect",
+ "great-roses-pump",
+ "large-kangaroos-poke",
+ "modern-ducks-lay",
+ "nasty-zoos-cross",
+ "nervous-humans-sip",
+ "polite-eagles-invite",
+ "purple-beans-march",
+ "red-games-decide",
+ "renovate-9454dab",
+ "rude-llamas-lie",
+ "shaggy-melons-drive",
+ "sharp-planes-turn",
+ "short-olives-train",
+ "smooth-sheep-hide",
+ "strange-trains-collect",
+ "sweet-plants-sparkle",
+ "tame-guests-wave",
+ "techdocs-gorgeous-plants-sniff",
+ "techdocs-the-whole-pulse",
+ "thick-radios-drive",
+ "unlucky-stingrays-juggle",
+ "weak-bananas-deliver",
+ "wet-dolphins-act",
+ "wicked-icons-grin"
]
}
diff --git a/.changeset/pretty-masks-live.md b/.changeset/pretty-masks-live.md
new file mode 100644
index 0000000000..c45ad1e77f
--- /dev/null
+++ b/.changeset/pretty-masks-live.md
@@ -0,0 +1,5 @@
+---
+'@backstage/catalog-model': patch
+---
+
+Added type predicates for all entity types, e.g. isUserEntity
diff --git a/.changeset/pretty-wolves-whisper.md b/.changeset/pretty-wolves-whisper.md
deleted file mode 100644
index 498eac7173..0000000000
--- a/.changeset/pretty-wolves-whisper.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-jenkins-backend': patch
----
-
-bug fix: provide backstage token for rebuild api call
diff --git a/.changeset/purple-beans-march.md b/.changeset/purple-beans-march.md
new file mode 100644
index 0000000000..f4a3b45ab2
--- /dev/null
+++ b/.changeset/purple-beans-march.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Fix `webpack-dev-server` deprecations.
diff --git a/.changeset/quick-ladybugs-try.md b/.changeset/quick-ladybugs-try.md
deleted file mode 100644
index aad1b200b6..0000000000
--- a/.changeset/quick-ladybugs-try.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-Accessibility updates:
-
-- Added screen reader elements to describe default table `Action` buttons
diff --git a/.changeset/quiet-pens-notice.md b/.changeset/quiet-pens-notice.md
new file mode 100644
index 0000000000..aa6aeb049d
--- /dev/null
+++ b/.changeset/quiet-pens-notice.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-common': patch
+---
+
+Improve plural handling in logging output for secrets
diff --git a/.changeset/real-beers-type.md b/.changeset/real-beers-type.md
deleted file mode 100644
index f09aafe007..0000000000
--- a/.changeset/real-beers-type.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gitlab': patch
----
-
-do not create location object if file with component definition do not exists in project, that decrease count of request to gitlab with 404 status code. Now we can create processor with new flag to enable this logic:
-
-```ts
-const processor = GitLabDiscoveryProcessor.fromConfig(config, {
- logger,
- skipReposWithoutExactFileMatch: true,
-});
-```
-
-**WARNING:** This new functionality does not support globs in the repo file path
diff --git a/.changeset/red-games-decide.md b/.changeset/red-games-decide.md
new file mode 100644
index 0000000000..208cecfc0a
--- /dev/null
+++ b/.changeset/red-games-decide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-api-docs-module-protoc-gen-doc': minor
+---
+
+Added the new `grpcDocsApiWidget` to render `protoc-gen-doc` generated descriptors by the `grpc-docs` package.
diff --git a/.changeset/reject-failed-index-tasks.md b/.changeset/reject-failed-index-tasks.md
deleted file mode 100644
index b2f1f5ad6a..0000000000
--- a/.changeset/reject-failed-index-tasks.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend-node': patch
----
-
-propagate indexing errors so they don't appear successful to the task scheduler
diff --git a/.changeset/renovate-126b147.md b/.changeset/renovate-126b147.md
deleted file mode 100644
index c087911b84..0000000000
--- a/.changeset/renovate-126b147.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `run-script-webpack-plugin` to `^0.0.14`.
diff --git a/.changeset/renovate-4b5ff24.md b/.changeset/renovate-4b5ff24.md
new file mode 100644
index 0000000000..4867c345d8
--- /dev/null
+++ b/.changeset/renovate-4b5ff24.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
diff --git a/.changeset/renovate-648a745.md b/.changeset/renovate-648a745.md
deleted file mode 100644
index 005c235736..0000000000
--- a/.changeset/renovate-648a745.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/backend-tasks': patch
----
-
-Updated dependency `cron` to `^2.0.0`.
-Updated dependency `@types/cron` to `^2.0.0`.
diff --git a/.changeset/renovate-7ed704d.md b/.changeset/renovate-7ed704d.md
deleted file mode 100644
index df638d8964..0000000000
--- a/.changeset/renovate-7ed704d.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `@rollup/plugin-commonjs` to `^22.0.0`.
diff --git a/.changeset/renovate-9363c67.md b/.changeset/renovate-9363c67.md
deleted file mode 100644
index 85115241de..0000000000
--- a/.changeset/renovate-9363c67.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-'@backstage/backend-common': patch
-'@backstage/backend-test-utils': patch
-'@backstage/catalog-client': patch
-'@backstage/cli': patch
-'@backstage/config-loader': patch
-'@backstage/core-app-api': patch
-'@backstage/core-components': patch
-'@backstage/core-plugin-api': patch
-'@backstage/integration-react': patch
-'@backstage/integration': patch
-'@backstage/release-manifests': patch
-'@backstage/test-utils': patch
-'@backstage/plugin-adr-backend': patch
-'@backstage/plugin-adr': patch
-'@backstage/plugin-airbrake-backend': patch
-'@backstage/plugin-airbrake': patch
-'@backstage/plugin-allure': patch
-'@backstage/plugin-analytics-module-ga': patch
-'@backstage/plugin-apache-airflow': patch
-'@backstage/plugin-api-docs': patch
-'@backstage/plugin-app-backend': patch
-'@backstage/plugin-auth-backend': patch
-'@backstage/plugin-auth-node': patch
-'@backstage/plugin-azure-devops-backend': patch
-'@backstage/plugin-azure-devops': patch
-'@backstage/plugin-badges': patch
-'@backstage/plugin-bitrise': patch
-'@backstage/plugin-catalog-backend-module-azure': patch
-'@backstage/plugin-catalog-backend-module-bitbucket': patch
-'@backstage/plugin-catalog-backend-module-gerrit': patch
-'@backstage/plugin-catalog-backend-module-github': patch
-'@backstage/plugin-catalog-backend-module-gitlab': patch
-'@backstage/plugin-catalog-backend-module-msgraph': patch
-'@backstage/plugin-catalog-backend': patch
-'@backstage/plugin-catalog-graphql': patch
-'@backstage/plugin-catalog-import': patch
-'@backstage/plugin-circleci': patch
-'@backstage/plugin-cloudbuild': patch
-'@backstage/plugin-code-climate': patch
-'@backstage/plugin-code-coverage-backend': patch
-'@backstage/plugin-code-coverage': patch
-'@backstage/plugin-codescene': patch
-'@backstage/plugin-config-schema': patch
-'@backstage/plugin-cost-insights': patch
-'@backstage/plugin-explore-react': patch
-'@backstage/plugin-explore': patch
-'@backstage/plugin-firehydrant': patch
-'@backstage/plugin-fossa': patch
-'@backstage/plugin-gcalendar': patch
-'@backstage/plugin-gcp-projects': patch
-'@backstage/plugin-git-release-manager': patch
-'@backstage/plugin-github-actions': patch
-'@backstage/plugin-github-deployments': patch
-'@backstage/plugin-github-pull-requests-board': patch
-'@backstage/plugin-gitops-profiles': patch
-'@backstage/plugin-gocd': patch
-'@backstage/plugin-graphiql': patch
-'@backstage/plugin-graphql-backend': patch
-'@backstage/plugin-home': patch
-'@backstage/plugin-ilert': patch
-'@backstage/plugin-jenkins-backend': patch
-'@backstage/plugin-jenkins': patch
-'@backstage/plugin-kafka': patch
-'@backstage/plugin-kubernetes': patch
-'@backstage/plugin-lighthouse': patch
-'@backstage/plugin-newrelic': patch
-'@backstage/plugin-org': patch
-'@backstage/plugin-pagerduty': patch
-'@backstage/plugin-periskop-backend': patch
-'@backstage/plugin-periskop': patch
-'@backstage/plugin-permission-backend': patch
-'@backstage/plugin-permission-common': patch
-'@backstage/plugin-permission-node': patch
-'@backstage/plugin-rollbar-backend': patch
-'@backstage/plugin-rollbar': patch
-'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-search': patch
-'@backstage/plugin-sentry': patch
-'@backstage/plugin-shortcuts': patch
-'@backstage/plugin-sonarqube': patch
-'@backstage/plugin-splunk-on-call': patch
-'@backstage/plugin-stack-overflow': patch
-'@backstage/plugin-tech-insights': patch
-'@backstage/plugin-tech-radar': patch
-'@backstage/plugin-techdocs-addons-test-utils': patch
-'@backstage/plugin-techdocs-backend': patch
-'@backstage/plugin-techdocs-module-addons-contrib': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-todo-backend': patch
-'@backstage/plugin-todo': patch
-'@backstage/plugin-user-settings': patch
-'@backstage/plugin-xcmetrics': patch
----
-
-Updated dependency `msw` to `^0.41.0`.
diff --git a/.changeset/renovate-9454dab.md b/.changeset/renovate-9454dab.md
new file mode 100644
index 0000000000..1f8401e10f
--- /dev/null
+++ b/.changeset/renovate-9454dab.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend': patch
+---
+
+Updated dependency `google-auth-library` to `^8.0.0`.
diff --git a/.changeset/renovate-ad175cc.md b/.changeset/renovate-ad175cc.md
deleted file mode 100644
index 72e278146e..0000000000
--- a/.changeset/renovate-ad175cc.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/core-components': patch
-'@backstage/plugin-gcp-projects': patch
-'@backstage/plugin-techdocs-module-addons-contrib': patch
----
-
-Updated dependency `@react-hookz/web` to `^14.0.0`.
diff --git a/.changeset/renovate-b7ba5e4.md b/.changeset/renovate-b7ba5e4.md
deleted file mode 100644
index db9082f1b2..0000000000
--- a/.changeset/renovate-b7ba5e4.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@techdocs/cli': patch
----
-
-Updated dependency `cypress` to `^10.0.0`.
diff --git a/.changeset/renovate-c8fbb1e.md b/.changeset/renovate-c8fbb1e.md
deleted file mode 100644
index f60d352577..0000000000
--- a/.changeset/renovate-c8fbb1e.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Updated dependency `passport` to `^0.6.0`.
diff --git a/.changeset/renovate-cd4546d.md b/.changeset/renovate-cd4546d.md
deleted file mode 100644
index 73c890d53d..0000000000
--- a/.changeset/renovate-cd4546d.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `minimatch` to `5.1.0`.
diff --git a/.changeset/renovate-dd5df61.md b/.changeset/renovate-dd5df61.md
deleted file mode 100644
index 6b30209e68..0000000000
--- a/.changeset/renovate-dd5df61.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/core-components': patch
-'@backstage/plugin-codescene': patch
-'@backstage/plugin-sonarqube': patch
----
-
-Updated dependency `rc-progress` to `3.3.3`.
diff --git a/.changeset/rich-zebras-design.md b/.changeset/rich-zebras-design.md
deleted file mode 100644
index 916226787a..0000000000
--- a/.changeset/rich-zebras-design.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-scaffolder': minor
----
-
-- Added a new page under `/create/tasks` to show tasks that have been run by the Scaffolder.
-- Ability to filter these tasks by the signed in user, and all tasks.
-- Added optional method to the `ScaffolderApi` interface called `listTasks` to get tasks with an required `filterByOwnership` parameter.
diff --git a/.changeset/right-one-at-the-wrong-time.md b/.changeset/right-one-at-the-wrong-time.md
deleted file mode 100644
index 5ef8e42555..0000000000
--- a/.changeset/right-one-at-the-wrong-time.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-user-settings': patch
-'@techdocs/cli': patch
----
-
-Updated sidebar-related logic to use `` + `useSidebarPinState()` and/or `` + `useSidebarOpenState()` from `@backstage/core-components`.
diff --git a/.changeset/rude-llamas-lie.md b/.changeset/rude-llamas-lie.md
new file mode 100644
index 0000000000..918d61da6d
--- /dev/null
+++ b/.changeset/rude-llamas-lie.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-vault': patch
+---
+
+Export missing parameters and added them to the api-report. Also adapted the API to the expected response from the backend
diff --git a/.changeset/scaffolder-form-context.md b/.changeset/scaffolder-form-context.md
deleted file mode 100644
index 9b0e19ebd0..0000000000
--- a/.changeset/scaffolder-form-context.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-'@backstage/plugin-scaffolder': minor
----
-
-Get data of other fields in Form from a custom field in template Scaffolder.
-following:
-
-```tsx
-const CustomFieldExtensionComponent = (props: FieldExtensionComponentProps) => {
- const { formData } = props.formContext;
- ...
-};
-
-const CustomFieldExtension = scaffolderPlugin.provide(
- createScaffolderFieldExtension({
- name: ...,
- component: CustomFieldExtensionComponent,
- validation: ...
- })
-);
-```
diff --git a/.changeset/search-eight-hounds-worry.md b/.changeset/search-eight-hounds-worry.md
deleted file mode 100644
index dcce19e65d..0000000000
--- a/.changeset/search-eight-hounds-worry.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend-module-elasticsearch': patch
----
-
-Use more precise matching for query filters
diff --git a/.changeset/search-eyes-of-them-all.md b/.changeset/search-eyes-of-them-all.md
deleted file mode 100644
index 4984d31877..0000000000
--- a/.changeset/search-eyes-of-them-all.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-search-backend-node': patch
----
-
-Introducing a `NewlineDelimitedJsonCollatorFactory`, which can be used to create search indices from newline delimited JSON files stored in external storage readable via a configured `UrlReader` instance.
-
-This is useful if you have an independent process periodically generating `*.ndjson` files consisting of `IndexableDocument` objects and want to be able to generate a fresh index based on the latest version of such a file.
diff --git a/.changeset/search-generals-gathered.md b/.changeset/search-generals-gathered.md
deleted file mode 100644
index 89ad5eeff5..0000000000
--- a/.changeset/search-generals-gathered.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search': patch
----
-
-Fixed a bug that could cause analytics events in other parts of Backstage to capture nonsensical values resembling search modal state under some circumstances.
diff --git a/.changeset/search-martha-sways.md b/.changeset/search-martha-sways.md
deleted file mode 100644
index 10231a4205..0000000000
--- a/.changeset/search-martha-sways.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend-node': patch
----
-
-Fixed a bug that prevented `TestPipeline.withSubject` from identifying valid `Readable` subjects that were technically transform streams.
diff --git a/.changeset/search-turtles-itch.md b/.changeset/search-turtles-itch.md
new file mode 100644
index 0000000000..2da26fc64a
--- /dev/null
+++ b/.changeset/search-turtles-itch.md
@@ -0,0 +1,13 @@
+---
+'@backstage/plugin-search': patch
+---
+
+To allow people to use a global search context in the search modal, the code for the search modal has been changed to only create a local search context if there is no parent context already defined.
+
+If you want to continue using a local context even if you define a global one, you will have to wrap the modal in a new local context manually:
+
+```tsx
+
+
+
+```
diff --git a/.changeset/serious-zebras-joke.md b/.changeset/serious-zebras-joke.md
new file mode 100644
index 0000000000..78f38ca967
--- /dev/null
+++ b/.changeset/serious-zebras-joke.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Support displaying subtitle text in `SidebarSubmenuItem`
diff --git a/.changeset/seven-readers-drop.md b/.changeset/seven-readers-drop.md
deleted file mode 100644
index 687969edfe..0000000000
--- a/.changeset/seven-readers-drop.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-'@backstage/plugin-search-backend-module-elasticsearch': patch
----
-
-Additional types now exported publicly:
-
-- ElasticSearchAgentOptions
-- ElasticSearchConcreteQuery
-- ElasticSearchQueryTranslator
-- ElasticSearchConnectionConstructor,
-- ElasticSearchTransportConstructor,
-- ElasticSearchNodeOptions,
-- ElasticSearchOptions,
-- ElasticSearchAuth,
diff --git a/.changeset/shaggy-crabs-return.md b/.changeset/shaggy-crabs-return.md
deleted file mode 100644
index afd1f74ef5..0000000000
--- a/.changeset/shaggy-crabs-return.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/catalog-model': patch
----
-
-Added targetRef to common.schema.json to match the Typescript type
diff --git a/.changeset/shaggy-melons-drive.md b/.changeset/shaggy-melons-drive.md
new file mode 100644
index 0000000000..b5674493f4
--- /dev/null
+++ b/.changeset/shaggy-melons-drive.md
@@ -0,0 +1,5 @@
+---
+'@backstage/catalog-model': minor
+---
+
+Adding an optional type field to entity links to group and categorize links
diff --git a/.changeset/sharp-numbers-taste.md b/.changeset/sharp-numbers-taste.md
new file mode 100644
index 0000000000..4819aca18f
--- /dev/null
+++ b/.changeset/sharp-numbers-taste.md
@@ -0,0 +1,7 @@
+---
+'@backstage/errors': minor
+---
+
+The `ResponseError.fromResponse` now accepts a more narrow response type, in order to avoid incompatibilities between different fetch implementations.
+
+The `response` property of `ResponseError` has also been narrowed to a new `ConsumedResponse` type that omits all the properties for consuming the body of the response. This is not considered a breaking change as it was always an error to try to consume the body of the response.
diff --git a/.changeset/sharp-planes-turn.md b/.changeset/sharp-planes-turn.md
new file mode 100644
index 0000000000..47f6a6176d
--- /dev/null
+++ b/.changeset/sharp-planes-turn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-vault-backend': minor
+---
+
+Throw exceptions instead of swallow them, remove some exported types from the `api-report`, small changes in the API responses & expose the vault `baseUrl` to the frontend as well
diff --git a/.changeset/shiny-clocks-joke.md b/.changeset/shiny-clocks-joke.md
deleted file mode 100644
index 3784cb1b7d..0000000000
--- a/.changeset/shiny-clocks-joke.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Added console warning to frontend start when the `app.baseUrl` and `backend.baseUrl` are identical
diff --git a/.changeset/shiny-turkeys-doubt.md b/.changeset/shiny-turkeys-doubt.md
new file mode 100644
index 0000000000..edac39182c
--- /dev/null
+++ b/.changeset/shiny-turkeys-doubt.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-org': patch
+---
+
+Render namespaces for teams with subtitles in `MyGroupsSidebarItem`
diff --git a/.changeset/shiny-windows-roll.md b/.changeset/shiny-windows-roll.md
deleted file mode 100644
index 46801542b5..0000000000
--- a/.changeset/shiny-windows-roll.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-Add an option to not protect the default branch.
diff --git a/.changeset/short-jokes-applaud.md b/.changeset/short-jokes-applaud.md
deleted file mode 100644
index b1b4f55858..0000000000
--- a/.changeset/short-jokes-applaud.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Accessibility updates:
-
-- Added `aria-label` to the `Select` component
-- Changed heading level used in the header of `Table` component
diff --git a/.changeset/short-olives-train.md b/.changeset/short-olives-train.md
new file mode 100644
index 0000000000..594d95f073
--- /dev/null
+++ b/.changeset/short-olives-train.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-kubernetes-backend': minor
+'@backstage/plugin-kubernetes-common': minor
+---
+
+Refactor `KubernetesObjectsProvider` with new methods, `KubernetesServiceLocator` now takes an `Entity` instead of `serviceId`
diff --git a/.changeset/shy-cameras-develop.md b/.changeset/shy-cameras-develop.md
new file mode 100644
index 0000000000..c62a9a56e3
--- /dev/null
+++ b/.changeset/shy-cameras-develop.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-catalog-backend-module-openapi': minor
+---
+
+Add basic OpenAPI \$ref support.
+
+For more information see [here](https://github.com/backstage/backstage/tree/master/plugins/catalog-backend-module-openapi).
diff --git a/.changeset/shy-geese-judge.md b/.changeset/shy-geese-judge.md
deleted file mode 100644
index fbb994263b..0000000000
--- a/.changeset/shy-geese-judge.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/integration': patch
----
-
-Updated to support deployments of Azure DevOps Server under TFS or similar sub path
diff --git a/.changeset/silent-coats-brake.md b/.changeset/silent-coats-brake.md
new file mode 100644
index 0000000000..b1cfbacb6a
--- /dev/null
+++ b/.changeset/silent-coats-brake.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-catalog': patch
+'@backstage/plugin-catalog-backend': patch
+---
+
+Use entity type predicates from catalog-model
diff --git a/.changeset/silly-wombats-flash.md b/.changeset/silly-wombats-flash.md
deleted file mode 100644
index d75196df76..0000000000
--- a/.changeset/silly-wombats-flash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-adr': patch
----
-
-Adding term highlighting support to `AdrSearchResultListItem`
diff --git a/.changeset/silver-needles-unite.md b/.changeset/silver-needles-unite.md
new file mode 100644
index 0000000000..b5fed7e615
--- /dev/null
+++ b/.changeset/silver-needles-unite.md
@@ -0,0 +1,26 @@
+---
+'@backstage/plugin-home': patch
+---
+
+Added support for customizing the time format used in the `HeaderWorldClock` component
+
+Here's an example of how this can be used in the `HomePage.tsx` found in `\packages\app\src\components\home` to change the clock to be in the 24hr time format:
+
+```diff
++const timeFormat: Intl.DateTimeFormatOptions = {
++ hour: '2-digit',
++ minute: '2-digit',
++ hour12: false,
++};
+
+export const homePage = (
+
+ } pageTitleOverride="Home">
++
+
+
+
+
+
+
+```
diff --git a/.changeset/sixty-plums-kick.md b/.changeset/sixty-plums-kick.md
deleted file mode 100644
index 5c11d9aaca..0000000000
--- a/.changeset/sixty-plums-kick.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': patch
----
-
-Fix for HPA matching when deploying same HPA in multiple namespaces
diff --git a/.changeset/sixty-poems-drum.md b/.changeset/sixty-poems-drum.md
deleted file mode 100644
index 82c5f6c499..0000000000
--- a/.changeset/sixty-poems-drum.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-graphiql': patch
----
-
-Fix for custom headers not being included in requests.
diff --git a/.changeset/sixty-rats-talk.md b/.changeset/sixty-rats-talk.md
deleted file mode 100644
index ad2575f83e..0000000000
--- a/.changeset/sixty-rats-talk.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Bump version of `cypress` in newly scaffolded Backstage Applications. To apply this change to your own instance, please make the following change to `packages/app/package.json` under `devDependencies`.
-
-```diff
-- "cypress": "^7.3.0",
-+ "cypress": "^9.7.0",
-```
diff --git a/.changeset/slimy-elephants-attend.md b/.changeset/slimy-elephants-attend.md
deleted file mode 100644
index 4add8f18a3..0000000000
--- a/.changeset/slimy-elephants-attend.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-'@backstage/plugin-catalog-backend': minor
----
-
-Allow array as non-spread arguments at the `CatalogBuilder`.
-
-```typescript
-builder.addEntityProvider(...getArrayOfProviders());
-```
-
-can be simplified to
-
-```typescript
-builder.addEntityProvider(getArrayOfProviders());
-```
diff --git a/.changeset/slow-apes-appear.md b/.changeset/slow-apes-appear.md
deleted file mode 100644
index 8771561893..0000000000
--- a/.changeset/slow-apes-appear.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-'@backstage/plugin-bitbucket-cloud-common': minor
----
-
-Add new common library `bitbucket-cloud-common` with a client for Bitbucket Cloud.
-
-This client can be reused across all packages and might be the future place for additional
-features like managing the rate limits, etc.
-
-The client itself was generated in parts using the `@openapitools/openapi-generator-cli`.
diff --git a/.changeset/smooth-sheep-hide.md b/.changeset/smooth-sheep-hide.md
new file mode 100644
index 0000000000..8a65602ca9
--- /dev/null
+++ b/.changeset/smooth-sheep-hide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-azure-devops': patch
+---
+
+Exporting azureDevOpsApiRef, AzureGitTagsIcon, and all hooks for the benefit of other plugins.
diff --git a/.changeset/spicy-forks-return.md b/.changeset/spicy-forks-return.md
deleted file mode 100644
index b36366639c..0000000000
--- a/.changeset/spicy-forks-return.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-Added the ability to use an additional `filter` when fetching groups in `MyGroupsSidebarItem` component. Example:
-
-```diff
-// app/src/components/Root/Root.tsx
-
-
- //...
- }>
- {/* Global nav, not org-specific */}
- //...
-
-
- //...
-
- Sidebar>
-
-```
diff --git a/.changeset/spotty-goats-look.md b/.changeset/spotty-goats-look.md
deleted file mode 100644
index 0759afcd57..0000000000
--- a/.changeset/spotty-goats-look.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
----
-
-Adds more of an explanation when the `publish:github` scaffolder action fails to create a repository.
diff --git a/.changeset/strange-tables-flash.md b/.changeset/strange-tables-flash.md
new file mode 100644
index 0000000000..b42069aa64
--- /dev/null
+++ b/.changeset/strange-tables-flash.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-stack-overflow': patch
+'@backstage/plugin-stack-overflow-backend': patch
+---
+
+app-config is now picked up properly.
diff --git a/.changeset/strange-trains-collect.md b/.changeset/strange-trains-collect.md
new file mode 100644
index 0000000000..3da9aff515
--- /dev/null
+++ b/.changeset/strange-trains-collect.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+The max content size for dry-run files has been reduced from 256k to 64k.
diff --git a/.changeset/strong-lies-explain.md b/.changeset/strong-lies-explain.md
new file mode 100644
index 0000000000..d9657be6b4
--- /dev/null
+++ b/.changeset/strong-lies-explain.md
@@ -0,0 +1,5 @@
+---
+'@backstage/theme': patch
+---
+
+Adds optional `htmlFontSize` property and also sets typography design tokens for h5 and h6 in base theme.
diff --git a/.changeset/sweet-plants-sparkle.md b/.changeset/sweet-plants-sparkle.md
new file mode 100644
index 0000000000..69e7647849
--- /dev/null
+++ b/.changeset/sweet-plants-sparkle.md
@@ -0,0 +1,5 @@
+---
+'@backstage/integration': patch
+---
+
+Allow frontend visibility for `integrations` itself.
diff --git a/.changeset/tame-guests-wave.md b/.changeset/tame-guests-wave.md
new file mode 100644
index 0000000000..bbf757084d
--- /dev/null
+++ b/.changeset/tame-guests-wave.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-azure-devops-backend': patch
+---
+
+Added comments to example to help avoid confusion as to where lines need to be added
diff --git a/.changeset/tasty-snails-boil.md b/.changeset/tasty-snails-boil.md
deleted file mode 100644
index d5b73d3b1b..0000000000
--- a/.changeset/tasty-snails-boil.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-node': patch
----
-
-Added configurable algorithms array for IdentityClient
diff --git a/.changeset/techdocs-buttons-film.md b/.changeset/techdocs-buttons-film.md
deleted file mode 100644
index 1af1ead4c7..0000000000
--- a/.changeset/techdocs-buttons-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Fix `EntityTechdocsContent` component to use objects instead of `` elements, otherwise "outlet" will be null on sub-pages and add-ons won't render.
diff --git a/.changeset/techdocs-crabs-retire.md b/.changeset/techdocs-crabs-retire.md
deleted file mode 100644
index b15c983bc4..0000000000
--- a/.changeset/techdocs-crabs-retire.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Restructures reader style transformations to improve code readability:
-
-- Extracts the style rules to separate files;
-- Creates a hook that processes each rule;
-- And creates another hook that returns a transformer responsible for injecting them into the head tag of a given element.
diff --git a/.changeset/techdocs-everybody-to-the-limit.md b/.changeset/techdocs-everybody-to-the-limit.md
deleted file mode 100644
index 9167838d03..0000000000
--- a/.changeset/techdocs-everybody-to-the-limit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-backend': patch
----
-
-In order to ensure a good, stable TechDocs user experience when running TechDocs with `techdocs.builder` set to `local`, the number of concurrent builds has been limited to 10. Any additional builds requested concurrently will be queued and handled as prior builds complete. In the unlikely event that you need to handle more concurrent builds, consider scaling out your TechDocs backend deployment or using the `external` option for `techdocs.builder`.
diff --git a/.changeset/techdocs-eyes-sit.md b/.changeset/techdocs-eyes-sit.md
new file mode 100644
index 0000000000..a09410a4fb
--- /dev/null
+++ b/.changeset/techdocs-eyes-sit.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-backend': patch
+---
+
+Add sample headings on the documented component homepage.
diff --git a/.changeset/techdocs-gorgeous-plants-sniff.md b/.changeset/techdocs-gorgeous-plants-sniff.md
new file mode 100644
index 0000000000..f5453f35be
--- /dev/null
+++ b/.changeset/techdocs-gorgeous-plants-sniff.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs': patch
+---
+
+Reorder browser tab title in Techdocs pages to have the site name first.
diff --git a/.changeset/techdocs-paws-study.md b/.changeset/techdocs-paws-study.md
deleted file mode 100644
index adbc8d1b3d..0000000000
--- a/.changeset/techdocs-paws-study.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-'@backstage/plugin-techdocs-backend': patch
----
-
-Output logs from a TechDocs build to a logging transport in addition to existing
-frontend event stream, for capturing these logs to other sources.
-
-This allows users to capture debugging information around why tech docs fail to build
-without needing to rely on end users capturing information from their web browser.
-
-The most common use case is to log to the same place as the rest of the backend
-application logs.
-
-Sample usage:
-
-```
-import { DockerContainerRunner } from '@backstage/backend-common';
-import {
- createRouter,
- Generators,
- Preparers,
- Publisher,
-} from '@backstage/plugin-techdocs-backend';
-import Docker from 'dockerode';
-import { Router } from 'express';
-import { PluginEnvironment } from '../types';
-
-export default async function createPlugin(
- env: PluginEnvironment,
-): Promise {
- const preparers = await Preparers.fromConfig(env.config, {
- logger: env.logger,
- reader: env.reader,
- });
-
- const dockerClient = new Docker();
- const containerRunner = new DockerContainerRunner({ dockerClient });
-
- const generators = await Generators.fromConfig(env.config, {
- logger: env.logger,
- containerRunner,
- });
-
- const publisher = await Publisher.fromConfig(env.config, {
- logger: env.logger,
- discovery: env.discovery,
- });
-
- await publisher.getReadiness();
-
- return await createRouter({
- preparers,
- generators,
- publisher,
- logger: env.logger,
- // Passing a buildLogTransport as a parameter in createRouter will enable
- // capturing build logs to a backend log stream
- buildLogTransport: env.logger,
- config: env.config,
- discovery: env.discovery,
- cache: env.cache,
- });
-}
-```
diff --git a/.changeset/techdocs-sheep-talk.md b/.changeset/techdocs-sheep-talk.md
new file mode 100644
index 0000000000..b17408d7a4
--- /dev/null
+++ b/.changeset/techdocs-sheep-talk.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs': patch
+---
+
+Remove the 60% factor from the font size calculation of headers to use the exact size defined in BackstageTheme.
diff --git a/.changeset/techdocs-swans-check.md b/.changeset/techdocs-swans-check.md
deleted file mode 100644
index 750648ff8a..0000000000
--- a/.changeset/techdocs-swans-check.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Packages a set of tweaks to the TechDocs addons rendering process:
-
-- Prevents displaying sidebars until page styles are loaded and the sidebar position is updated;
-- Prevents new sidebar locations from being created every time the reader page is rendered if these locations already exist;
-- Centers the styles loaded event to avoid having multiple locations setting the opacity style in Shadow Dom causing the screen to flash multiple times.
diff --git a/.changeset/techdocs-the-whole-pulse.md b/.changeset/techdocs-the-whole-pulse.md
new file mode 100644
index 0000000000..b54fb080ae
--- /dev/null
+++ b/.changeset/techdocs-the-whole-pulse.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+Fixed a bug that prevented docker images from being pulled by default when generating TechDocs.
diff --git a/.changeset/techdocs-vans-run.md b/.changeset/techdocs-vans-run.md
deleted file mode 100644
index 2e59da8ad5..0000000000
--- a/.changeset/techdocs-vans-run.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Convert `sanitizeDOM` transformer to hook as part of code readability improvements in dom file.
diff --git a/.changeset/techdocs-ways-type.md b/.changeset/techdocs-ways-type.md
deleted file mode 100644
index 6e147f62a7..0000000000
--- a/.changeset/techdocs-ways-type.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Change the `EntityDocsPage` path to be more specific and also add integration tests for `sub-routes` on this page.
diff --git a/.changeset/techdocs-wolves-carry.md b/.changeset/techdocs-wolves-carry.md
deleted file mode 100644
index 01436ee15f..0000000000
--- a/.changeset/techdocs-wolves-carry.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/plugin-techdocs-react': patch
----
-
-Creates a `TechDocsShadowDom` component that takes a tree of elements and an `onAppend` handler:
-
-- Calls the `onAppend` handler when appending the element tree to the shadow root;
-- Also dispatches an event when styles are loaded to let transformers know that the computed styles are ready to be consumed.
diff --git a/.changeset/ten-rocks-smile.md b/.changeset/ten-rocks-smile.md
deleted file mode 100644
index af178f559e..0000000000
--- a/.changeset/ten-rocks-smile.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': minor
----
-
-Gerrit Integration: Implemented a `RepoUrlPicker` for Gerrit.
diff --git a/.changeset/thick-radios-drive.md b/.changeset/thick-radios-drive.md
new file mode 100644
index 0000000000..130030be59
--- /dev/null
+++ b/.changeset/thick-radios-drive.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-adr': patch
+---
+
+Track discover event and result rank for `AdrSearchResultListItem`
diff --git a/.changeset/tidy-pens-work.md b/.changeset/tidy-pens-work.md
deleted file mode 100644
index d2199b86aa..0000000000
--- a/.changeset/tidy-pens-work.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-fix Sidebar Contexts deprecation message
diff --git a/.changeset/tricky-hounds-cry.md b/.changeset/tricky-hounds-cry.md
deleted file mode 100644
index d54d59fd30..0000000000
--- a/.changeset/tricky-hounds-cry.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Fix improper binding of 'this' in ALB Auth provider
diff --git a/.changeset/twelve-candles-jump.md b/.changeset/twelve-candles-jump.md
new file mode 100644
index 0000000000..9d0cccd0ba
--- /dev/null
+++ b/.changeset/twelve-candles-jump.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-ldap': patch
+---
+
+Add possibility to resolve relations by RDN, in addition to UUID and DN
diff --git a/.changeset/twenty-mangos-clap.md b/.changeset/twenty-mangos-clap.md
deleted file mode 100644
index 5cb4284711..0000000000
--- a/.changeset/twenty-mangos-clap.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend-node': patch
----
-
-Replaced all `@beta` exports with `@public` exports
diff --git a/.changeset/two-crews-accept.md b/.changeset/two-crews-accept.md
new file mode 100644
index 0000000000..9540f97cb5
--- /dev/null
+++ b/.changeset/two-crews-accept.md
@@ -0,0 +1,15 @@
+---
+'@backstage/plugin-catalog-backend-module-gitlab': patch
+---
+
+Add the possibility in the `GitlabDiscoveryEntityProvider` to scan the whole project instead of concrete groups. For that, use a configuration like this one, where the group parameter is omitted (not mandatory anymore):
+
+```yaml
+catalog:
+ providers:
+ gitlab:
+ yourProviderId:
+ host: gitlab-host # Identifies one of the hosts set up in the integrations
+ branch: main # Optional. Uses `master` as default
+ entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml`
+```
diff --git a/.changeset/unlucky-lies-pretend.md b/.changeset/unlucky-lies-pretend.md
deleted file mode 100644
index a52f2f394e..0000000000
--- a/.changeset/unlucky-lies-pretend.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-backend': minor
----
-
-Add support to fetch data for Stateful Sets from Kubernetes
diff --git a/.changeset/unlucky-stingrays-juggle.md b/.changeset/unlucky-stingrays-juggle.md
new file mode 100644
index 0000000000..f2e83f7163
--- /dev/null
+++ b/.changeset/unlucky-stingrays-juggle.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-import': patch
+---
+
+Support use without `integrations` or only integrations without frontend visible properties (e.g., `bitbucketCloud`) being configured by checking `integrations.github` directly without attempting to load `integrations`.
diff --git a/.changeset/up-in-space-man.md b/.changeset/up-in-space-man.md
deleted file mode 100644
index 3a4dc6c5d3..0000000000
--- a/.changeset/up-in-space-man.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-The `SidebarPinStateContext` and `SidebarContext` have been deprecated and will be removed in a future release. Instead, use `` + `useSidebarPinState()` and/or `` + `useSidebarOpenState()`.
-
-This was done to ensure that sidebar state can be shared successfully across components exported by different packages, regardless of what version of this package is resolved and installed for each individual package.
diff --git a/.changeset/violet-apples-repair.md b/.changeset/violet-apples-repair.md
deleted file mode 100644
index a6be2797f6..0000000000
--- a/.changeset/violet-apples-repair.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-import': patch
----
-
-Updated catalog import page text so they go in the correct hierarchy order
diff --git a/.changeset/warm-bats-jump.md b/.changeset/warm-bats-jump.md
deleted file mode 100644
index 1547734434..0000000000
--- a/.changeset/warm-bats-jump.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-bitbucket': minor
----
-
-Integrate `@backstage/plugin-bitbucket-cloud-common` as replacement for the `BitbucketCloudClient`.
diff --git a/.changeset/weak-bananas-deliver.md b/.changeset/weak-bananas-deliver.md
new file mode 100644
index 0000000000..f46c7b7bfe
--- /dev/null
+++ b/.changeset/weak-bananas-deliver.md
@@ -0,0 +1,28 @@
+---
+'@backstage/plugin-pagerduty': minor
+---
+
+Introduces a new annotation `pagerduty.com/service-id` that can be used instead of the `pagerduty.com/integration-key` annotation.
+_Note: If both annotations are specified on a given Entity, then the `pagerduty.com/integration-key` annotation will be prefered_
+
+**BREAKING** The `PagerDutyClient.fromConfig` static method now expects a `FetchApi` compatible object and has been refactored to
+accept 2 arguments: config and ClientApiDependencies
+The `PagerDutyClient` now relies on a `fetchApi` being available to execute `fetch` requests.
+
+**BREAKING** A new query method `getServiceByEntity` that is used to query for Services by either the `integrationKey` or `serviceId`
+annotation values if they are defined. The `integrationKey` value is preferred currently over `serviceId`. As such, the previous
+`getServiceByIntegrationKey` method has been removed.
+
+**BREAKING** The return values for each Client query method has been changed to return an object instead of raw values.
+For example, the `getIncidentsByServiceId` query method now returns an object in the shape of `{ incidents: Incident[] }`
+instead of just `Incident[]`.
+This same pattern goes for `getChangeEventsByServiceId` and `getOnCallByPolicyId` functions.
+
+**BREAKING** All public exported types that relate to entities within PagerDuty have been prefixed with `PagerDuty` (e.g. `ServicesResponse` is now `PagerDutyServicesResponse` and `User` is now `PagerDutyUser`)
+
+In addition, various enhancements/bug fixes were introduced:
+
+- The `PagerDutyCard` component now wraps error and loading messages with an `InfoCard` to contain errors/messages. This enforces a consistent experience on the EntityPage
+- If no service can be found for the provided integration key, a new Error Message Empty State component will be shown instead of an error alert
+- Introduces the `fetchApi` to replace standard `window.fetch`
+ - ensures that Identity Authorization is respected and provided in API requests
diff --git a/.changeset/weak-llamas-repeat.md b/.changeset/weak-llamas-repeat.md
new file mode 100644
index 0000000000..a86ce3a964
--- /dev/null
+++ b/.changeset/weak-llamas-repeat.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-backend': minor
+---
+
+Added local publishing target directory `config`: `techdocs.publisher.local.publishDirectory`
diff --git a/.changeset/wet-dolphins-act.md b/.changeset/wet-dolphins-act.md
new file mode 100644
index 0000000000..b975f464cb
--- /dev/null
+++ b/.changeset/wet-dolphins-act.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-github-actions': patch
+---
+
+Minor cleanup of the API surface.
diff --git a/.changeset/wicked-icons-grin.md b/.changeset/wicked-icons-grin.md
new file mode 100644
index 0000000000..8d26a9255e
--- /dev/null
+++ b/.changeset/wicked-icons-grin.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Swap usage of `MaterialTable` with `Table` from `core-components`
diff --git a/.changeset/wicked-teachers-hide.md b/.changeset/wicked-teachers-hide.md
deleted file mode 100644
index c93b9e0848..0000000000
--- a/.changeset/wicked-teachers-hide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-ldap': minor
----
-
-Added the possibility to pass TLS configuration to ldap connection
diff --git a/.changeset/wise-nails-hang.md b/.changeset/wise-nails-hang.md
deleted file mode 100644
index cec8c1d397..0000000000
--- a/.changeset/wise-nails-hang.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-tasks': patch
----
-
-Add error logging when a background task throws an error rather than silently swallowing it.
diff --git a/.changeset/yellow-falcons-sin.md b/.changeset/yellow-falcons-sin.md
deleted file mode 100644
index 943a93d8ac..0000000000
--- a/.changeset/yellow-falcons-sin.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Handle binary files and files that are too large during dry-run content upload.
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b4f825d221..7127fb1da2 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -8,16 +8,13 @@
yarn.lock @backstage/reviewers @backstage-service
*/yarn.lock @backstage/reviewers @backstage-service
/.changeset/cost-insights-* @backstage/reviewers @backstage/silver-lining
-/.changeset/search-* @backstage/reviewers @backstage/techdocs-core
-/.changeset/techdocs-* @backstage/reviewers @backstage/techdocs-core
+/.changeset @backstage/reviewers @backstage/techdocs-core
/cypress/src/integration/plugins/techdocs.spec.ts @backstage/reviewers @backstage/techdocs-core
/docs/assets/search @backstage/reviewers @backstage/techdocs-core
/docs/features/search @backstage/reviewers @backstage/techdocs-core
/docs/features/techdocs @backstage/reviewers @backstage/techdocs-core
-/packages/search-common @backstage/reviewers @backstage/techdocs-core
/packages/techdocs-cli @backstage/reviewers @backstage/techdocs-core
/packages/techdocs-cli-embedded-app @backstage/reviewers @backstage/techdocs-core
-/packages/techdocs-common @backstage/reviewers @backstage/techdocs-core
/plugins/allure @backstage/reviewers @deepak-bhardwaj-ps
/plugins/apache-airflow @backstage/reviewers @cmpadden
/plugins/api-docs @backstage/reviewers @backstage/sda-se-reviewers
@@ -42,14 +39,16 @@ yarn.lock @backstage/reviewers @backst
/plugins/jenkins-backend @backstage/reviewers @timja
/plugins/kafka @backstage/reviewers @nirga
/plugins/kafka-backend @backstage/reviewers @nirga
+/plugins/kubernetes @backstage/reviewers @backstage/warpspeed
+/plugins/kubernetes-* @backstage/reviewers @backstage/warpspeed
/plugins/newrelic-dashboard @backstage/reviewers @mufaddal7
/plugins/scaffolder-backend-module-rails @backstage/reviewers @angeliski
/plugins/scaffolder-backend-module-yeoman @backstage/reviewers @pawelmitka
/plugins/search @backstage/reviewers @backstage/techdocs-core
/plugins/search-* @backstage/reviewers @backstage/techdocs-core
+/plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers
/plugins/stack-overflow @backstage/reviewers @backstage/techdocs-core
/plugins/stack-overflow-backend @backstage/reviewers @backstage/techdocs-core
-/plugins/sonarqube @backstage/reviewers @backstage/sda-se-reviewers
/plugins/techdocs @backstage/reviewers @backstage/techdocs-core
/plugins/techdocs-* @backstage/reviewers @backstage/techdocs-core
/tech-insights-backend @backstage/reviewers @xantier @iain-b
diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt
index 7631640199..8428dc2d0e 100644
--- a/.github/vale/Vocab/Backstage/accept.txt
+++ b/.github/vale/Vocab/Backstage/accept.txt
@@ -85,6 +85,8 @@ dockerfiles
Dockerize
dockerode
Docusaurus
+dynatrace
+Dynatrace
ecco
env
Env
@@ -275,6 +277,7 @@ scrollbar
seb
semlas
semver
+serializable
Serverless
shoutout
siloed
@@ -301,6 +304,7 @@ superfences
Superfences
superset
supertype
+storable
talkdesk
Talkdesk
tasklist
diff --git a/.github/workflows/verify_docs-quality.yml b/.github/workflows/verify_docs-quality.yml
index fe8849a085..736f09571f 100644
--- a/.github/workflows/verify_docs-quality.yml
+++ b/.github/workflows/verify_docs-quality.yml
@@ -21,7 +21,7 @@ jobs:
run: echo "::set-output name=args::$(node scripts/check-docs-quality.js --ci-args)"
- name: documentation quality check
- uses: errata-ai/vale-action@v1.5.0
+ uses: errata-ai/vale-action@v2.0.1
with:
# This also contains --config=.github/vale/config.ini ... :/
files: '${{ steps.generate.outputs.args }}'
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 68ecc42767..0e2ab7da06 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -3,7 +3,7 @@
_If you're using Backstage in your organization, please try to add your company name to this list. This really helps the project to gain momentum and credibility. It's a small contribution back to the project with a big impact._
| Organization | Contact | Description of Use |
-| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Spotify](https://www.spotify.com) | [@leemills83](https://github.com/leemills83) | Main interface towards all of Spotify's infrastructure and technical documentation. |
| [bol.com](https://www.bol.com) | [@sagacity](https://github.com/sagacity) | Initial work being done to unify platform tooling. |
| [DFDS](https://www.dfds.com) | [@carlsendk](https://github.com/carlsendk) | V2 self-service platform. |
@@ -34,9 +34,9 @@ _If you're using Backstage in your organization, please try to add your company
| [Netflix](https://www.netflix.com/) | [bleathem](https://github.com/bleathem) | Our Backstage implementation will be the front door to a unified experience connecting our internal platform products across important workflows with integrated knowledge and support. |
| [b.well](https://www.icanbwell.com/) | [Jacob Rosales](https://github.com/jrosales) | Foundation for our engineering portal and cloud insights. |
| [PagerDuty](https://www.pagerduty.com/) | [Mark Shaw](https://github.com/markshawtoronto) | Developer portal, initially focused on software templates and tech-docs. |
-| [MoonShiner](https://moonshiner.at) | [Fabian Hippmann](https://github.com/FabianHippmann) | Developer portal - helps us keep track of our customer projects, onboard new developers & improve our development process 🌕🚀🧑🚀 |
+| [MoonShiner](https://moonshiner.at) | [Fabian Hippmann](https://github.com/FabianHippmann) | Developer portal - helps us keep track of our customer projects, onboard new developers & improve our development process 🌕🚀🧑🚀 |
| [FundApps](https://www.fundapps.co/) | [Elliot Greenwood](https://github.com/egnwd) | Developer Portal - A place for us to keep track of our projects and documentation for all services and processes |
-| [DAZN](https://dazn.com/) | [Lou Bichard](https://twitter.com/loujaybee), [Marco Crivellaro](https://github.com/crivetechie), [Alex Hollerith](mailto:alex.hollerith@dazn.com) | Ingesting all of DAZN's repos for the catalog, migrating our internal platform apps (pull request boards, release information, inner source marketplace etc) to Backstage plugins (where applicable). |
+| [DAZN](https://dazn.com/) | [Lou Bichard](https://twitter.com/loujaybee), [Marco Crivellaro](https://github.com/crivetechie), [Alex Hollerith](mailto:alex.hollerith@dazn.com), [Kamil Wolny](https://github.com/mrwolny) | Ingesting all of DAZN's repos for the catalog, migrating our internal platform apps (pull request boards, release information, inner source marketplace etc) to Backstage plugins (where applicable). |
| [HelloFresh](https://www.hellofresh.de/) | [@iammuho](https://github.com/iammuho), [@ElenaForester](https://github.com/ElenaForester), [@diegomarangoni](https://github.com/diegomarangoni) | Our developer portal at HelloFresh - Spread across an organisation of 500+ engineers globally. |
| [FactSet](https://www.factset.com/) | [@kuangp](https://github.com/kuangp) | Developer portal to provide discoverability to all internal components, APIs, documentation, and scaffold templates with integrations to our internal infrastructure tools. |
| [Workrise](https://www.workrise.com/) | [Michael Rode](https://github.com/michaelrode) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. |
@@ -135,7 +135,7 @@ _If you're using Backstage in your organization, please try to add your company
| [Laybuy](https://www.laybuy.com) | [Chris Simmons](https://github.com/contrarianchris) | Backstage is the heart of Laybuy’s new centralised Development Platform, bringing disparate development tools and experiences into a single easy-to-use portal. It simplifies software and API discovery, project scaffolding, and technical documentation, enabling us to embrace golden path development and automate software standards. |
| [Sendinblue](https://engineering.sendinblue.com/) | [Tanguy Antoine](mailto:antoine.tanguy@sendinblue.com) | Helps us drive the change at scale. Puts light on services, resources, and dependencies. One tool that rules them all through plugins we created for that purpose. We are aiming to put Backstage at the center of every developer's work (Actionable items, Debugging, Monitoring, Provisioning, etc...) to improve their happiness |
| [SafetyCulture](https://safetyculture.com/) | [@R-cen](https://github.com/R-cen), [@lachlancooper](https://github.com/lachlancooper), [@hkf57](https://github.com/hkf57) | Internal developer portal to provide a centralized place for engineers to see an overview of their team's services and information related to the service from other systems. Initially focused on the software catalog, techdocs and search. |
-| [Sana Life Science](https://sanalifescience.com) | [Joe Hillyard](mailto:joe@sanalifescience.com) | API Catalog, Tools Management & Control Hub |
+| [Sana Life Science](https://sanalifescience.com) | [Joe Hillyard](mailto:joe@sanalifescience.com) | API Catalog, Tools Management & Control Hub |
| [Ndustrial](https://ndustrial.io) | [Jonathan Skubic](mailto:jonathan@ndustrial.io) | Software Project Catalog |
| [TUI Musement](https://www.musement.com/uk/) | [Simone Fumagalli](mailto:simone.fumagalli@musement.com) | We are importing our catalog into it to keep it under control. The next step is start using templates |
| [Kambi AB](https://www.kambi.com) | [Martin Norum](mailto:martin.norum@kambi.com) | We want to kick ass at speed, so we're currently building up a catalog of our existing software, and looking into how Backstage can support us in our journey towards autonomous product teams. Both to improve speed to market and operational awareness. |
@@ -147,11 +147,41 @@ _If you're using Backstage in your organization, please try to add your company
| [Yatra.com](https://www.yatra.com) | [Matiur Rahman Maitur](mailto:arifrahman4u@gmail.com) | Easy to find out Project details, ownership, dependent services, Documentation, it is very useful for developer. |
| [Yotpo](https://www.yotpo.com) | [Liran Yogev](mailto:lyogev@yotpo.com) | Services exploration, documentation and project generator |
| [Mainsail Industries](https://www.mainsailindustries.com) | [Brad Sollar](mailto:brad@mainsailindustries.com) | Internal tool management and docs |
-| [Prisma](https://prismamp.com) | [Sebastian Gravina](mailto:sgravina@prismamp.com) | Is part of our IDP |
-| [Syndetic](https://syndetic.io) | [John Feminella](mailto:robots+swag@syndetic.io) | We're working with multiple F100 clients for digital transformation and Backstage is a key part of our landing and acceleration strategy. |
+| [Prisma](https://prismamp.com) | [Sebastian Gravina](mailto:sgravina@prismamp.com) | Is part of our IDP |
+| [Syndetic](https://syndetic.io) | [John Feminella](mailto:robots+swag@syndetic.io) | We're working with multiple F100 clients for digital transformation and Backstage is a key part of our landing and acceleration strategy. |
| [Imagine Learning](https://www.imaginelearning.com/en/us) | [Jared Stehler](mailto:jared.stehler@imaginelearning.com) | Software catalog, product dependency visualization |
| [Alef Education](https://www.alefeducation.com) | [Belal Juma](mailto:belal.juma@alefeducation.com) | We use backstage as a Service Catalog and rely on the TechDocs feature |
| [Zego](https://www.zego.com) | [Sean Kenny](mailto:sean.kenny@zego.com) | Single pane of glass for organisational and operational information for all services across our systems. |
| [Absa Group Limited](https://www.absa.africa/absaafrica/) | [Chris Kieser](mailto:chris.kieser@absa.africa) | Developer portal for all development needs - security, AWS, k8s, build and deployment pipelines and more |
| [Nutrien Ag Solutions](https://www.nutrienagsolutions.com.au) | [Jan Quijano](mailto:jan.quijano@nutrien.com.au) | Software Project Catalog |
-| [Lendingkart](https://www.lendingkart.com/) | [Dinesh Rajpoot](mailto:dinesh.rajpoot@lendingkart.com) | Service catalog, Software templates to enforce best practices and tech insights to track mandates & migrations.
+| [Lendingkart](https://www.lendingkart.com/) | [Dinesh Rajpoot](mailto:dinesh.rajpoot@lendingkart.com) | Service catalog, Software templates to enforce best practices and tech insights to track mandates & migrations. |
+| [Meltwater](https://underthehood.meltwater.com) | [@spier](https://github.com/spier), [@remen](https://github.com/remen) | Improving developer experience by centralizing documentation and internal APIs. Goal: Foster InnerSource collaboration and speed up onboarding time in our 500+ people Product & Engineering org. |
+| [Doctolib](https://doctolib.engineering/) | [@djiit](https://github.com/djiit) | Rails modularization effort awareness, tech organization discoverability. Improving the daily workflows and collaboration processes of our engineers. |
+| [Twilio](https://www.twilio.com) | [Kyle Smith](https://github.com/knksmith57) | Developer portal, universal software catalog, and centralized taxonomy platform. |
+| [OVHcloud](https://www.ovhcloud.com/fr/) | [Jean-Philippe Blary](https://github.com/blaryjp), [Arnaud Bauer](mailto:arnaud.bauer@ovhcloud.com), [Flavien Chantelot](https://github.com/Dorn-) | We're providing Backstage to our collaborators to ease their daily jobs, and let them extends it using plugins. |
+| [Procter & Gamble](https://us.pg.com/) | [Binita Nayak](https://github.com/binitan), [Josh Rose](https://github.com/joshuarose), [RJ Winkler](https://github.com/rjwink) | P&G leverages Backstage to build internal developer portal to ensure developers' happiness. This developer portal shall act as single source of information needed by development teams to seamlessly create, find and maintain their software components/resources/documentation. |
+| [SANS Institute](https://www.sans.org) | [Christopher Klewin](mailto:cklewin@sans.org) | Developer portal for centralized visibility, reporting, and tooling across multiple organizations. |
+| [Okay](https://www.okayhq.com/) | [Tomas Barreto](mailto:tomas@okayhq.com) | Service catalog, developer portal, and technical documentation |
+| [Kaluza](https://www.kaluza.com) | [James Condren](mailto:james.condron@kaluza.com) | To provide an automated golden path to developers, with a focus on discovery and documentation |
+| [LinkedIn](https://linkedin.com) | [Joshua Lawrence](mailto:jlawrence@linkedin.com) | We are building a platform for internal web tools |
+| [Forto](https://forto.com) | [Rodolfo Matos](mailto:rodolfo.matos@forto.com) | Still in a experimental phase/assessing the organisational fit. We will be using it mostly a developer portal -- pretty standard use case. |
+| [BetterUp](https://betterup.com) | [Jordan Hochenbaum](mailto:jordan.hochenbaum@betterup.co) | We're starting to use Backstage as the central hub for service discovery, documentation, and develop experience. |
+| [warung pintar](https://warungpintar.co.id/) | [Muhammad Rafly Andrianza](mailto:rafly.andrianza@warungpintar.co) | Initial Work Developer Portal with TechRadar, Service Catalogue, TechDocs, anything about platform & infrastructure resources. |
+| [RD](https://rd.com.br/) | [Michael Silva](mailto:midsilva@rd.com.br) | We are building our developer portal. Software catalog, Tech Radar and Scaffolding are among the initial features. |
+| [AEB](https://www.aeb.com/) | [David Fankhänel](mailto:dfl@aeb.com) | Central developer platform for creating new apps via templates, getting an overview via software catalog, etc |
+| [SALTO Systems](https://saltosystems.com) | [Ian Cowley](mailto:i.cowley@saltosystems.com) | Currently using Backstage as an internal documentation portal. |
+| [Lummo](https://lummo.com) | [Anjul Sahu](mailto:anjul@lummo.com) | We are building the internal developer portal using Backstage and bringing up all integrations and service information at one place. |
+| [Frontside](https://frontside.com) | [Taras Mankovski](mailto:taras@frontside.com) | |
+| [Stepstone](https://www.stepstone.com/en/) | [Neil Kennedy](mailto:neil.kennedy@stepstone.com) | StepStone is using Backstage to solve problems around ownership and visibility of our applications. We have thousands of repos, multiple legacy systems and a growing platform that is hard to maintain. Backstage is forming the centre of our push to embrace the chaos. |
+| [idwall](https://idwall.co) | [Rodrigo Catão Araujo](mailto:rodrigo@idwall.co) | Developer Portal for internal engineers to access service catalog, documentation, observability, infrastructure and internal tooling. |
+| [Jaguar Land Rover](https://www.jaguarlandrover.com) | [Josh Walker](mailto:jwalke18@jaguarlandrover.com) | Users can request a Gitlab user, which creates a commit with the Terraform code. |
+| [Glovo](http://glovoapp.com/) | [Yaser Toutah](mailto:yaser.toutah@glovoapp.com) | Developer Portal to improve our Developer Experience, identify ownership and track metadata for our services and tools. It's our Service Catalog. In addition to that, we use it for Service Creation, and much more. |
+| [Dixa](https://dixa.com) | [Jens Møller](mailto:jsc@dixa.com) | We are in early stages, but using it to get overview of our repositories and ownership of these. We want among many things to use it for compliance and easier access to key metrics for our repos. |
+| [Notino](https://notino.com) | [Jan Remunda](mailto:jan.remunda@notino.com) | Backstage is our developer portal. We use it as service catalog and for technical documentation. |
+| [Polarpoint](https://polarpoint.io/) | [Surj Bains](https://github.com/polarpoint-io) | We are using Backstage as our Developer portal as well as for hosting our DevOps portal for software catalog. |
+| [Niche](https://niche.com) | [Zach Romitz](mailto:zach.romitz@niche.com) | We are using the Software Catalog, Software Templates, API documentation, and Techdocs to try and centralize service information. |
+| [Mercedes-Benz.io](https://www.mercedes-benz.io/) | [Manuel Santos](https://github.com/manusant) | At Mercedes-Benz we use it as a developer portal with software catalog, TechDocs, Scaffolding and custom plugins. It provides an overview of our tech ecosystem to our product development teams. The portal also serves as a way to foster collaboration among the numerous companies of the Mercedes-Benz Group. |
+| [Funding Circle](https://www.fundingcircle.com/) | [Ariel Pacciaroni](https://github.com/arielpacciaroni) | We are building the internal developer portal using Backstage project and centralizing all services information at one place. The portal helps us track down repositories ownership as well as direct access to key information on every component. |
+| [Clarivate](https://www.clarivate.com) | [Gabriele Carteni](mailto:gabriele.carteni@clarivate.com) | We are building our Developer Portal using Backstage to have a better control over our software ecosystem, integrate SDLC tools and promote best practices |
+| [Cho Tot](https://www.chotot.com) | [Chotot Team](mailto:sre@chotot.vn) | Internal developer portal, service catalog with CI/CD tools. |
+| [William Hill](https://www.williamhillgroup.com/) | [Pat Mills](mailto:pat.mills@williamhill.com), [Nathan Flynn](mailto:nflynn@williamhill.co.uk), and [Nishkarsh Raj](mailto:nishkarsh.raj@williamhill.co.uk) | William Hill are leveraging Backstage to build our Engineering Portal. Our mission is to centralize the software catalog inventory to enable service discoverability, reduce the onboarding time for new Engineers, provide a single pane of glass to accelerate Developer Productivity and Save Engineers time. Our aspiration is to create an InnerSource community focussed on organization-wide patterns that are re-usable and can be self-served with the Scaffolder. |
diff --git a/README.md b/README.md
index 5dba1fdf52..a6e740a427 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@

+> 🏖 From July 7th due to Summer Vacations for some of the maintainers, expect the project to move a little slower than normal, and support to be limited. Normal service will resume on August 8th 🏝
+
# [Backstage](https://backstage.io)
[](https://opensource.org/licenses/Apache-2.0)
diff --git a/app-config.yaml b/app-config.yaml
index eb51c59847..a56a3df9d1 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -115,6 +115,11 @@ proxy:
headers:
Authorization: Basic ${GOCD_AUTH_CREDENTIALS}
+ '/dynatrace':
+ target: https://your.dynatrace.instance.com/api/v2
+ headers:
+ Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}'
+
organization:
name: My Company
@@ -131,6 +136,9 @@ techdocs:
publisher:
type: 'local' # Alternatives - 'googleGcs' or 'awsS3' or 'azureBlobStorage' or 'openStackSwift'. Read documentation for using alternatives.
+dynatrace:
+ baseUrl: https://your.dynatrace.instance.com
+
sentry:
organization: my-company
@@ -163,26 +171,26 @@ integrations:
github:
- host: github.com
token: ${GITHUB_TOKEN}
- ### Example for how to add your GitHub Enterprise instance using the API:
- # - host: ghe.example.net
- # apiBaseUrl: https://ghe.example.net/api/v3
- # token: ${GHE_TOKEN}
- ### Example for how to add your GitHub Enterprise instance using raw HTTP fetches (token is optional):
- # - host: ghe.example.net
- # rawBaseUrl: https://ghe.example.net/raw
- # token: ${GHE_TOKEN}
+ ### Example for how to add your GitHub Enterprise instance using the API:
+ # - host: ghe.example.net
+ # apiBaseUrl: https://ghe.example.net/api/v3
+ # token: ${GHE_TOKEN}
+ ### Example for how to add your GitHub Enterprise instance using raw HTTP fetches (token is optional):
+ # - host: ghe.example.net
+ # rawBaseUrl: https://ghe.example.net/raw
+ # token: ${GHE_TOKEN}
gitlab:
- host: gitlab.com
token: ${GITLAB_TOKEN}
- bitbucket:
- - host: bitbucket.org
- username: ${BITBUCKET_USERNAME}
- appPassword: ${BITBUCKET_APP_PASSWORD}
- ### Example for how to add your bitbucket server instance using the API:
- # - host: server.bitbucket.com
- # apiBaseUrl: server.bitbucket.com
- # username: ${BITBUCKET_SERVER_USERNAME}
- # appPassword: ${BITBUCKET_SERVER_APP_PASSWORD}
+ ### Example for how to add a bitbucket cloud integration
+ # bitbucketCloud:
+ # - username: ${BITBUCKET_USERNAME}
+ # appPassword: ${BITBUCKET_APP_PASSWORD}
+ ### Example for how to add your bitbucket server instance using the API:
+ # - host: server.bitbucket.com
+ # apiBaseUrl: server.bitbucket.com
+ # username: ${BITBUCKET_SERVER_USERNAME}
+ # appPassword: ${BITBUCKET_SERVER_APP_PASSWORD}
azure:
- host: dev.azure.com
token: ${AZURE_TOKEN}
diff --git a/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md b/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md
index 2b3e02c18b..3cedf5634b 100644
--- a/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md
+++ b/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md
@@ -122,10 +122,7 @@ When using ALB auth you can configure it as described [here](https://backstage.i
- replace the content of `packages/backend/plugin/auth.ts` with the below and tweak it according to your needs.
```ts
-import {
- createRouter,
- createAwsAlbProvider,
-} from '@backstage/plugin-auth-backend';
+import { createRouter, providers } from '@backstage/plugin-auth-backend';
import {
DEFAULT_NAMESPACE,
stringifyEntityRef,
@@ -145,7 +142,7 @@ export default async function createPlugin({
database,
discovery,
providerFactories: {
- awsalb: createAwsAlbProvider({
+ awsalb: providers.awsAlb.create({
authHandler: async ({ fullProfile }) => {
let email: string | undefined = undefined;
if (fullProfile.emails && fullProfile.emails.length > 0) {
diff --git a/contrib/docs/tutorials/prometheus-metrics-output.png b/contrib/docs/tutorials/prometheus-metrics-output.png
new file mode 100644
index 0000000000..f7fac739ac
Binary files /dev/null and b/contrib/docs/tutorials/prometheus-metrics-output.png differ
diff --git a/contrib/docs/tutorials/prometheus-metrics.md b/contrib/docs/tutorials/prometheus-metrics.md
new file mode 100644
index 0000000000..5b7dc61df3
--- /dev/null
+++ b/contrib/docs/tutorials/prometheus-metrics.md
@@ -0,0 +1,108 @@
+# Prometheus
+
+## Overview
+
+This is a small tutorial that goes over how to setup your Backstage instance to output metrics in a format that can be pulled in by Prometheus.
+
+## How to Setup Prometheus Metrics
+
+1. First we need to add the needed dependencies to the `package.json` in the `\packages\backend`:
+
+ ```diff
+ // packages/backend/package.json
+ "dependencies": {
+ + "express-prom-bundle": "^6.3.6",
+ + "prom-client": "^14.0.1",
+ ```
+
+2. Now we want to run `yarn install` from the root of the project to get those dependencies in place
+3. Then we need to add a handler for the metrics by creating a file called `metrics.ts` in the `\packages\backend\src` folder
+4. Next we add the following content to the `metrics.ts` file:
+
+ ```ts
+ // packages/backend/src/metrics.ts
+ import { useHotCleanup } from '@backstage/backend-common';
+ import { RequestHandler } from 'express';
+ import promBundle from 'express-prom-bundle';
+ import prom from 'prom-client';
+ import * as url from 'url';
+
+ const rootRegEx = new RegExp('^/([^/]*)/.*');
+ const apiRegEx = new RegExp('^/api/([^/]*)/.*');
+
+ export function normalizePath(req: any): string {
+ const path = url.parse(req.originalUrl || req.url).pathname || '/';
+
+ // Capture /api/ and the plugin name
+ if (apiRegEx.test(path)) {
+ return path.replace(apiRegEx, '/api/$1');
+ }
+
+ // Only the first path segment at root level
+ return path.replace(rootRegEx, '/$1');
+ }
+
+ /**
+ * Adds a /metrics endpoint, register default runtime metrics and instrument the router.
+ */
+ export function metricsHandler(): RequestHandler {
+ // We can only initialize the metrics once and have to clean them up between hot reloads
+ useHotCleanup(module, () => prom.register.clear());
+
+ return promBundle({
+ includeMethod: true,
+ includePath: true,
+ // Using includePath alone is problematic, as it will include path labels with high
+ // cardinality (e.g. path params). Instead we would have to template them. However, this
+ // is difficult, as every backend plugin might use different routes. Instead we only take
+ // the first directory of the path, to have at least an idea how each plugin performs:
+ normalizePath,
+ promClient: { collectDefaultMetrics: {} },
+ });
+ }
+ ```
+
+5. Now we will extend the router configuration with the `metricsHandler`:
+
+ ```diff
+ +import { metricsHandler } from './metrics';
+
+ ...
+
+ const service = createServiceBuilder(module)
+ .loadConfig(config)
+ .addRouter('', await healthcheck(healthcheckEnv))
+ + .addRouter('', metricsHandler())
+ .addRouter('/api', apiRouter);
+ ```
+
+6. You now have everything setup, from the `\packages\backend` folder run `yarn start` this will start up the backend
+7. Now in a browser load up `http://localhost:7007/metrics`, if everything went smoothly you should see metrics in your browser something like this:
+
+ 
+
+## Metrics
+
+The following sections goes over the included and experimental metrics available once you have completed this tutorial
+
+## Included
+
+This tutorials uses the [`express-prom-bundle`](https://github.com/jochen-schweizer/express-prom-bundle) and the [`prom-client`](https://github.com/siimon/prom-client) to make this all work. They both come with some built in metrics:
+
+- `express-prom-bundle` comes with 2 metrics:
+ - `up`: this normally will be just 1
+ - `http_request_duration_seconds`: http latency histogram/summary labeled with `status_code`, `method` and `path`
+- `prom-client` comes with a collection of metrics around memory, CPU, processes, etc. You can see the supported metrics in the `prom-client's` [`lib/metrics`](https://github.com/siimon/prom-client/tree/master/lib/metrics) folder.
+
+### Experimental
+
+There are some custom metrics that have been added to Backstage will be output for you, these are currently deemed experimental and may be changed or removed in a future release. Here is a rough list, again subject to changes:
+
+- `catalog_entities_count`: Total amount of entities in the catalog
+- `catalog_registered_locations_count`: Total amount of registered locations in the catalog
+- `catalog_relations_count`: Total amount of relations between entities
+- `catalog_stitched_entities_count`: Amount of entities stitched
+- `catalog_processed_entities_count`: Amount of entities processed
+- `catalog_processing_duration_seconds`: Time spent executing the full processing flow
+- `catalog_processors_duration_seconds`: Time spent executing catalog processors
+- `catalog_processing_queue_delay_seconds`: The amount of delay between being scheduled for processing, and the start of actually being processed
diff --git a/cypress/yarn.lock b/cypress/yarn.lock
index 7fcd0f98af..1ccce4ea24 100644
--- a/cypress/yarn.lock
+++ b/cypress/yarn.lock
@@ -40,14 +40,14 @@
lodash.once "^4.1.1"
"@types/node@*":
- version "17.0.25"
- resolved "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448"
- integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==
+ version "18.0.0"
+ resolved "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a"
+ integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==
"@types/node@^14.14.31":
- version "14.18.13"
- resolved "https://registry.npmjs.org/@types/node/-/node-14.18.13.tgz#6ad4d9db59e6b3faf98dcfe4ca9d2aec84443277"
- integrity sha512-Z6/KzgyWOga3pJNS42A+zayjhPbf2zM3hegRQaOPnLOzEi86VV++6FLDWgR1LGrVCRufP/ph2daa3tEa5br1zA==
+ version "14.18.21"
+ resolved "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz#0155ee46f6be28b2ff0342ca1a9b9fd4468bef41"
+ integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==
"@types/sinonjs__fake-timers@8.1.1":
version "8.1.1"
@@ -75,9 +75,9 @@ aggregate-error@^3.0.0:
indent-string "^4.0.0"
ansi-colors@^4.1.1:
- version "4.1.1"
- resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
- integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+ version "4.1.3"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
+ integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
ansi-escapes@^4.3.0:
version "4.3.2"
@@ -113,7 +113,7 @@ asn1@~0.2.3:
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
- integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+ integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
astral-regex@^2.0.0:
version "2.0.0"
@@ -121,14 +121,14 @@ astral-regex@^2.0.0:
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async@^3.2.0:
- version "3.2.3"
- resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
- integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
+ integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
- integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
at-least-node@^1.0.0:
version "1.0.0"
@@ -138,7 +138,7 @@ at-least-node@^1.0.0:
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
- integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+ integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
aws4@^1.8.0:
version "1.11.0"
@@ -158,7 +158,7 @@ base64-js@^1.3.1:
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
- integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+ integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
dependencies:
tweetnacl "^0.14.3"
@@ -183,7 +183,7 @@ brace-expansion@^1.1.7:
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
- integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+ integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
buffer@^5.6.0:
version "5.7.1"
@@ -201,7 +201,7 @@ cachedir@^2.3.0:
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
- integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+ integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
chalk@^4.1.0:
version "4.1.2"
@@ -214,12 +214,12 @@ chalk@^4.1.0:
check-more-types@^2.24.0:
version "2.24.0"
resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
- integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=
+ integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
ci-info@^3.2.0:
- version "3.3.0"
- resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
- integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128"
+ integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==
clean-stack@^2.0.0:
version "2.2.0"
@@ -263,9 +263,9 @@ color-name@~1.1.4:
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
colorette@^2.0.16:
- version "2.0.16"
- resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
- integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+ version "2.0.19"
+ resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
+ integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@@ -287,12 +287,12 @@ common-tags@^1.8.0:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+ integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
cross-spawn@^7.0.0:
version "7.0.3"
@@ -304,9 +304,9 @@ cross-spawn@^7.0.0:
which "^2.0.1"
cypress@^10.0.0:
- version "10.0.2"
- resolved "https://registry.npmjs.org/cypress/-/cypress-10.0.2.tgz#6aeac1923d534f9850d57dad9496f9ea74034a23"
- integrity sha512-7+C4KHYBcfZrawss+Gt5PlS35rfc6ySc59JcHDVsIMm1E/J35dqE41UEXpdtwIq3549umCerNWnFADzqib4kcA==
+ version "10.2.0"
+ resolved "https://registry.npmjs.org/cypress/-/cypress-10.2.0.tgz#ca078abfceb13be2a33cbba6e0e80ded770f542a"
+ integrity sha512-+i9lY5ENlfi2mJwsggzR+XASOIgMd7S/Gd3/13NCpv596n3YSplMAueBTIxNLcxDpTcIksp+9pM3UaDrJDpFqA==
dependencies:
"@cypress/request" "^2.88.10"
"@cypress/xvfb" "^1.2.4"
@@ -354,14 +354,14 @@ cypress@^10.0.0:
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+ integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
dependencies:
assert-plus "^1.0.0"
dayjs@^1.10.4:
- version "1.11.1"
- resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz#90b33a3dda3417258d48ad2771b415def6545eb0"
- integrity sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==
+ version "1.11.3"
+ resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz#4754eb694a624057b9ad2224b67b15d552589258"
+ integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==
debug@^3.1.0:
version "3.2.7"
@@ -380,12 +380,12 @@ debug@^4.1.1, debug@^4.3.2:
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
- integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
+ integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
dependencies:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
@@ -412,7 +412,7 @@ enquirer@^2.3.6:
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
eventemitter2@^6.4.3:
version "6.4.5"
@@ -460,7 +460,7 @@ extract-zip@2.0.1:
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
- integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+ integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
extsprintf@^1.2.0:
version "1.4.1"
@@ -470,7 +470,7 @@ extsprintf@^1.2.0:
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
- integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+ integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
dependencies:
pend "~1.2.0"
@@ -484,7 +484,7 @@ figures@^3.2.0:
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
- integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+ integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
form-data@~2.3.2:
version "2.3.3"
@@ -508,7 +508,7 @@ fs-extra@^9.1.0:
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
get-stream@^5.0.0, get-stream@^5.1.0:
version "5.2.0"
@@ -527,19 +527,19 @@ getos@^3.2.1:
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+ integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
dependencies:
assert-plus "^1.0.0"
glob@^7.1.3:
- version "7.2.0"
- resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
- integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+ version "7.2.3"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
- minimatch "^3.0.4"
+ minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
@@ -587,7 +587,7 @@ indent-string@^4.0.0:
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
@@ -635,7 +635,7 @@ is-stream@^2.0.0:
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
- integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
is-unicode-supported@^0.1.0:
version "0.1.0"
@@ -645,17 +645,17 @@ is-unicode-supported@^0.1.0:
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
- integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+ integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
- integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+ integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
json-schema@0.4.0:
version "0.4.0"
@@ -665,7 +665,7 @@ json-schema@0.4.0:
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
jsonfile@^6.0.1:
version "6.1.0"
@@ -689,7 +689,7 @@ jsprim@^2.0.2:
lazy-ass@^1.6.0:
version "1.6.0"
resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
- integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM=
+ integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
listr2@^3.8.3:
version "3.14.0"
@@ -708,7 +708,7 @@ listr2@^3.8.3:
lodash.once@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
- integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+ integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
lodash@^4.17.21:
version "4.17.21"
@@ -762,7 +762,7 @@ mimic-fn@^2.1.0:
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@^3.0.4:
+minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -794,7 +794,7 @@ npm-run-path@^4.0.0:
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
@@ -808,7 +808,7 @@ onetime@^5.1.0:
ospath@^1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b"
- integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=
+ integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==
p-map@^4.0.0:
version "4.0.0"
@@ -820,7 +820,7 @@ p-map@^4.0.0:
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
@@ -830,17 +830,17 @@ path-key@^3.0.0, path-key@^3.1.0:
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
- integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+ integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+ integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
pify@^2.2.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
pretty-bytes@^5.6.0:
version "5.6.0"
@@ -878,7 +878,7 @@ qs@~6.5.2:
request-progress@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
- integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=
+ integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
dependencies:
throttleit "^1.0.0"
@@ -1014,12 +1014,12 @@ supports-color@^8.1.1:
throttleit@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
- integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
+ integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==
through@^2.3.8:
version "2.3.8"
resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+ integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
tmp@~0.2.1:
version "0.2.1"
@@ -1044,14 +1044,14 @@ tslib@^2.1.0:
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+ integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
- integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+ integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
type-fest@^0.21.3:
version "0.21.3"
@@ -1059,9 +1059,9 @@ type-fest@^0.21.3:
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
typescript@^4.1.3:
- version "4.7.2"
- resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4"
- integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
+ version "4.7.4"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
+ integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
universalify@^2.0.0:
version "2.0.0"
@@ -1081,7 +1081,7 @@ uuid@^8.3.2:
verror@1.10.0:
version "1.10.0"
resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+ integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
@@ -1115,7 +1115,7 @@ wrap-ansi@^7.0.0:
wrappy@1:
version "1.0.2"
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
yallist@^4.0.0:
version "4.0.0"
@@ -1125,7 +1125,7 @@ yallist@^4.0.0:
yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
- integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
+ integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
dependencies:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
diff --git a/docs/FAQ.md b/docs/FAQ.md
index 96d49ff060..f695a59410 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -223,8 +223,7 @@ For more information, see our
No, this is not a service offering. We build the piece of software, and someone
in your infrastructure team is responsible for
-[deploying](https://backstage.io/docs/getting-started/deployment-k8s) and
-maintaining it.
+[deploying](https://backstage.io/docs/deployment) and maintaining it.
### How secure is Backstage?
diff --git a/docs/assets/search/architecture.drawio.svg b/docs/assets/search/architecture.drawio.svg
index 709a008b43..b85541b804 100644
--- a/docs/assets/search/architecture.drawio.svg
+++ b/docs/assets/search/architecture.drawio.svg
@@ -1,17 +1,36 @@
-