diff --git a/.changeset/fresh-beans-call.md b/.changeset/fresh-beans-call.md
new file mode 100644
index 0000000000..7327f9a3c9
--- /dev/null
+++ b/.changeset/fresh-beans-call.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Add ability to customize `Read More` destination with `readMoreUrl` prop for `MissingAnnotationEmptyState` component.
diff --git a/.changeset/nervous-bears-brush.md b/.changeset/nervous-bears-brush.md
new file mode 100644
index 0000000000..f3b0c7db78
--- /dev/null
+++ b/.changeset/nervous-bears-brush.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend': patch
+---
+
+The Auth0 adapter no longer disables session refreshing.
diff --git a/.changeset/pretty-hornets-listen.md b/.changeset/pretty-hornets-listen.md
new file mode 100644
index 0000000000..6e0701e617
--- /dev/null
+++ b/.changeset/pretty-hornets-listen.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-backend-module-elasticsearch': patch
+---
+
+Fix issue where `nextPageCursor` is defined on the last page of results
diff --git a/.changeset/sweet-icons-sneeze.md b/.changeset/sweet-icons-sneeze.md
new file mode 100644
index 0000000000..b12424c7a8
--- /dev/null
+++ b/.changeset/sweet-icons-sneeze.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-react': patch
+---
+
+Fix `EntityTypeFilter` so generating available types is case insensitive
diff --git a/.changeset/tall-tables-smash.md b/.changeset/tall-tables-smash.md
new file mode 100644
index 0000000000..2bf277879e
--- /dev/null
+++ b/.changeset/tall-tables-smash.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-graphiql': patch
+'@backstage/plugin-api-docs': patch
+---
+
+Add the dependency `graphql-ws` to fix the latest release of `@graphiql/toolkit` that has a missing dependency
diff --git a/.changeset/techdocs-khaki-cheetahs-clap.md b/.changeset/techdocs-khaki-cheetahs-clap.md
new file mode 100644
index 0000000000..5aba436534
--- /dev/null
+++ b/.changeset/techdocs-khaki-cheetahs-clap.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-react': patch
+---
+
+Added overload signatures for `createTechDocsAddonExtension` to handle TechDocs addons without props.
diff --git a/.changeset/techdocs-seal-deal.md b/.changeset/techdocs-seal-deal.md
new file mode 100644
index 0000000000..865d1fc837
--- /dev/null
+++ b/.changeset/techdocs-seal-deal.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-backend': patch
+---
+
+Fixed a bug that could cause TechDocs index generation to hang and fail when an underlying TechDocs site's `search_index.json` was empty.
diff --git a/.changeset/techdocs-stupid-radios-approve.md b/.changeset/techdocs-stupid-radios-approve.md
new file mode 100644
index 0000000000..813e895611
--- /dev/null
+++ b/.changeset/techdocs-stupid-radios-approve.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+Update `techdocs-cli serve`'s `proxyEndpoint` to match the base URL of the embedded techdocs app.
diff --git a/.changeset/techdocs-weak-boats-work.md b/.changeset/techdocs-weak-boats-work.md
new file mode 100644
index 0000000000..ec4f089592
--- /dev/null
+++ b/.changeset/techdocs-weak-boats-work.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-module-addons-contrib': patch
+---
+
+Introducing the Expandable Navigation addon, which lets you expand and collapse the TechDocs main navigation and store your preference in local storage.
diff --git a/.changeset/tough-queens-hope.md b/.changeset/tough-queens-hope.md
new file mode 100644
index 0000000000..6816893611
--- /dev/null
+++ b/.changeset/tough-queens-hope.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Added a chevron Indicator when the sidebar is collapsed and has a sub-menu
diff --git a/.changeset/unlucky-bobcats-fold.md b/.changeset/unlucky-bobcats-fold.md
new file mode 100644
index 0000000000..6dd820db8d
--- /dev/null
+++ b/.changeset/unlucky-bobcats-fold.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend': minor
+---
+
+Removed the explicit `disableRefresh` option from `OAuthAdapter`. Refresh can still be disabled for a provider by not implementing the `refresh` method.
diff --git a/.github/workflows/verify_dco.yaml b/.github/workflows/verify_dco.yaml
index 71bd322eca..2094327d23 100644
--- a/.github/workflows/verify_dco.yaml
+++ b/.github/workflows/verify_dco.yaml
@@ -54,7 +54,7 @@ jobs:
console.log(`creating comment on PR #${pull.number}`);
const body = `
Thanks for the contribution!
- All commits need to be DCO signed before merging. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.
+ All commits need to be DCO signed before they are reviewed. Please refer to the the [DCO section in CONTRIBUTING.md](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#developer-certificate-of-origin) or the [DCO](${checks.data.check_runs[0].html_url}) status for more info.
`;
await github.rest.issues.createComment({
repo,
diff --git a/docs/auth/add-auth-provider.md b/docs/auth/add-auth-provider.md
index 282088fef9..bd2bcd1694 100644
--- a/docs/auth/add-auth-provider.md
+++ b/docs/auth/add-auth-provider.md
@@ -153,7 +153,6 @@ export const createOktaProvider: AuthProviderFactory = ({
// Wrap the OAuthProviderHandlers with OAuthProvider, which implements AuthProviderRouteHandlers
return OAuthProvider.fromConfig(globalConfig, provider, {
- disableRefresh: false,
providerId,
tokenIssuer,
});
diff --git a/docs/features/techdocs/addons.md b/docs/features/techdocs/addons.md
index e8af56d3fc..5305e3bc68 100644
--- a/docs/features/techdocs/addons.md
+++ b/docs/features/techdocs/addons.md
@@ -111,10 +111,11 @@ page header, TechDocs Addons whose location is `Header` will not be rendered.
Addons can, in principle, be provided by any plugin! To make it easier to
discover available Addons, we've compiled a list of them here:
-| Addon | Package/Plugin | Description |
-| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [``](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.reportissue) | `@backstage/plugin-techdocs-module-addons-contrib` | Allows TechDocs users to select a portion of text on a TechDocs page and open an issue against the repository that contains the documentation, populating the issue description with the selected text according to a configurable template. |
-| [``](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.textsize) | `@backstage/plugin-techdocs-module-addons-contrib` | This TechDocs addon allows users to customize text size on documentation pages, they can select how much they want to increase or decrease the font size via slider or buttons. The default value for font size is 100% and this setting is kept in the browser's local storage whenever it is changed. |
+| Addon | Package/Plugin | Description |
+| ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [``](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.expandablenavigation) | `@backstage/plugin-techdocs-module-addons-contrib` | Allows TechDocs users to expand or collapse the entire TechDocs main navigation, and keeps the user's preferred state between documentation sites. |
+| [``](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.reportissue) | `@backstage/plugin-techdocs-module-addons-contrib` | Allows TechDocs users to select a portion of text on a TechDocs page and open an issue against the repository that contains the documentation, populating the issue description with the selected text according to a configurable template. |
+| [``](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.textsize) | `@backstage/plugin-techdocs-module-addons-contrib` | This TechDocs addon allows users to customize text size on documentation pages, they can select how much they want to increase or decrease the font size via slider or buttons. The default value for font size is 100% and this setting is kept in the browser's local storage whenever it is changed. |
Got an Addon to contribute? Feel free to add a row above!
diff --git a/microsite/data/on-demand/20220420-1.yaml b/microsite/data/on-demand/20220420-1.yaml
index 6089ac1cc9..96560ec436 100644
--- a/microsite/data/on-demand/20220420-1.yaml
+++ b/microsite/data/on-demand/20220420-1.yaml
@@ -1,7 +1,7 @@
---
title: Adopters Community Sessions
date: April 20, 2022
-category: Upcoming
+category: Meetup
description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
youtubeUrl: https://youtu.be/mFi_X58igzk
youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/on-demand/20220427-1.yaml b/microsite/data/on-demand/20220427-1.yaml
index 451ee3bc67..80ec8eae00 100644
--- a/microsite/data/on-demand/20220427-1.yaml
+++ b/microsite/data/on-demand/20220427-1.yaml
@@ -1,7 +1,7 @@
---
title: Contributor Community Sessions
date: April 27, 2022
-category: Upcoming
+category: Meetup
description: Join the maintainers and contributors for the Contributor Community Sessions
youtubeUrl: https://youtu.be/evf_LV0KzIk
youtubeImgUrl: https://backstage.io/img/b-sessions.png
diff --git a/microsite/data/on-demand/20220518-01.yaml b/microsite/data/on-demand/20220518-01.yaml
new file mode 100644
index 0000000000..e98c79005a
--- /dev/null
+++ b/microsite/data/on-demand/20220518-01.yaml
@@ -0,0 +1,9 @@
+---
+title: Adopters Community Sessions
+date: May 18, 2022
+category: Upcoming
+description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
+youtubeUrl: https://youtu.be/dEd1fl3wRv
+youtubeImgUrl: https://backstage.io/img/b-sessions.png
+rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
+eventUrl: https://github.com/backstage/community/issues/46
diff --git a/microsite/data/plugins/kpt-config-as-data.yaml b/microsite/data/plugins/kpt-config-as-data.yaml
new file mode 100644
index 0000000000..03d5d66947
--- /dev/null
+++ b/microsite/data/plugins/kpt-config-as-data.yaml
@@ -0,0 +1,9 @@
+---
+title: Configuration as Data
+author: kpt
+authorUrl: https://kpt.dev
+category: Configuration
+description: Configuration GUI over GitOps using kpt, with WYSIWYG editing, review and approval, versioning and undo, and package cloning and upgrades.
+documentation: https://github.com/GoogleContainerTools/kpt-backstage-plugins/tree/main/plugins/cad
+iconUrl: https://github.com/GoogleContainerTools/kpt/blob/main/logo/KptLogoSmall.png?raw=true
+npmPackageName: '@kpt/backstage-plugin-cad'
diff --git a/microsite/pages/en/live.js b/microsite/pages/en/live.js
index 374b690d89..9f8a0e24b0 100644
--- a/microsite/pages/en/live.js
+++ b/microsite/pages/en/live.js
@@ -34,7 +34,7 @@ const Background = props => {
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
index 089900fb77..35c61f2f16 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -71,6 +71,7 @@ import {
} from '@backstage/plugin-techdocs';
import { TechDocsAddons } from '@backstage/plugin-techdocs-react';
import {
+ ExpandableNavigation,
ReportIssue,
TextSize,
} from '@backstage/plugin-techdocs-module-addons-contrib';
@@ -185,6 +186,7 @@ const routes = (
>
{techDocsPage}
+
diff --git a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx
index 61131bad9b..8d8416a241 100644
--- a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx
+++ b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx
@@ -37,6 +37,7 @@ spec:
type Props = {
annotation: string;
+ readMoreUrl?: string;
};
export type MissingAnnotationEmptyStateClassKey = 'code';
@@ -53,7 +54,10 @@ const useStyles = makeStyles(
);
export function MissingAnnotationEmptyState(props: Props) {
- const { annotation } = props;
+ const { annotation, readMoreUrl } = props;
+ const url =
+ readMoreUrl ||
+ 'https://backstage.io/docs/features/software-catalog/well-known-annotations';
const classes = useStyles();
const description = (
<>
@@ -81,11 +85,7 @@ export function MissingAnnotationEmptyState(props: Props) {
customStyle={{ background: 'inherit', fontSize: '115%' }}
/>
-