From a0303ee5ef95977dca3c8dbbe98b287af82c1ddb Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Wed, 7 Jun 2023 03:46:41 +0200
Subject: [PATCH 001/372] scaffolder: enable each property on task step (#8890)
Signed-off-by: Alex Eftimie
---
.../tasks/NunjucksWorkflowRunner.test.ts | 33 +++++++++
.../tasks/NunjucksWorkflowRunner.ts | 70 ++++++++++++++-----
plugins/scaffolder-common/src/TaskSpec.ts | 6 +-
plugins/scaffolder-node/src/actions/types.ts | 5 ++
4 files changed, 94 insertions(+), 20 deletions(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
index 5d4f7b73cc..8fbbd45b94 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
@@ -573,6 +573,39 @@ describe('DefaultWorkflowRunner', () => {
});
});
+ describe('each', () => {
+ it('should run a step repeatedly', async () => {
+ const task = createMockTaskWithSpec({
+ apiVersion: 'scaffolder.backstage.io/v1beta3',
+ steps: [
+ {
+ id: 'test',
+ name: 'name',
+ each: '${{parameters.colors}}',
+ action: 'jest-mock-action',
+ input: { color: '${{each}}' },
+ },
+ ],
+ output: {},
+ parameters: {
+ colors: ['blue', 'green', 'red'],
+ },
+ });
+
+ await runner.execute(task);
+
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({ input: { color: 'blue' } }),
+ );
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({ input: { color: 'green' } }),
+ );
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({ input: { color: 'red' } }),
+ );
+ });
+ });
+
describe('secrets', () => {
it('should pass through the secrets to the context', async () => {
const task = createMockTaskWithSpec(
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index da690bcb82..e3233483ef 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -76,6 +76,7 @@ type TemplateContext = {
entity?: UserEntity;
ref?: string;
};
+ each?: JsonValue;
};
const isValidTaskSpec = (taskSpec: TaskSpec): taskSpec is TaskSpecV1beta3 => {
@@ -311,25 +312,56 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
const tmpDirs = new Array();
const stepOutput: { [outputName: string]: JsonValue } = {};
- await action.handler({
- input,
- secrets: task.secrets ?? {},
- logger: taskLogger,
- logStream: streamLogger,
- workspacePath,
- createTemporaryDirectory: async () => {
- const tmpDir = await fs.mkdtemp(`${workspacePath}_step-${step.id}-`);
- tmpDirs.push(tmpDir);
- return tmpDir;
- },
- output(name: string, value: JsonValue) {
- stepOutput[name] = value;
- },
- templateInfo: task.spec.templateInfo,
- user: task.spec.user,
- isDryRun: task.isDryRun,
- signal: task.cancelSignal,
- });
+ const iterations = new Array();
+ if (step.each) {
+ const each = await this.render(step.each, context, renderTemplate);
+ iterations.push(...each);
+ } else {
+ iterations.push({});
+ }
+
+ let actionInput = input;
+ for (const iteration of iterations) {
+ if (step.each) {
+ taskLogger.info(`Running step each: ${iteration}`);
+ context.each = iteration;
+ // re-render input with the modified context that includes each
+ actionInput =
+ (step.input &&
+ this.render(
+ step.input,
+ { ...context, secrets: task.secrets ?? {} },
+ renderTemplate,
+ )) ??
+ {};
+ }
+ await action.handler({
+ input: actionInput,
+ secrets: task.secrets ?? {},
+ logger: taskLogger,
+ logStream: streamLogger,
+ workspacePath,
+ createTemporaryDirectory: async () => {
+ const tmpDir = await fs.mkdtemp(
+ `${workspacePath}_step-${step.id}-`,
+ );
+ tmpDirs.push(tmpDir);
+ return tmpDir;
+ },
+ output(name: string, value: JsonValue) {
+ if (step.each) {
+ stepOutput[name] = stepOutput[name] || [];
+ stepOutput[name].push(value);
+ } else {
+ stepOutput[name] = value;
+ }
+ },
+ templateInfo: task.spec.templateInfo,
+ user: task.spec.user,
+ isDryRun: task.isDryRun,
+ signal: task.cancelSignal,
+ });
+ }
// Remove all temporary directories that were created when executing the action
for (const tmpDir of tmpDirs) {
diff --git a/plugins/scaffolder-common/src/TaskSpec.ts b/plugins/scaffolder-common/src/TaskSpec.ts
index 7c06fe2b99..6b144b4f78 100644
--- a/plugins/scaffolder-common/src/TaskSpec.ts
+++ b/plugins/scaffolder-common/src/TaskSpec.ts
@@ -15,7 +15,7 @@
*/
import type { EntityMeta, UserEntity } from '@backstage/catalog-model';
-import type { JsonObject, JsonValue } from '@backstage/types';
+import type { JsonArray, JsonObject, JsonValue } from '@backstage/types';
/**
* Information about a template that is stored on a task specification.
@@ -70,6 +70,10 @@ export interface TaskStep {
* When this is false, or if the templated value string evaluates to something that is falsy the step will be skipped.
*/
if?: string | boolean;
+ /**
+ * Run step repeatedly
+ */
+ each?: string | JsonArray;
}
/**
diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts
index e35f55aa67..7e8c2b4f5f 100644
--- a/plugins/scaffolder-node/src/actions/types.ts
+++ b/plugins/scaffolder-node/src/actions/types.ts
@@ -71,6 +71,11 @@ export type ActionContext<
* Implement the signal to make your custom step abortable https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
*/
signal?: AbortSignal;
+
+ /**
+ * Optional value of each invocation
+ */
+ each?: JsonObject;
};
/** @public */
From e514aac3eac0e3b730d8bef4077f84fb1fcd6303 Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Sun, 11 Jun 2023 23:54:41 +0200
Subject: [PATCH 002/372] Add .changeset
Signed-off-by: Alex Eftimie
---
.changeset/tasty-lamps-shop.md | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 .changeset/tasty-lamps-shop.md
diff --git a/.changeset/tasty-lamps-shop.md b/.changeset/tasty-lamps-shop.md
new file mode 100644
index 0000000000..5036932816
--- /dev/null
+++ b/.changeset/tasty-lamps-shop.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-scaffolder-backend': minor
+'@backstage/plugin-scaffolder-common': minor
+'@backstage/plugin-scaffolder-node': minor
+---
+
+Introduce `each` property on action steps, allowing them to be ran repeatedly.
From 0f58402454bd6a089f0a06741a3afea4cd9c0aed Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Mon, 12 Jun 2023 00:08:07 +0200
Subject: [PATCH 003/372] Update docs. Fix tsc
Signed-off-by: Alex Eftimie
---
.../software-templates/writing-templates.md | 22 +++++++++++++++++++
.../tasks/NunjucksWorkflowRunner.ts | 4 ++--
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md
index 67bcb6c179..81418faf21 100644
--- a/docs/features/software-templates/writing-templates.md
+++ b/docs/features/software-templates/writing-templates.md
@@ -495,6 +495,7 @@ template. These follow the same standard format:
- id: fetch-base # A unique id for the step
name: Fetch Base # A title displayed in the frontend
if: ${{ parameters.name }} # Optional condition, skip the step if not truthy
+ each: ${{ parameters.iterable }} # Optional iterable, run the same step multiple times
action: fetch:template # An action to call
input: # Input that is passed as arguments to the action handler
url: ./template
@@ -506,6 +507,27 @@ By default we ship some [built in actions](./builtin-actions.md) that you can
take a look at, or you can
[create your own custom actions](./writing-custom-actions.md).
+When `each` is provided, the current iteration value is available in the `${{ each }}` input.
+
+Examples:
+
+```yaml
+each: ['apples', 'oranges']
+input:
+ values:
+ fruit: ${{ each}}
+```
+
+```yaml
+each: [{ name: 'apple', count: 3 }, { name: 'orange', count: 1 }]
+input:
+ values:
+ fruit: ${{ each.name }}
+ count: ${{ each.count }}
+```
+
+When `each` is used, the outputs of a repeated step are returned as an array of outputs from each iteration.
+
## Outputs
Each individual step can output some variables that can be used in the
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index e3233483ef..a6c486c58d 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -25,7 +25,7 @@ import * as winston from 'winston';
import fs from 'fs-extra';
import path from 'path';
import nunjucks from 'nunjucks';
-import { JsonObject, JsonValue } from '@backstage/types';
+import { JsonArray, JsonObject, JsonValue } from '@backstage/types';
import { InputError, NotAllowedError } from '@backstage/errors';
import { PassThrough } from 'stream';
import { generateExampleOutput, isTruthy } from './helper';
@@ -351,7 +351,7 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
output(name: string, value: JsonValue) {
if (step.each) {
stepOutput[name] = stepOutput[name] || [];
- stepOutput[name].push(value);
+ (stepOutput[name] as JsonArray).push(value);
} else {
stepOutput[name] = value;
}
From 6a754699b43e1387289fbce751224b8405b2fb61 Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Mon, 12 Jun 2023 00:21:40 +0200
Subject: [PATCH 004/372] Update api-report
Signed-off-by: Alex Eftimie
---
plugins/scaffolder-common/api-report.md | 2 ++
plugins/scaffolder-node/api-report.md | 1 +
2 files changed, 3 insertions(+)
diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md
index 7c40780b57..6113c72659 100644
--- a/plugins/scaffolder-common/api-report.md
+++ b/plugins/scaffolder-common/api-report.md
@@ -5,6 +5,7 @@
```ts
import { Entity } from '@backstage/catalog-model';
import type { EntityMeta } from '@backstage/catalog-model';
+import type { JsonArray } from '@backstage/types';
import { JsonObject } from '@backstage/types';
import type { JsonValue } from '@backstage/types';
import { KindValidator } from '@backstage/catalog-model';
@@ -36,6 +37,7 @@ export interface TaskSpecV1beta3 {
// @public
export interface TaskStep {
action: string;
+ each?: string | JsonArray;
id: string;
if?: string | boolean;
input?: JsonObject;
diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md
index 46aba960d8..962daca2ad 100644
--- a/plugins/scaffolder-node/api-report.md
+++ b/plugins/scaffolder-node/api-report.md
@@ -36,6 +36,7 @@ export type ActionContext<
ref?: string;
};
signal?: AbortSignal;
+ each?: JsonObject;
};
// @public
From 72f8b2be2ff25eab1f88863e6982e41a69b59283 Mon Sep 17 00:00:00 2001
From: Paulo Eduardo Peixoto
Date: Thu, 13 Jul 2023 14:16:04 -0300
Subject: [PATCH 005/372] docs(features/software-templates): update
"writing-custom-field-extensions.md" after deprecated
"createScaffolderFieldExtension" and "ScaffolderFieldExtensions" from
"@backstage/plugin-scaffolder".
Signed-off-by: Paulo Eduardo Peixoto
---
.../software-templates/writing-custom-field-extensions.md | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/docs/features/software-templates/writing-custom-field-extensions.md b/docs/features/software-templates/writing-custom-field-extensions.md
index 20575a0b4a..f22cecd22c 100644
--- a/docs/features/software-templates/writing-custom-field-extensions.md
+++ b/docs/features/software-templates/writing-custom-field-extensions.md
@@ -89,10 +89,8 @@ export const validateKebabCaseValidation = (
then please use `scaffolderPlugin.provide` from there instead and export it part of your `plugin.ts` rather than re-using the `scaffolder.plugin`.
*/
-import {
- scaffolderPlugin,
- createScaffolderFieldExtension,
-} from '@backstage/plugin-scaffolder';
+import { scaffolderPlugin } from '@backstage/plugin-scaffolder';
+import { createScaffolderFieldExtension } from '@backstage/plugin-scaffolder-react';
import {
ValidateKebabCase,
validateKebabCaseValidation,
@@ -133,7 +131,7 @@ Should look something like this instead:
```tsx
import { ValidateKebabCaseFieldExtension } from './scaffolder/ValidateKebabCase';
-import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder';
+import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder-react';
const routes = (
From 98d3f2fa31680b782caddc7d328e71e178ccddab Mon Sep 17 00:00:00 2001
From: Scott Guymer
Date: Mon, 24 Jul 2023 11:56:37 +0200
Subject: [PATCH 006/372] Add email to index for user entity
Signed-off-by: Scott Guymer
---
.../defaultCatalogCollatorEntityTransformer.test.ts | 3 ++-
.../collators/defaultCatalogCollatorEntityTransformer.ts | 6 ++++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
index 8206a58599..4ae6c88c06 100644
--- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
+++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
@@ -42,6 +42,7 @@ const userEntity = {
spec: {
profile: {
displayName: 'User 1',
+ email: 'test@test.com',
},
},
};
@@ -94,7 +95,7 @@ describe('DefaultCatalogCollatorEntityTransformer', () => {
expect(document).toMatchObject({
title: userEntity.metadata.name,
- text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName}`,
+ text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}}`,
namespace: 'default',
componentType: 'other',
lifecycle: '',
diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts
index 2fc0c5d50d..db239b8669 100644
--- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts
+++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts
@@ -27,6 +27,12 @@ const getDocumentText = (entity: Entity): string => {
}
}
+ if (isUserEntity(entity)) {
+ if (entity.spec?.profile?.email) {
+ documentTexts.push(entity.spec.profile.email);
+ }
+ }
+
return documentTexts.join(' : ');
};
From d4f19a16bd52861c835dbc28cd32bfdb8e34b415 Mon Sep 17 00:00:00 2001
From: Scott Guymer
Date: Mon, 24 Jul 2023 12:02:36 +0200
Subject: [PATCH 007/372] added changeset
Signed-off-by: Scott Guymer
---
.changeset/twelve-pigs-cough.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/twelve-pigs-cough.md
diff --git a/.changeset/twelve-pigs-cough.md b/.changeset/twelve-pigs-cough.md
new file mode 100644
index 0000000000..e2eef61915
--- /dev/null
+++ b/.changeset/twelve-pigs-cough.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-backend-module-catalog': patch
+---
+
+Add User Entity email to the search index so that users can be found by their email.
From ee52a48b63d501874db0e7747752ee970e374be7 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Wed, 26 Jul 2023 08:15:33 +0530
Subject: [PATCH 008/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
.changeset/nervous-suits-give.md | 5 +++++
plugins/shortcuts/src/AddShortcut.tsx | 19 +++++++++++++------
plugins/shortcuts/src/EditShortcut.tsx | 19 +++++++++++++------
3 files changed, 31 insertions(+), 12 deletions(-)
create mode 100644 .changeset/nervous-suits-give.md
diff --git a/.changeset/nervous-suits-give.md b/.changeset/nervous-suits-give.md
new file mode 100644
index 0000000000..e08d8d89a2
--- /dev/null
+++ b/.changeset/nervous-suits-give.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-shortcuts': patch
+---
+
+Limit the use of the duplicate shortcut name when adding a shortcut
diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx
index 15850ab389..70988c49eb 100644
--- a/plugins/shortcuts/src/AddShortcut.tsx
+++ b/plugins/shortcuts/src/AddShortcut.tsx
@@ -67,12 +67,19 @@ export const AddShortcut = ({
const shortcut: Omit = { url, title };
try {
- await api.add(shortcut);
- alertApi.post({
- message: `Added shortcut '${title}' to your sidebar`,
- severity: 'success',
- display: 'transient',
- });
+ if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ alertApi.post({
+ message: `Shortcut title already exist`,
+ severity: 'error',
+ });
+ } else {
+ await api.add(shortcut);
+ alertApi.post({
+ message: `Added shortcut '${title}' to your sidebar`,
+ severity: 'success',
+ display: 'transient',
+ });
+ }
} catch (error) {
alertApi.post({
message: `Could not add shortcut: ${error.message}`,
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index 9f2ffe10be..ecc14d93d9 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -70,12 +70,19 @@ export const EditShortcut = ({
};
try {
- await api.update(newShortcut);
- alertApi.post({
- message: `Updated shortcut '${title}'`,
- severity: 'success',
- display: 'transient',
- });
+ if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ alertApi.post({
+ message: `Shortcut title already exist`,
+ severity: 'error',
+ });
+ } else {
+ await api.update(newShortcut);
+ alertApi.post({
+ message: `Updated shortcut '${title}'`,
+ severity: 'success',
+ display: 'transient',
+ });
+ }
} catch (error) {
alertApi.post({
message: `Could not update shortcut: ${error.message}`,
From 5d99ca9350573b07eca710a9e6f461e258abb818 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Wed, 26 Jul 2023 09:48:50 +0530
Subject: [PATCH 009/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/EditShortcut.tsx | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index ecc14d93d9..9f2ffe10be 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -70,19 +70,12 @@ export const EditShortcut = ({
};
try {
- if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
- alertApi.post({
- message: `Shortcut title already exist`,
- severity: 'error',
- });
- } else {
- await api.update(newShortcut);
- alertApi.post({
- message: `Updated shortcut '${title}'`,
- severity: 'success',
- display: 'transient',
- });
- }
+ await api.update(newShortcut);
+ alertApi.post({
+ message: `Updated shortcut '${title}'`,
+ severity: 'success',
+ display: 'transient',
+ });
} catch (error) {
alertApi.post({
message: `Could not update shortcut: ${error.message}`,
From d37b9c5aeeb9bc9925a63832a92d638aea5a04e5 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Wed, 26 Jul 2023 10:17:53 +0530
Subject: [PATCH 010/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.tsx | 7 +++++--
plugins/shortcuts/src/EditShortcut.tsx | 23 ++++++++++++++++-------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx
index 70988c49eb..32a5aaa947 100644
--- a/plugins/shortcuts/src/AddShortcut.tsx
+++ b/plugins/shortcuts/src/AddShortcut.tsx
@@ -63,11 +63,14 @@ export const AddShortcut = ({
const analytics = useAnalytics();
const handleSave: SubmitHandler = async ({ url, title }) => {
- analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
+ if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
+ }
const shortcut: Omit = { url, title };
+ const shortcutData = api.get();
try {
- if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) {
alertApi.post({
message: `Shortcut title already exist`,
severity: 'error',
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index 9f2ffe10be..df0476f5db 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -62,7 +62,9 @@ export const EditShortcut = ({
const analytics = useAnalytics();
const handleSave: SubmitHandler = async ({ url, title }) => {
- analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`);
+ if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`);
+ }
const newShortcut: Shortcut = {
...shortcut,
url,
@@ -70,12 +72,19 @@ export const EditShortcut = ({
};
try {
- await api.update(newShortcut);
- alertApi.post({
- message: `Updated shortcut '${title}'`,
- severity: 'success',
- display: 'transient',
- });
+ if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
+ alertApi.post({
+ message: `Shortcut title already exist`,
+ severity: 'error',
+ });
+ } else {
+ await api.update(newShortcut);
+ alertApi.post({
+ message: `Updated shortcut '${title}'`,
+ severity: 'success',
+ display: 'transient',
+ });
+ }
} catch (error) {
alertApi.post({
message: `Could not update shortcut: ${error.message}`,
From ceee1c3ca25377bfac35d137795dc85455bf9fa1 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Wed, 26 Jul 2023 11:28:41 +0530
Subject: [PATCH 011/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.tsx | 7 ++-----
plugins/shortcuts/src/EditShortcut.tsx | 8 +++-----
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx
index 32a5aaa947..e518a89934 100644
--- a/plugins/shortcuts/src/AddShortcut.tsx
+++ b/plugins/shortcuts/src/AddShortcut.tsx
@@ -61,20 +61,17 @@ export const AddShortcut = ({
const [formValues, setFormValues] = useState();
const open = Boolean(anchorEl);
const analytics = useAnalytics();
+ const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
}
const shortcut: Omit = { url, title };
- const shortcutData = api.get();
try {
if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) {
- alertApi.post({
- message: `Shortcut title already exist`,
- severity: 'error',
- });
+ throw new Error(`Shortcut Title '${title}' already Exist`);
} else {
await api.add(shortcut);
alertApi.post({
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index df0476f5db..5f1125e37a 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -60,6 +60,7 @@ export const EditShortcut = ({
const alertApi = useApi(alertApiRef);
const open = Boolean(anchorEl);
const analytics = useAnalytics();
+ const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
@@ -72,11 +73,8 @@ export const EditShortcut = ({
};
try {
- if (api.get().some(shortcutTitle => shortcutTitle.title === title)) {
- alertApi.post({
- message: `Shortcut title already exist`,
- severity: 'error',
- });
+ if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) {
+ throw new Error(`Shortcut Title '${title}' already Exist`);
} else {
await api.update(newShortcut);
alertApi.post({
From 85803bf5a8acb00ea63d52928a62584d34acee0d Mon Sep 17 00:00:00 2001
From: "Flores, Juan"
Date: Wed, 26 Jul 2023 13:30:38 +0100
Subject: [PATCH 012/372] Fixes Bug #18728
Signed-off-by: Flores, Juan
---
.../software-templates/writing-custom-step-layouts.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/features/software-templates/writing-custom-step-layouts.md b/docs/features/software-templates/writing-custom-step-layouts.md
index 69d61b93dc..b965f60f6b 100644
--- a/docs/features/software-templates/writing-custom-step-layouts.md
+++ b/docs/features/software-templates/writing-custom-step-layouts.md
@@ -4,7 +4,7 @@ title: Writing custom step layouts
description: How to override the default step form layout
---
-Every form in each step rendered in the frontend uses the default form layout from [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/). It is possible to override this behaviour by supplying a `ui:ObjectFieldTemplate` property for a particular step:
+Every form in each step rendered in the frontend uses the default form layout from [react-jsonschema-form](https://rjsf-team.github.io/react-jsonschema-form/docs/). It is possible to override this behaviour by supplying a `ui:ObjectFieldTemplate` property for a particular step:
```yaml
parameters:
@@ -12,7 +12,7 @@ parameters:
ui:ObjectFieldTemplate: TwoColumn
```
-This is the same [field](https://react-jsonschema-form.readthedocs.io/en/latest/advanced-customization/custom-templates/#objectfieldtemplate) used by [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/) but we need to add a couple of steps to ensure that the string value of `TwoColumn` above is resolved to a react component.
+This is the same [field](https://rjsf-team.github.io/react-jsonschema-form/docs/advanced-customization/custom-templates#objectfieldtemplate) used by [react-jsonschema-form](https://rjsf-team.github.io/react-jsonschema-form/docs/) but we need to add a couple of steps to ensure that the string value of `TwoColumn` above is resolved to a react component.
## Registering a React component as a custom step layout
From b0d9047894644a97d171dd7331c43d0c4c69e872 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Thu, 27 Jul 2023 12:02:13 +0530
Subject: [PATCH 013/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.tsx | 4 +---
plugins/shortcuts/src/EditShortcut.tsx | 4 +---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx
index e518a89934..d1a17f267f 100644
--- a/plugins/shortcuts/src/AddShortcut.tsx
+++ b/plugins/shortcuts/src/AddShortcut.tsx
@@ -64,9 +64,7 @@ export const AddShortcut = ({
const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
- if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
- analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
- }
+ analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
const shortcut: Omit = { url, title };
try {
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index 5f1125e37a..288b35d9f0 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -63,9 +63,7 @@ export const EditShortcut = ({
const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
- if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) {
- analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`);
- }
+ analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`);
const newShortcut: Shortcut = {
...shortcut,
url,
From 2ec7d0cdf8c7a8eb14b1528ad3708170679fd6ac Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Thu, 27 Jul 2023 15:38:43 +0530
Subject: [PATCH 014/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.tsx | 17 ++++++-----------
plugins/shortcuts/src/EditShortcut.tsx | 17 ++++++-----------
plugins/shortcuts/src/ShortcutForm.tsx | 11 +++++++++++
3 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx
index d1a17f267f..15850ab389 100644
--- a/plugins/shortcuts/src/AddShortcut.tsx
+++ b/plugins/shortcuts/src/AddShortcut.tsx
@@ -61,23 +61,18 @@ export const AddShortcut = ({
const [formValues, setFormValues] = useState();
const open = Boolean(anchorEl);
const analytics = useAnalytics();
- const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`);
const shortcut: Omit = { url, title };
try {
- if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) {
- throw new Error(`Shortcut Title '${title}' already Exist`);
- } else {
- await api.add(shortcut);
- alertApi.post({
- message: `Added shortcut '${title}' to your sidebar`,
- severity: 'success',
- display: 'transient',
- });
- }
+ await api.add(shortcut);
+ alertApi.post({
+ message: `Added shortcut '${title}' to your sidebar`,
+ severity: 'success',
+ display: 'transient',
+ });
} catch (error) {
alertApi.post({
message: `Could not add shortcut: ${error.message}`,
diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx
index 288b35d9f0..9f2ffe10be 100644
--- a/plugins/shortcuts/src/EditShortcut.tsx
+++ b/plugins/shortcuts/src/EditShortcut.tsx
@@ -60,7 +60,6 @@ export const EditShortcut = ({
const alertApi = useApi(alertApiRef);
const open = Boolean(anchorEl);
const analytics = useAnalytics();
- const shortcutData = api.get();
const handleSave: SubmitHandler = async ({ url, title }) => {
analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`);
@@ -71,16 +70,12 @@ export const EditShortcut = ({
};
try {
- if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) {
- throw new Error(`Shortcut Title '${title}' already Exist`);
- } else {
- await api.update(newShortcut);
- alertApi.post({
- message: `Updated shortcut '${title}'`,
- severity: 'success',
- display: 'transient',
- });
- }
+ await api.update(newShortcut);
+ alertApi.post({
+ message: `Updated shortcut '${title}'`,
+ severity: 'success',
+ display: 'transient',
+ });
} catch (error) {
alertApi.post({
message: `Could not update shortcut: ${error.message}`,
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 99aa0d29b7..2b5aae52d9 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -24,6 +24,7 @@ import {
TextField,
} from '@material-ui/core';
import { FormValues } from './types';
+import { ShortcutApi } from './api';
const useStyles = makeStyles(theme => ({
field: {
@@ -39,6 +40,7 @@ const useStyles = makeStyles(theme => ({
type Props = {
formValues?: FormValues;
onSave: SubmitHandler;
+ api: ShortcutApi;
onClose: () => void;
allowExternalLinks?: boolean;
};
@@ -46,10 +48,12 @@ type Props = {
export const ShortcutForm = ({
formValues,
onSave,
+ api,
onClose,
allowExternalLinks,
}: Props) => {
const classes = useStyles();
+ const shortcutData = api.get();
const {
handleSubmit,
reset,
@@ -63,6 +67,12 @@ export const ShortcutForm = ({
},
});
+ const titleIsUnique = async (title: string) => {
+ if (shortcutData.some(shortcutTitle => shortcutTitle.title === title))
+ return 'This title name is already exist';
+ return true;
+ };
+
useEffect(() => {
reset(formValues);
}, [reset, formValues]);
@@ -112,6 +122,7 @@ export const ShortcutForm = ({
control={control}
rules={{
required: true,
+ validate: titleIsUnique,
minLength: {
value: 2,
message: 'Must be at least 2 characters',
From 788afefcf332ea2817c8f2859599894a58d6de5f Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Thu, 27 Jul 2023 15:54:27 +0530
Subject: [PATCH 015/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 2b5aae52d9..891739f299 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -24,7 +24,8 @@ import {
TextField,
} from '@material-ui/core';
import { FormValues } from './types';
-import { ShortcutApi } from './api';
+import { shortcutsApiRef } from './api';
+import { useApi } from '@backstage/core-plugin-api';
const useStyles = makeStyles(theme => ({
field: {
@@ -40,7 +41,7 @@ const useStyles = makeStyles(theme => ({
type Props = {
formValues?: FormValues;
onSave: SubmitHandler;
- api: ShortcutApi;
+ // api: ShortcutApi;
onClose: () => void;
allowExternalLinks?: boolean;
};
@@ -48,12 +49,13 @@ type Props = {
export const ShortcutForm = ({
formValues,
onSave,
- api,
+ // api,
onClose,
allowExternalLinks,
}: Props) => {
const classes = useStyles();
- const shortcutData = api.get();
+ const shortcutApi = useApi(shortcutsApiRef);
+ const shortcutData = shortcutApi.get();
const {
handleSubmit,
reset,
From 3ed5a3fdb996f84156d0ed65c6cb3d1236219094 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Thu, 27 Jul 2023 15:56:06 +0530
Subject: [PATCH 016/372] Limit the use of the same shortcut name when adding a
shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 2 --
1 file changed, 2 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 891739f299..f8a53620ee 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -41,7 +41,6 @@ const useStyles = makeStyles(theme => ({
type Props = {
formValues?: FormValues;
onSave: SubmitHandler;
- // api: ShortcutApi;
onClose: () => void;
allowExternalLinks?: boolean;
};
@@ -49,7 +48,6 @@ type Props = {
export const ShortcutForm = ({
formValues,
onSave,
- // api,
onClose,
allowExternalLinks,
}: Props) => {
From e8fa09e881ef60d68daead5cd75c14d207066600 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Thu, 27 Jul 2023 16:08:16 +0530
Subject: [PATCH 017/372] Limit the use of the same shortcut name when adding a
shortcut- added test cases
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.test.tsx | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 3a52356b5d..0e878c1fa4 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -40,6 +40,9 @@ describe('ShortcutForm', () => {
expect(
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
+ expect(
+ screen.getByText('This title name is already exist'),
+ ).toBeInTheDocument();
});
});
From a24d9df8757c61f9dc09684cc6bc489e980d94db Mon Sep 17 00:00:00 2001
From: Connor Younglund
Date: Thu, 27 Jul 2023 15:19:52 -0400
Subject: [PATCH 018/372] [sonarqube-backend plugin] added optional
`externalUrl` config
Signed-off-by: Connor Younglund
---
.changeset/warm-peas-hang.md | 5 +++
plugins/sonarqube-backend/README.md | 28 ++++++++++++
plugins/sonarqube-backend/config.d.ts | 14 ++++++
.../src/service/router.test.ts | 21 ++++++++-
.../sonarqube-backend/src/service/router.ts | 4 +-
.../src/service/sonarqubeInfoProvider.test.ts | 43 +++++++++++++++++++
.../src/service/sonarqubeInfoProvider.ts | 22 ++++++++--
7 files changed, 129 insertions(+), 8 deletions(-)
create mode 100644 .changeset/warm-peas-hang.md
diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md
new file mode 100644
index 0000000000..685bdc2489
--- /dev/null
+++ b/.changeset/warm-peas-hang.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-sonarqube-backend': minor
+---
+
+Added optional `externalUrl` config for setting a different frontend URL
diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md
index 4d16dce025..9061dc9d1d 100644
--- a/plugins/sonarqube-backend/README.md
+++ b/plugins/sonarqube-backend/README.md
@@ -138,6 +138,34 @@ sonarqube:
apiKey: abcdef0123456789abcedf0123456789ab
```
+#### Example - Different frontend and backend URLs
+
+In some instances, you might want to use one URL for the backend and another for the frontend.
+This can be achieved by using the optional `externalUrl` property in the config.
+
+##### Single instance config
+
+```yaml
+sonarqube:
+ baseUrl: https://sonarqube-internal.example.com
+ externalUrl: https://sonarqube.example.com
+ apiKey: 123456789abcdef0123456789abcedf012
+```
+
+##### Multiple instance config
+
+```yaml
+sonarqube:
+ instances:
+ - name: default
+ baseUrl: https://default-sonarqube-internal.example.com
+ externalUrl: https://default-sonarqube.example.com
+ apiKey: 123456789abcdef0123456789abcedf012
+ - name: specialProject
+ baseUrl: https://special-project-sonarqube.example.com
+ apiKey: abcdef0123456789abcedf0123456789ab
+```
+
## Links
- [Sonarqube Frontend](../sonarqube/README.md)
diff --git a/plugins/sonarqube-backend/config.d.ts b/plugins/sonarqube-backend/config.d.ts
index 7e93f61eb4..0e2ac1ca64 100644
--- a/plugins/sonarqube-backend/config.d.ts
+++ b/plugins/sonarqube-backend/config.d.ts
@@ -23,6 +23,13 @@ export interface Config {
*/
baseUrl?: string;
+ /**
+ * The external url of the sonarqube installation.
+ * Use this if you want to use a different url for the frontend than the backend.
+ * @visibility frontend
+ */
+ externalUrl?: string;
+
/**
* The api key to access the sonarqube instance under baseUrl.
* @visibility secret
@@ -46,6 +53,13 @@ export interface Config {
*/
baseUrl: string;
+ /**
+ * The external url of the sonarqube instance.
+ * Use this if you want to use a different url for the frontend than the backend.
+ * @visibility frontend
+ */
+ externalUrl?: string;
+
/**
* The api key to access the sonarqube instance.
* @visibility secret
diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts
index 7045cdf0d2..bede4c7f6f 100644
--- a/plugins/sonarqube-backend/src/service/router.test.ts
+++ b/plugins/sonarqube-backend/src/service/router.test.ts
@@ -24,7 +24,7 @@ import { SonarqubeFindings } from './sonarqubeInfoProvider';
describe('createRouter', () => {
let app: express.Express;
const getBaseUrlMock: jest.Mock<
- { baseUrl: string },
+ { baseUrl: string; externalUrl?: string },
[{ instanceName: string }]
> = jest.fn();
const getFindingsMock: jest.Mock<
@@ -55,6 +55,7 @@ describe('createRouter', () => {
describe('GET /findings', () => {
const DUMMY_COMPONENT_KEY = 'my:component';
const DUMMY_INSTANCE_KEY = 'myInstance';
+
it('returns ok', async () => {
const measures = {
analysisDate: '2022-01-01T00:00:00Z',
@@ -77,6 +78,7 @@ describe('createRouter', () => {
expect(response.status).toEqual(200);
expect(response.body).toEqual(measures);
});
+
it('returns an error when component key is not defined', async () => {
const response = await request(app)
.get('/findings')
@@ -112,9 +114,12 @@ describe('createRouter', () => {
expect(response.body).toEqual(measures);
});
});
+
describe('GET /instanceUrl', () => {
const DUMMY_INSTANCE_KEY = 'myInstance';
- const DUMMY_INSTANCE_URL = 'http://sonarqube.example.com';
+ const DUMMY_INSTANCE_URL = 'http://sonarqube-internal.example.com';
+ const DUMMY_INSTANCE_EXTERNAL_URL = 'http://sonarqube.example.com';
+
it('returns ok', async () => {
getBaseUrlMock.mockReturnValue({ baseUrl: DUMMY_INSTANCE_URL });
const response = await request(app)
@@ -141,5 +146,17 @@ describe('createRouter', () => {
expect(response.status).toEqual(200);
expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL });
});
+
+ it('returns the external url when provided', async () => {
+ getBaseUrlMock.mockReturnValue({
+ baseUrl: DUMMY_INSTANCE_URL,
+ externalUrl: DUMMY_INSTANCE_EXTERNAL_URL,
+ });
+ const response = await request(app).get('/instanceUrl').send();
+ expect(response.status).toEqual(200);
+ expect(response.body).toEqual({
+ instanceUrl: DUMMY_INSTANCE_EXTERNAL_URL,
+ });
+ });
});
});
diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts
index f244ae5ce3..9c63c5c3cd 100644
--- a/plugins/sonarqube-backend/src/service/router.ts
+++ b/plugins/sonarqube-backend/src/service/router.ts
@@ -81,11 +81,11 @@ export async function createRouter(
? `Retrieving sonarqube instance URL for key ${instanceKey}`
: `Retrieving default sonarqube instance URL as instanceKey is not provided`,
);
- const { baseUrl } = sonarqubeInfoProvider.getBaseUrl({
+ const { baseUrl, externalUrl } = sonarqubeInfoProvider.getBaseUrl({
instanceName: instanceKey,
});
response.json({
- instanceUrl: baseUrl,
+ instanceUrl: externalUrl || baseUrl,
});
});
diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
index 72ab2ecee2..151f767974 100644
--- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
+++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
@@ -27,6 +27,7 @@ describe('SonarqubeConfig', () => {
const SONARQUBE_DEFAULT_INSTANCE_NAME = 'default';
const DUMMY_SONAR_URL = 'https://sonarqube.example.com';
const DUMMY_SONAR_APIKEY = '123456789abcdef0123456789abcedf012';
+
const DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG = {
name: SONARQUBE_DEFAULT_INSTANCE_NAME,
baseUrl: DUMMY_SONAR_URL,
@@ -112,6 +113,7 @@ describe('SonarqubeConfig', () => {
},
]);
});
+
it('Throw an error if both a named default config and top level config', async () => {
expect(() =>
SonarqubeConfig.fromConfig(
@@ -299,6 +301,46 @@ describe('DefaultSonarqubeInfoProvider', () => {
baseUrl: 'https://sonarqube-other.example.com',
});
});
+
+ it('Provide external url for simple config', async () => {
+ const provider = configureProvider({
+ sonarqube: {
+ baseUrl: 'https://sonarqube-internal.example.com',
+ externalUrl: 'https://sonarqube.example.com',
+ apiKey: '123456789abcdef0123456789abcedf012',
+ },
+ });
+
+ expect(provider.getBaseUrl()).toEqual({
+ baseUrl: 'https://sonarqube-internal.example.com',
+ externalUrl: 'https://sonarqube.example.com',
+ });
+ });
+
+ it('Provide external url for named config', async () => {
+ const provider = configureProvider({
+ sonarqube: {
+ instances: [
+ {
+ name: 'default',
+ baseUrl: 'https://sonarqube.example.com',
+ apiKey: '123456789abcdef0123456789abcedf012',
+ },
+ {
+ name: 'other',
+ baseUrl: 'https://sonarqube-other-internal.example.com',
+ externalUrl: 'https://sonarqube-other.example.com',
+ apiKey: '123456789abcdef0123456789abcedf012',
+ },
+ ],
+ },
+ });
+
+ expect(provider.getBaseUrl({ instanceName: 'other' })).toEqual({
+ baseUrl: 'https://sonarqube-other-internal.example.com',
+ externalUrl: 'https://sonarqube-other.example.com',
+ });
+ });
});
describe('getFindings', () => {
@@ -385,6 +427,7 @@ describe('DefaultSonarqubeInfoProvider', () => {
apiKey: DUMMY_API_KEY,
},
};
+
it('Provide findings when everything is ok', async () => {
setupHandlers();
const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER);
diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
index 2b96e6764e..6277f6f57e 100644
--- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
+++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
@@ -30,7 +30,10 @@ export interface SonarqubeInfoProvider {
* @param instanceName - Name of the sonarqube instance to get the info from
* @returns the url of the instance
*/
- getBaseUrl(options?: { instanceName?: string }): { baseUrl: string };
+ getBaseUrl(options?: { instanceName?: string }): {
+ baseUrl: string;
+ externalUrl?: string;
+ };
/**
* Query the sonarqube instance corresponding to the instanceName to get all
@@ -96,6 +99,10 @@ export interface SonarqubeInstanceConfig {
* Base url to access the instance
*/
baseUrl: string;
+ /**
+ * External url to access the instance from the frontend
+ */
+ externalUrl?: string;
/**
* Access token to access the sonarqube instance as generated in user profile.
*/
@@ -132,6 +139,7 @@ export class SonarqubeConfig {
sonarqubeConfig.getOptionalConfigArray('instances')?.map(c => ({
name: c.getString('name'),
baseUrl: c.getString('baseUrl'),
+ externalUrl: c.getOptionalString('externalUrl'),
apiKey: c.getString('apiKey'),
})) || [];
@@ -142,9 +150,10 @@ export class SonarqubeConfig {
// Get these as optional strings and check to give a better error message
const baseUrl = sonarqubeConfig.getOptionalString('baseUrl');
+ const externalUrl = sonarqubeConfig.getOptionalString('externalUrl');
const apiKey = sonarqubeConfig.getOptionalString('apiKey');
- if (hasNamedDefault && (baseUrl || apiKey)) {
+ if (hasNamedDefault && (baseUrl || externalUrl || apiKey)) {
throw new Error(
`Found both a named sonarqube instance with name ${DEFAULT_SONARQUBE_NAME} and top level baseUrl or apiKey config. Use only one style of config.`,
);
@@ -160,10 +169,11 @@ export class SonarqubeConfig {
if (unnamedAllPresent) {
const unnamedInstanceConfig = [
- { name: DEFAULT_SONARQUBE_NAME, baseUrl, apiKey },
+ { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalUrl, apiKey },
] as {
name: string;
baseUrl: string;
+ externalUrl?: string;
apiKey: string;
}[];
@@ -303,11 +313,15 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider {
*/
getBaseUrl(options: { instanceName?: string } = {}): {
baseUrl: string;
+ externalUrl?: string;
} {
const instanceConfig = this.config.getInstanceConfig({
sonarqubeName: options.instanceName,
});
- return { baseUrl: instanceConfig.baseUrl };
+ return {
+ baseUrl: instanceConfig.baseUrl,
+ externalUrl: instanceConfig.externalUrl,
+ };
}
/**
From b1e9dcec6a21658140fdc364fa49ca42411b2d50 Mon Sep 17 00:00:00 2001
From: Connor Younglund
Date: Thu, 27 Jul 2023 15:42:33 -0400
Subject: [PATCH 019/372] updated api-report.md
Signed-off-by: Connor Younglund
---
plugins/sonarqube-backend/api-report.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md
index 0fbd463cf3..cf0314aad1 100644
--- a/plugins/sonarqube-backend/api-report.md
+++ b/plugins/sonarqube-backend/api-report.md
@@ -15,6 +15,7 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider {
static fromConfig(config: Config): DefaultSonarqubeInfoProvider;
getBaseUrl(options?: { instanceName?: string }): {
baseUrl: string;
+ externalUrl?: string;
};
getFindings(options: {
componentKey: string;
@@ -49,6 +50,7 @@ export interface SonarqubeFindings {
export interface SonarqubeInfoProvider {
getBaseUrl(options?: { instanceName?: string }): {
baseUrl: string;
+ externalUrl?: string;
};
getFindings(options: {
componentKey: string;
@@ -60,6 +62,7 @@ export interface SonarqubeInfoProvider {
export interface SonarqubeInstanceConfig {
apiKey: string;
baseUrl: string;
+ externalUrl?: string;
name: string;
}
From e5f5054bb03ea869cfd2107377cb3624ed3cec75 Mon Sep 17 00:00:00 2001
From: Scott Guymer
Date: Fri, 28 Jul 2023 09:43:52 +0200
Subject: [PATCH 020/372] Remove extra brace
Signed-off-by: Scott Guymer
---
.../collators/defaultCatalogCollatorEntityTransformer.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
index 4ae6c88c06..3fe6a9c3e5 100644
--- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
+++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts
@@ -95,7 +95,7 @@ describe('DefaultCatalogCollatorEntityTransformer', () => {
expect(document).toMatchObject({
title: userEntity.metadata.name,
- text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}}`,
+ text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}`,
namespace: 'default',
componentType: 'other',
lifecycle: '',
From 33526cdb9e2ea026eb46103b6d0cbfe995cc3533 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 28 Jul 2023 20:11:22 +0530
Subject: [PATCH 021/372] Limit the use of the same shortcut name when adding a
shortcut- error message changed
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index f8a53620ee..f5c5152ff7 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -69,7 +69,7 @@ export const ShortcutForm = ({
const titleIsUnique = async (title: string) => {
if (shortcutData.some(shortcutTitle => shortcutTitle.title === title))
- return 'This title name is already exist';
+ return 'A shortcut with this title already exists';
return true;
};
From d2be7f636653341a1ef3e287834e560cd4befb1c Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 28 Jul 2023 20:13:09 +0530
Subject: [PATCH 022/372] Limit the use of the same shortcut name when adding a
shortcut- error message changed
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.test.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 0e878c1fa4..511c1842c3 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -41,7 +41,7 @@ describe('ShortcutForm', () => {
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
expect(
- screen.getByText('This title name is already exist'),
+ screen.getByText('A shortcut with this title already exists'),
).toBeInTheDocument();
});
});
From adff62590f5c4feec2cfad68dbcafc8d6c6241fe Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 28 Jul 2023 20:34:22 +0530
Subject: [PATCH 023/372] Limit the use of the same shortcut name when adding a
shortcut- test file changes
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.test.tsx | 5 ++++-
plugins/shortcuts/src/EditShortcut.test.tsx | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx
index f8786e2b24..10ed59503b 100644
--- a/plugins/shortcuts/src/AddShortcut.test.tsx
+++ b/plugins/shortcuts/src/AddShortcut.test.tsx
@@ -26,6 +26,7 @@ import {
import { AlertDisplay } from '@backstage/core-components';
import { TestApiProvider } from '@backstage/test-utils';
import { analyticsApiRef } from '@backstage/core-plugin-api';
+import { shortcutsApiRef } from './api';
describe('AddShortcut', () => {
const api = new DefaultShortcutsApi(MockStorageApi.create());
@@ -78,7 +79,9 @@ describe('AddShortcut', () => {
const spy = jest.spyOn(api, 'add');
await renderInTestApp(
-
+
,
);
diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx
index 72a89c13b6..618e3c784d 100644
--- a/plugins/shortcuts/src/EditShortcut.test.tsx
+++ b/plugins/shortcuts/src/EditShortcut.test.tsx
@@ -27,6 +27,7 @@ import {
} from '@backstage/test-utils';
import { AlertDisplay } from '@backstage/core-components';
import { analyticsApiRef } from '@backstage/core-plugin-api';
+import { shortcutsApiRef } from './api';
describe('EditShortcut', () => {
const shortcut: Shortcut = {
@@ -86,7 +87,9 @@ describe('EditShortcut', () => {
const spy = jest.spyOn(api, 'update');
await renderInTestApp(
-
+
,
);
From 831c28e3fcd1a2c8ad66c8b4c1d87a85df16cb69 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 28 Jul 2023 20:52:29 +0530
Subject: [PATCH 024/372] Limit the use of the same shortcut name when adding a
shortcut- test file changes added
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.test.tsx | 7 +++++--
plugins/shortcuts/src/EditShortcut.test.tsx | 7 +++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx
index 10ed59503b..1fcbacb8e6 100644
--- a/plugins/shortcuts/src/AddShortcut.test.tsx
+++ b/plugins/shortcuts/src/AddShortcut.test.tsx
@@ -26,7 +26,7 @@ import {
import { AlertDisplay } from '@backstage/core-components';
import { TestApiProvider } from '@backstage/test-utils';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { shortcutsApiRef } from './api';
+import { shortcutsApiRef, shortcutApi } from './api';
describe('AddShortcut', () => {
const api = new DefaultShortcutsApi(MockStorageApi.create());
@@ -80,7 +80,10 @@ describe('AddShortcut', () => {
await renderInTestApp(
,
diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx
index 618e3c784d..fcd20951dc 100644
--- a/plugins/shortcuts/src/EditShortcut.test.tsx
+++ b/plugins/shortcuts/src/EditShortcut.test.tsx
@@ -27,7 +27,7 @@ import {
} from '@backstage/test-utils';
import { AlertDisplay } from '@backstage/core-components';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { shortcutsApiRef } from './api';
+import { shortcutsApiRef, shortcutApi } from './api';
describe('EditShortcut', () => {
const shortcut: Shortcut = {
@@ -88,7 +88,10 @@ describe('EditShortcut', () => {
await renderInTestApp(
,
From caaa5c8a558e975cf70f8b3152f653dc6f222db1 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 28 Jul 2023 21:05:57 +0530
Subject: [PATCH 025/372] Limit the use of the same shortcut name when adding a
shortcut- test file changes removed
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.test.tsx | 8 +-------
plugins/shortcuts/src/EditShortcut.test.tsx | 8 +-------
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx
index 1fcbacb8e6..f8786e2b24 100644
--- a/plugins/shortcuts/src/AddShortcut.test.tsx
+++ b/plugins/shortcuts/src/AddShortcut.test.tsx
@@ -26,7 +26,6 @@ import {
import { AlertDisplay } from '@backstage/core-components';
import { TestApiProvider } from '@backstage/test-utils';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { shortcutsApiRef, shortcutApi } from './api';
describe('AddShortcut', () => {
const api = new DefaultShortcutsApi(MockStorageApi.create());
@@ -79,12 +78,7 @@ describe('AddShortcut', () => {
const spy = jest.spyOn(api, 'add');
await renderInTestApp(
-
+
,
);
diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx
index fcd20951dc..72a89c13b6 100644
--- a/plugins/shortcuts/src/EditShortcut.test.tsx
+++ b/plugins/shortcuts/src/EditShortcut.test.tsx
@@ -27,7 +27,6 @@ import {
} from '@backstage/test-utils';
import { AlertDisplay } from '@backstage/core-components';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { shortcutsApiRef, shortcutApi } from './api';
describe('EditShortcut', () => {
const shortcut: Shortcut = {
@@ -87,12 +86,7 @@ describe('EditShortcut', () => {
const spy = jest.spyOn(api, 'update');
await renderInTestApp(
-
+
,
);
From fab2acc5c393bffb6d6be5f992a74de778540d95 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Sun, 30 Jul 2023 20:26:28 +0530
Subject: [PATCH 026/372] Limit the use of the same shortcut name and url when
adding a shortcut with test cases
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.test.tsx | 66 +++++++++++++++++----
plugins/shortcuts/src/EditShortcut.test.tsx | 59 +++++++++++++++---
plugins/shortcuts/src/ShortcutForm.test.tsx | 62 ++++++++++++++++---
plugins/shortcuts/src/ShortcutForm.tsx | 7 +++
4 files changed, 167 insertions(+), 27 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx
index f8786e2b24..958e963a3e 100644
--- a/plugins/shortcuts/src/AddShortcut.test.tsx
+++ b/plugins/shortcuts/src/AddShortcut.test.tsx
@@ -17,7 +17,7 @@
import React from 'react';
import { screen, fireEvent, waitFor } from '@testing-library/react';
import { AddShortcut } from './AddShortcut';
-import { DefaultShortcutsApi } from './api';
+import { DefaultShortcutsApi, shortcutsApiRef } from './api';
import {
MockAnalyticsApi,
MockStorageApi,
@@ -42,13 +42,29 @@ describe('AddShortcut', () => {
});
it('displays the title', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
expect(screen.getByText('Add Shortcut')).toBeInTheDocument();
});
it('closes the popup', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
fireEvent.click(screen.getByText('Cancel'));
expect(props.onClose).toHaveBeenCalledTimes(1);
@@ -57,7 +73,17 @@ describe('AddShortcut', () => {
it('saves the input', async () => {
const spy = jest.spyOn(api, 'add');
- await renderInTestApp();
+ await renderInTestApp(
+ await renderInTestApp(
+
+
+ ,
+ ),
+ );
const urlInput = screen.getByPlaceholderText('Enter a URL');
const titleInput = screen.getByPlaceholderText('Enter a display name');
@@ -78,7 +104,12 @@ describe('AddShortcut', () => {
const spy = jest.spyOn(api, 'add');
await renderInTestApp(
-
+
,
);
@@ -106,9 +137,18 @@ describe('AddShortcut', () => {
it('pastes the values', async () => {
const spy = jest.spyOn(api, 'add');
- await renderInTestApp(, {
- routeEntries: ['/some-initial-url'],
- });
+ await renderInTestApp(
+
+ ,
+ ,
+ {
+ routeEntries: ['/some-initial-url'],
+ },
+ );
fireEvent.click(screen.getByText('Use current page'));
fireEvent.click(screen.getByText('Save'));
@@ -125,8 +165,14 @@ describe('AddShortcut', () => {
await renderInTestApp(
<>
-
-
+
+
+
+
>,
);
diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx
index 72a89c13b6..3077168193 100644
--- a/plugins/shortcuts/src/EditShortcut.test.tsx
+++ b/plugins/shortcuts/src/EditShortcut.test.tsx
@@ -18,7 +18,7 @@ import React from 'react';
import { screen, fireEvent, waitFor } from '@testing-library/react';
import { EditShortcut } from './EditShortcut';
import { Shortcut } from './types';
-import { DefaultShortcutsApi } from './api';
+import { DefaultShortcutsApi, shortcutsApiRef } from './api';
import {
MockAnalyticsApi,
MockStorageApi,
@@ -48,13 +48,29 @@ describe('EditShortcut', () => {
});
it('displays the title', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
expect(screen.getByText('Edit Shortcut')).toBeInTheDocument();
});
it('closes the popup', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
fireEvent.click(screen.getByText('Cancel'));
expect(props.onClose).toHaveBeenCalledTimes(1);
@@ -63,7 +79,15 @@ describe('EditShortcut', () => {
it('updates the shortcut', async () => {
const spy = jest.spyOn(api, 'update');
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
const urlInput = screen.getByPlaceholderText('Enter a URL');
const titleInput = screen.getByPlaceholderText('Enter a display name');
@@ -86,7 +110,12 @@ describe('EditShortcut', () => {
const spy = jest.spyOn(api, 'update');
await renderInTestApp(
-
+
,
);
@@ -115,7 +144,15 @@ describe('EditShortcut', () => {
it('removes the shortcut', async () => {
const spy = jest.spyOn(api, 'remove');
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
fireEvent.click(screen.getByText('Remove'));
expect(spy).toHaveBeenCalledWith('id');
@@ -132,8 +169,14 @@ describe('EditShortcut', () => {
await renderInTestApp(
<>
-
-
+
+
+
+
>,
);
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 511c1842c3..748f1ad022 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -16,7 +16,12 @@
import React from 'react';
import { screen, fireEvent, waitFor } from '@testing-library/react';
import { ShortcutForm } from './ShortcutForm';
-import { renderInTestApp } from '@backstage/test-utils';
+import { DefaultShortcutsApi, shortcutsApiRef } from './api';
+import {
+ renderInTestApp,
+ TestApiProvider,
+ MockStorageApi,
+} from '@backstage/test-utils';
describe('ShortcutForm', () => {
const props = {
@@ -25,7 +30,15 @@ describe('ShortcutForm', () => {
};
it('displays validation messages', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
const urlInput = screen.getByPlaceholderText('Enter a URL');
const titleInput = screen.getByPlaceholderText('Enter a display name');
@@ -47,7 +60,15 @@ describe('ShortcutForm', () => {
});
it('allows external links', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
const urlInput = screen.getByPlaceholderText('Enter a URL');
const titleInput = screen.getByPlaceholderText('Enter a display name');
@@ -69,7 +90,15 @@ describe('ShortcutForm', () => {
});
it('allows relative links when external links are enabled', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
const urlInput = screen.getByPlaceholderText('Enter a URL');
const titleInput = screen.getByPlaceholderText('Enter a display name');
@@ -92,10 +121,17 @@ describe('ShortcutForm', () => {
it('calls the save handler', async () => {
await renderInTestApp(
- ,
+
+
+ ,
+ ,
);
fireEvent.click(screen.getByText('Save'));
@@ -108,7 +144,15 @@ describe('ShortcutForm', () => {
});
it('calls the close handler', async () => {
- await renderInTestApp();
+ await renderInTestApp(
+
+
+ ,
+ );
fireEvent.click(screen.getByText('Cancel'));
await waitFor(() => {
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index f5c5152ff7..388d22596e 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -73,6 +73,12 @@ export const ShortcutForm = ({
return true;
};
+ const urlIsUnique = async (url: string) => {
+ if (shortcutApi.get().some(shortcutUrl => shortcutUrl.url === url))
+ return 'A shortcut with this url already exists';
+ return true;
+ };
+
useEffect(() => {
reset(formValues);
}, [reset, formValues]);
@@ -85,6 +91,7 @@ export const ShortcutForm = ({
control={control}
rules={{
required: true,
+ validate: urlIsUnique,
...(allowExternalLinks
? {
pattern: {
From 3fec69363ba58c98df276a37bd082c2247790d73 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Sun, 30 Jul 2023 20:38:25 +0530
Subject: [PATCH 027/372] Limit the use of the same shortcut name and url when
adding a shortcut with test cases
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.test.tsx | 3 ---
1 file changed, 3 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 748f1ad022..773c5491da 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -53,9 +53,6 @@ describe('ShortcutForm', () => {
expect(
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
- expect(
- screen.getByText('A shortcut with this title already exists'),
- ).toBeInTheDocument();
});
});
From 38b272d1f4d494dacf12df38e7a354f221924277 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Mon, 31 Jul 2023 09:58:08 +0530
Subject: [PATCH 028/372] Limit the use of the same shortcut name and url when
adding a shortcut with test cases
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 388d22596e..a23951c939 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -74,7 +74,7 @@ export const ShortcutForm = ({
};
const urlIsUnique = async (url: string) => {
- if (shortcutApi.get().some(shortcutUrl => shortcutUrl.url === url))
+ if (shortcutData.get().some(shortcutUrl => shortcutUrl.url === url))
return 'A shortcut with this url already exists';
return true;
};
From 900dbea7f7181cd1dddd724e7a68c1b6721ab8a8 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Mon, 31 Jul 2023 10:05:31 +0530
Subject: [PATCH 029/372] Limit the use of the same shortcut name and url when
adding a shortcut with test cases
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index a23951c939..4384f1c061 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -74,7 +74,7 @@ export const ShortcutForm = ({
};
const urlIsUnique = async (url: string) => {
- if (shortcutData.get().some(shortcutUrl => shortcutUrl.url === url))
+ if (shortcutData.some(shortcutUrl => shortcutUrl.url === url))
return 'A shortcut with this url already exists';
return true;
};
From 433288347d60d8703994f8da3d2b60a39c1715e7 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Mon, 31 Jul 2023 10:12:05 +0530
Subject: [PATCH 030/372] Limit the use of the same shortcut name and url when
adding a shortcut with test case error message added
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/AddShortcut.test.tsx | 16 +++++++---------
plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ++++++
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx
index 958e963a3e..35f37bc265 100644
--- a/plugins/shortcuts/src/AddShortcut.test.tsx
+++ b/plugins/shortcuts/src/AddShortcut.test.tsx
@@ -74,15 +74,13 @@ describe('AddShortcut', () => {
const spy = jest.spyOn(api, 'add');
await renderInTestApp(
- await renderInTestApp(
-
-
- ,
- ),
+
+
+ ,
);
const urlInput = screen.getByPlaceholderText('Enter a URL');
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 773c5491da..8eda30e1ae 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -53,6 +53,12 @@ describe('ShortcutForm', () => {
expect(
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
+ expect(
+ screen.getByText('A shortcut with this title already exists'),
+ ).toBeInTheDocument();
+ expect(
+ screen.getByText('A shortcut with this url already exists'),
+ ).toBeInTheDocument();
});
});
From b5321414b2045833387a308a381b3522e8bc7635 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Mon, 31 Jul 2023 11:44:53 +0530
Subject: [PATCH 031/372] Limit the use of the same shortcut name and url when
adding a shortcut with test case error message removed
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ------
1 file changed, 6 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 8eda30e1ae..773c5491da 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -53,12 +53,6 @@ describe('ShortcutForm', () => {
expect(
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
- expect(
- screen.getByText('A shortcut with this title already exists'),
- ).toBeInTheDocument();
- expect(
- screen.getByText('A shortcut with this url already exists'),
- ).toBeInTheDocument();
});
});
From 2167b7eab09bea146fc71816d409883e4465b858 Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Mon, 31 Jul 2023 12:51:30 -0400
Subject: [PATCH 032/372] Add pagination support to newrelic plugin
Signed-off-by: Robert Bunning
---
.changeset/khaki-camels-rush.md | 5 +
app-config.yaml | 2 +
plugins/newrelic/README.md | 4 +
plugins/newrelic/src/api/index.test.ts | 312 +++++++++++++++++++++++++
plugins/newrelic/src/api/index.ts | 91 ++++++--
plugins/newrelic/src/plugin.ts | 9 +-
6 files changed, 408 insertions(+), 15 deletions(-)
create mode 100644 .changeset/khaki-camels-rush.md
create mode 100644 plugins/newrelic/src/api/index.test.ts
diff --git a/.changeset/khaki-camels-rush.md b/.changeset/khaki-camels-rush.md
new file mode 100644
index 0000000000..a38600abf3
--- /dev/null
+++ b/.changeset/khaki-camels-rush.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-newrelic': patch
+---
+
+The newrelic plugin now supports pagination when retrieving results from newrelic. It will no longer truncate results. To see all applications, the link header will need to be allowed through the proxy (see the newrelic plugin readme).
diff --git a/app-config.yaml b/app-config.yaml
index 2b562ee689..da505d390b 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -70,6 +70,8 @@ proxy:
target: https://api.newrelic.com/v2
headers:
X-Api-Key: ${NEW_RELIC_REST_API_KEY}
+ allowedHeaders:
+ - link
'/newrelic/api':
target: https://api.newrelic.com
diff --git a/plugins/newrelic/README.md b/plugins/newrelic/README.md
index 8ac7ed2c72..14049ba39c 100644
--- a/plugins/newrelic/README.md
+++ b/plugins/newrelic/README.md
@@ -18,6 +18,8 @@ APIs.
target: https://api.newrelic.com/v2
headers:
X-Api-Key: ${NEW_RELIC_REST_API_KEY}
+ allowedHeaders:
+ - link
```
There is some types of api key on new relic, to this use must be `User` type of key, In your production deployment of Backstage, you would also need to ensure that
@@ -33,6 +35,8 @@ APIs.
'/newrelic/apm/api':
headers:
X-Api-Key: NRRA-YourActualApiKey
+ allowedHeaders:
+ - link
```
Read more about how to find or generate this key in
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
new file mode 100644
index 0000000000..13d9c5304d
--- /dev/null
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -0,0 +1,312 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { NewRelicClient } from '.';
+import { FetchApi } from '@backstage/core-plugin-api';
+import { DiscoveryApi } from '@backstage/core-plugin-api';
+
+beforeEach(() => {
+ jest.resetAllMocks();
+});
+
+describe('NewRelicClient', () => {
+ test.each([
+ ['https://test.test/BASEPATH/apm/api/applications.json', '/BASEPATH'],
+ ['https://test.test/BASEPATH2/apm/api/applications.json', '/BASEPATH2'],
+ ['https://test.testBASEPATH3/apm/api/applications.json', 'BASEPATH3'],
+ ['https://test.test/newrelic/apm/api/applications.json', undefined],
+ ])(
+ 'It correctly forms the request url (%p) when proxyPathBase is %p',
+ async (expectedUrl, basePathOverride) => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest.fn().mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ headers: new Map(),
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ proxyPathBase: basePathOverride,
+ });
+ await client.getApplications();
+
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(expectedUrl);
+ },
+ );
+
+ it('Correctly reads all pages of results and returns the expected results', async () => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedApplicationOne = {
+ id: 1,
+ application_summary: {
+ apdex_score: 0,
+ error_rate: 100,
+ host_count: 500,
+ instance_count: 5000,
+ response_time: 20,
+ throughput: 500000,
+ },
+ name: 'Testing Application #1',
+ language: 'en-us',
+ health_status: 'Failing',
+ reporting: true,
+ settings: {
+ app_apdex_threshold: 0,
+ end_user_apdex_threshold: 0,
+ enable_real_user_monitoring: true,
+ use_server_side_config: true,
+ },
+ };
+
+ const mockedApplicationTwo = {
+ id: 2,
+ name: 'Testing Application #2',
+ language: 'en-us',
+ health_status: 'Working',
+ reporting: true,
+ settings: {
+ app_apdex_threshold: 0,
+ end_user_apdex_threshold: 0,
+ enable_real_user_monitoring: true,
+ use_server_side_config: true,
+ },
+ };
+
+ const mockedApplicationThree = {
+ id: 3,
+ application_summary: {
+ apdex_score: -900,
+ error_rate: 0,
+ host_count: 0,
+ instance_count: 0,
+ response_time: 0,
+ throughput: 0,
+ },
+ name: 'Testing Application #3',
+ language: 'en-us',
+ health_status: 'Waiting',
+ reporting: false,
+ settings: {
+ app_apdex_threshold: 1000,
+ end_user_apdex_threshold: 500,
+ enable_real_user_monitoring: false,
+ use_server_side_config: false,
+ },
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest
+ .fn()
+ .mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ applications: [mockedApplicationOne] }),
+ headers: new Map([
+ [
+ 'link',
+ '; rel="next", ; rel="next"',
+ ],
+ ['otherheader', 'otherValue'],
+ ]),
+ })
+ .mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ applications: [] }),
+ headers: new Map([
+ ['Link', '; rel="next",'],
+ ]),
+ })
+ .mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({
+ applications: [mockedApplicationTwo, mockedApplicationThree],
+ }),
+ headers: new Map([
+ [
+ 'link',
+ '; rel="first", ; rel="next"',
+ ],
+ ]),
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+ const actual = await client.getApplications();
+ const expected = {
+ applications: [
+ mockedApplicationOne,
+ mockedApplicationTwo,
+ mockedApplicationThree,
+ ],
+ };
+
+ expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(3);
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ );
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ 'https://next.page/page2',
+ );
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ 'https://next.page/page3',
+ );
+ expect(actual).toStrictEqual(expected);
+ });
+
+ test.each([['LINK'], ['lINK']])(
+ 'It does not attempt pagination when the link header name is invalid (%p)',
+ async linkHeaderName => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest.fn().mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ applications: [] }),
+ headers: new Map([
+ [
+ linkHeaderName,
+ '; rel="next", ; rel="next"',
+ ],
+ ['otherheader', 'otherValue'],
+ ]),
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+ await client.getApplications();
+
+ expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1);
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ );
+ },
+ );
+
+ test.each([
+ [''],
+ ['<> rel=""'],
+ ['<>; rel=""'],
+ ['; rel=""'],
+ ['<>; rel:"value"'],
+ ['; rel: "next"'],
+ ['ABCDE'],
+ ])(
+ 'It does not attempt pagination when the link header value is invalid (%p)',
+ async linkHeaderValue => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest.fn().mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ applications: [] }),
+ headers: new Map([
+ ['Link', linkHeaderValue],
+ ['otherheader', 'otherValue'],
+ ]),
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+ await client.getApplications();
+
+ expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1);
+ expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ );
+ },
+ );
+
+ test.each([
+ [
+ {
+ ok: false,
+ statusText: 'statusText',
+ json: async () => ({ error: { title: 'TESTING' } }),
+ },
+ ],
+ [
+ {
+ ok: false,
+ statusText: 'statusText',
+ json: async () => ({}),
+ },
+ ],
+ ])(
+ 'It returns an empty array of applications when the fetch is not okay',
+ async fetchResult => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest.fn().mockResolvedValueOnce({
+ ok: true,
+ json: async () => fetchResult,
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+ const actual = await client.getApplications();
+
+ expect(actual).toStrictEqual({ applications: [] });
+ },
+ );
+
+ it('Returns an empty array when the fetch itself throws an error', async () => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: () => {
+ throw new Error('TESTING');
+ },
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+ const actual = await client.getApplications();
+
+ expect(actual).toStrictEqual({ applications: [] });
+ });
+});
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index 2734dd2b4f..9c95f3fe1f 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -14,7 +14,11 @@
* limitations under the License.
*/
-import { createApiRef, DiscoveryApi } from '@backstage/core-plugin-api';
+import {
+ createApiRef,
+ DiscoveryApi,
+ FetchApi,
+} from '@backstage/core-plugin-api';
export type NewRelicApplication = {
id: number;
@@ -61,6 +65,7 @@ const DEFAULT_PROXY_PATH_BASE = '/newrelic';
type Options = {
discoveryApi: DiscoveryApi;
+ fetchApi: FetchApi;
/**
* Path to use for requests via the proxy, defaults to /newrelic
*/
@@ -71,27 +76,58 @@ export interface NewRelicApi {
getApplications(): Promise;
}
+interface PaginationInformation {
+ nextPageLink: string;
+ relation: string;
+}
+
+interface NewRelicPageReadResult {
+ hasMoreApplications: boolean;
+ pagination: PaginationInformation | undefined;
+ applicationsFromReadPage: NewRelicApplication[];
+}
+
export class NewRelicClient implements NewRelicApi {
private readonly discoveryApi: DiscoveryApi;
+ private readonly fetchApi: FetchApi;
private readonly proxyPathBase: string;
constructor(options: Options) {
this.discoveryApi = options.discoveryApi;
+ this.fetchApi = options.fetchApi;
this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE;
}
async getApplications(): Promise {
- const url = await this.getApiUrl('apm', 'applications.json');
- const response = await fetch(url);
- let responseJson;
+ const proxyUrl = await this.discoveryApi.getBaseUrl('proxy');
+ let targetUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`;
+ let hasNextPage = true;
try {
- responseJson = await response.json();
- } catch (e) {
- responseJson = { applications: [] };
- }
+ let applications: NewRelicApplication[] = [];
- if (response.status !== 200) {
+ do {
+ const { hasMoreApplications, pagination, applicationsFromReadPage } =
+ await this.fetchNewRelic(targetUrl);
+
+ hasNextPage = hasMoreApplications;
+ targetUrl = pagination!.nextPageLink;
+ applications = applications.concat(applicationsFromReadPage);
+ } while (hasNextPage);
+
+ return { applications };
+ } catch (e) {
+ return { applications: [] };
+ }
+ }
+
+ private async fetchNewRelic(
+ targetUrl: string,
+ ): Promise {
+ const response = await this.fetchApi.fetch(targetUrl);
+ const responseJson = await response.json();
+
+ if (!response.ok) {
throw new Error(
`Error communicating with New Relic: ${
responseJson?.error?.title || response.statusText
@@ -99,11 +135,40 @@ export class NewRelicClient implements NewRelicApi {
);
}
- return responseJson;
+ const readResponse = responseJson as NewRelicApplications;
+ const linkHeader =
+ response.headers.get('Link') || response.headers.get('link');
+ const pagination = this.parseLinkHeader(linkHeader);
+
+ return {
+ hasMoreApplications: !!(pagination && pagination.relation === 'next'),
+ pagination,
+ applicationsFromReadPage: readResponse.applications,
+ };
}
- private async getApiUrl(product: string, path: string) {
- const proxyUrl = await this.discoveryApi.getBaseUrl('proxy');
- return `${proxyUrl}${this.proxyPathBase}/${product}/api/${path}`;
+ private parseLinkHeader(
+ linkHeader: string | null,
+ ): PaginationInformation | undefined {
+ if (!linkHeader) {
+ return undefined;
+ }
+
+ const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0];
+
+ // Link should be of the format ;rel="relation"
+ const linkParts = nextRelevantLink.match(/^<(.+)>;rel="(.+)"$/);
+ const nextPageLink = linkParts?.[1];
+ const relation = linkParts?.[2];
+ const isValidLink = !!(!!linkParts && nextPageLink && relation);
+
+ if (!nextRelevantLink || !isValidLink) {
+ return undefined;
+ }
+
+ return {
+ nextPageLink,
+ relation,
+ };
}
}
diff --git a/plugins/newrelic/src/plugin.ts b/plugins/newrelic/src/plugin.ts
index 0387c50aa9..da7cae9b93 100644
--- a/plugins/newrelic/src/plugin.ts
+++ b/plugins/newrelic/src/plugin.ts
@@ -20,6 +20,7 @@ import {
createPlugin,
createRouteRef,
discoveryApiRef,
+ fetchApiRef,
createRoutableExtension,
} from '@backstage/core-plugin-api';
@@ -33,8 +34,12 @@ export const newRelicPlugin = createPlugin({
apis: [
createApiFactory({
api: newRelicApiRef,
- deps: { discoveryApi: discoveryApiRef },
- factory: ({ discoveryApi }) => new NewRelicClient({ discoveryApi }),
+ deps: {
+ discoveryApi: discoveryApiRef,
+ fetchApi: fetchApiRef,
+ },
+ factory: ({ discoveryApi, fetchApi }) =>
+ new NewRelicClient({ discoveryApi, fetchApi }),
}),
],
routes: {
From 2b41e9397486c1fb1bcc2b137c605e1282d9487a Mon Sep 17 00:00:00 2001
From: Chris James
Date: Mon, 31 Jul 2023 16:43:53 -0700
Subject: [PATCH 033/372] Adding the ability to not render the change events
tab for the PD card when viewing an entity
Signed-off-by: Chris James
---
.../components/EntityPagerDutyCard/index.tsx | 11 +++++++++--
.../src/components/PagerDutyCard/index.tsx | 19 ++++++++++++-------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx b/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx
index 50e6f3a096..b252069b90 100644
--- a/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx
+++ b/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx
@@ -30,12 +30,19 @@ export const isPluginApplicableToEntity = (entity: Entity) =>
/** @public */
export type EntityPagerDutyCardProps = {
readOnly?: boolean;
+ disableChangeEvents?: boolean;
};
/** @public */
export const EntityPagerDutyCard = (props: EntityPagerDutyCardProps) => {
- const { readOnly } = props;
+ const { readOnly, disableChangeEvents } = props;
const { entity } = useEntity();
const pagerDutyEntity = getPagerDutyEntity(entity);
- return ;
+ return (
+
+ );
};
diff --git a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
index bb89865c5f..a10dc1984b 100644
--- a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
+++ b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
@@ -46,11 +46,12 @@ const BasicCard = ({ children }: { children: ReactNode }) => (
/** @public */
export type PagerDutyCardProps = PagerDutyEntity & {
readOnly?: boolean;
+ disableChangeEvents?: boolean;
};
/** @public */
export const PagerDutyCard = (props: PagerDutyCardProps) => {
- const { readOnly, integrationKey, name } = props;
+ const { readOnly, disableChangeEvents, integrationKey, name } = props;
const api = useApi(pagerDutyApiRef);
const [refreshIncidents, setRefreshIncidents] = useState(false);
const [refreshChangeEvents, setRefreshChangeEvents] =
@@ -169,12 +170,16 @@ export const PagerDutyCard = (props: PagerDutyCardProps) => {
refreshIncidents={refreshIncidents}
/>
-
-
-
+ <>
+ {disableChangeEvents === true && (
+
+
+
+ )}
+ >
From e33e07547ec592c5e03970b7dd844b5e53faaa20 Mon Sep 17 00:00:00 2001
From: Chris James
Date: Mon, 31 Jul 2023 16:46:06 -0700
Subject: [PATCH 034/372] Fix conditional
Signed-off-by: Chris James
---
plugins/pagerduty/src/components/PagerDutyCard/index.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
index a10dc1984b..332d823f1f 100644
--- a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
+++ b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx
@@ -171,7 +171,7 @@ export const PagerDutyCard = (props: PagerDutyCardProps) => {
/>
<>
- {disableChangeEvents === true && (
+ {disableChangeEvents !== true && (
Date: Mon, 31 Jul 2023 17:00:30 -0700
Subject: [PATCH 035/372] Adding api report
Signed-off-by: Chris James
---
plugins/pagerduty/api-report.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/pagerduty/api-report.md b/plugins/pagerduty/api-report.md
index dd24aa9bec..f398a6bee7 100644
--- a/plugins/pagerduty/api-report.md
+++ b/plugins/pagerduty/api-report.md
@@ -22,6 +22,7 @@ export const EntityPagerDutyCard: (
// @public (undocumented)
export type EntityPagerDutyCardProps = {
readOnly?: boolean;
+ disableChangeEvents?: boolean;
};
// @public (undocumented)
From 8e741a1bd29b92c767e9b308f151d10468be1980 Mon Sep 17 00:00:00 2001
From: Connor Younglund
Date: Tue, 1 Aug 2023 08:42:10 -0400
Subject: [PATCH 036/372] renamed config and variables
Signed-off-by: Connor Younglund
---
.changeset/warm-peas-hang.md | 2 +-
plugins/sonarqube-backend/README.md | 6 +++---
plugins/sonarqube-backend/api-report.md | 6 +++---
plugins/sonarqube-backend/config.d.ts | 4 ++--
.../src/service/router.test.ts | 6 +++---
.../sonarqube-backend/src/service/router.ts | 4 ++--
.../src/service/sonarqubeInfoProvider.test.ts | 12 ++++++------
.../src/service/sonarqubeInfoProvider.ts | 19 ++++++++++---------
8 files changed, 30 insertions(+), 29 deletions(-)
diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md
index 685bdc2489..a8a40c1ccd 100644
--- a/.changeset/warm-peas-hang.md
+++ b/.changeset/warm-peas-hang.md
@@ -2,4 +2,4 @@
'@backstage/plugin-sonarqube-backend': minor
---
-Added optional `externalUrl` config for setting a different frontend URL
+Added optional `externalBaseUrl` config for setting a different frontend URL
diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md
index 9061dc9d1d..b417fea7c4 100644
--- a/plugins/sonarqube-backend/README.md
+++ b/plugins/sonarqube-backend/README.md
@@ -141,14 +141,14 @@ sonarqube:
#### Example - Different frontend and backend URLs
In some instances, you might want to use one URL for the backend and another for the frontend.
-This can be achieved by using the optional `externalUrl` property in the config.
+This can be achieved by using the optional `externalBaseUrl` property in the config.
##### Single instance config
```yaml
sonarqube:
baseUrl: https://sonarqube-internal.example.com
- externalUrl: https://sonarqube.example.com
+ externalBaseUrl: https://sonarqube.example.com
apiKey: 123456789abcdef0123456789abcedf012
```
@@ -159,7 +159,7 @@ sonarqube:
instances:
- name: default
baseUrl: https://default-sonarqube-internal.example.com
- externalUrl: https://default-sonarqube.example.com
+ externalBaseUrl: https://default-sonarqube.example.com
apiKey: 123456789abcdef0123456789abcedf012
- name: specialProject
baseUrl: https://special-project-sonarqube.example.com
diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md
index cf0314aad1..535db37185 100644
--- a/plugins/sonarqube-backend/api-report.md
+++ b/plugins/sonarqube-backend/api-report.md
@@ -15,7 +15,7 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider {
static fromConfig(config: Config): DefaultSonarqubeInfoProvider;
getBaseUrl(options?: { instanceName?: string }): {
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
};
getFindings(options: {
componentKey: string;
@@ -50,7 +50,7 @@ export interface SonarqubeFindings {
export interface SonarqubeInfoProvider {
getBaseUrl(options?: { instanceName?: string }): {
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
};
getFindings(options: {
componentKey: string;
@@ -62,7 +62,7 @@ export interface SonarqubeInfoProvider {
export interface SonarqubeInstanceConfig {
apiKey: string;
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
name: string;
}
diff --git a/plugins/sonarqube-backend/config.d.ts b/plugins/sonarqube-backend/config.d.ts
index 0e2ac1ca64..6e03a53f0c 100644
--- a/plugins/sonarqube-backend/config.d.ts
+++ b/plugins/sonarqube-backend/config.d.ts
@@ -28,7 +28,7 @@ export interface Config {
* Use this if you want to use a different url for the frontend than the backend.
* @visibility frontend
*/
- externalUrl?: string;
+ externalBaseUrl?: string;
/**
* The api key to access the sonarqube instance under baseUrl.
@@ -58,7 +58,7 @@ export interface Config {
* Use this if you want to use a different url for the frontend than the backend.
* @visibility frontend
*/
- externalUrl?: string;
+ externalBaseUrl?: string;
/**
* The api key to access the sonarqube instance.
diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts
index bede4c7f6f..b40e2d1528 100644
--- a/plugins/sonarqube-backend/src/service/router.test.ts
+++ b/plugins/sonarqube-backend/src/service/router.test.ts
@@ -24,7 +24,7 @@ import { SonarqubeFindings } from './sonarqubeInfoProvider';
describe('createRouter', () => {
let app: express.Express;
const getBaseUrlMock: jest.Mock<
- { baseUrl: string; externalUrl?: string },
+ { baseUrl: string; externalBaseUrl?: string },
[{ instanceName: string }]
> = jest.fn();
const getFindingsMock: jest.Mock<
@@ -147,10 +147,10 @@ describe('createRouter', () => {
expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL });
});
- it('returns the external url when provided', async () => {
+ it('returns the external base url when provided', async () => {
getBaseUrlMock.mockReturnValue({
baseUrl: DUMMY_INSTANCE_URL,
- externalUrl: DUMMY_INSTANCE_EXTERNAL_URL,
+ externalBaseUrl: DUMMY_INSTANCE_EXTERNAL_URL,
});
const response = await request(app).get('/instanceUrl').send();
expect(response.status).toEqual(200);
diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts
index 9c63c5c3cd..5a993b5d59 100644
--- a/plugins/sonarqube-backend/src/service/router.ts
+++ b/plugins/sonarqube-backend/src/service/router.ts
@@ -81,11 +81,11 @@ export async function createRouter(
? `Retrieving sonarqube instance URL for key ${instanceKey}`
: `Retrieving default sonarqube instance URL as instanceKey is not provided`,
);
- const { baseUrl, externalUrl } = sonarqubeInfoProvider.getBaseUrl({
+ const { baseUrl, externalBaseUrl } = sonarqubeInfoProvider.getBaseUrl({
instanceName: instanceKey,
});
response.json({
- instanceUrl: externalUrl || baseUrl,
+ instanceUrl: externalBaseUrl || baseUrl,
});
});
diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
index 151f767974..468020c1b3 100644
--- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
+++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts
@@ -302,22 +302,22 @@ describe('DefaultSonarqubeInfoProvider', () => {
});
});
- it('Provide external url for simple config', async () => {
+ it('Provide external base url for simple config', async () => {
const provider = configureProvider({
sonarqube: {
baseUrl: 'https://sonarqube-internal.example.com',
- externalUrl: 'https://sonarqube.example.com',
+ externalBaseUrl: 'https://sonarqube.example.com',
apiKey: '123456789abcdef0123456789abcedf012',
},
});
expect(provider.getBaseUrl()).toEqual({
baseUrl: 'https://sonarqube-internal.example.com',
- externalUrl: 'https://sonarqube.example.com',
+ externalBaseUrl: 'https://sonarqube.example.com',
});
});
- it('Provide external url for named config', async () => {
+ it('Provide external base url for named config', async () => {
const provider = configureProvider({
sonarqube: {
instances: [
@@ -329,7 +329,7 @@ describe('DefaultSonarqubeInfoProvider', () => {
{
name: 'other',
baseUrl: 'https://sonarqube-other-internal.example.com',
- externalUrl: 'https://sonarqube-other.example.com',
+ externalBaseUrl: 'https://sonarqube-other.example.com',
apiKey: '123456789abcdef0123456789abcedf012',
},
],
@@ -338,7 +338,7 @@ describe('DefaultSonarqubeInfoProvider', () => {
expect(provider.getBaseUrl({ instanceName: 'other' })).toEqual({
baseUrl: 'https://sonarqube-other-internal.example.com',
- externalUrl: 'https://sonarqube-other.example.com',
+ externalBaseUrl: 'https://sonarqube-other.example.com',
});
});
});
diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
index 6277f6f57e..a5c0bf985a 100644
--- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
+++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts
@@ -32,7 +32,7 @@ export interface SonarqubeInfoProvider {
*/
getBaseUrl(options?: { instanceName?: string }): {
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
};
/**
@@ -102,7 +102,7 @@ export interface SonarqubeInstanceConfig {
/**
* External url to access the instance from the frontend
*/
- externalUrl?: string;
+ externalBaseUrl?: string;
/**
* Access token to access the sonarqube instance as generated in user profile.
*/
@@ -139,7 +139,7 @@ export class SonarqubeConfig {
sonarqubeConfig.getOptionalConfigArray('instances')?.map(c => ({
name: c.getString('name'),
baseUrl: c.getString('baseUrl'),
- externalUrl: c.getOptionalString('externalUrl'),
+ externalBaseUrl: c.getOptionalString('externalBaseUrl'),
apiKey: c.getString('apiKey'),
})) || [];
@@ -150,10 +150,11 @@ export class SonarqubeConfig {
// Get these as optional strings and check to give a better error message
const baseUrl = sonarqubeConfig.getOptionalString('baseUrl');
- const externalUrl = sonarqubeConfig.getOptionalString('externalUrl');
+ const externalBaseUrl =
+ sonarqubeConfig.getOptionalString('externalBaseUrl');
const apiKey = sonarqubeConfig.getOptionalString('apiKey');
- if (hasNamedDefault && (baseUrl || externalUrl || apiKey)) {
+ if (hasNamedDefault && (baseUrl || externalBaseUrl || apiKey)) {
throw new Error(
`Found both a named sonarqube instance with name ${DEFAULT_SONARQUBE_NAME} and top level baseUrl or apiKey config. Use only one style of config.`,
);
@@ -169,11 +170,11 @@ export class SonarqubeConfig {
if (unnamedAllPresent) {
const unnamedInstanceConfig = [
- { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalUrl, apiKey },
+ { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalBaseUrl, apiKey },
] as {
name: string;
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
apiKey: string;
}[];
@@ -313,14 +314,14 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider {
*/
getBaseUrl(options: { instanceName?: string } = {}): {
baseUrl: string;
- externalUrl?: string;
+ externalBaseUrl?: string;
} {
const instanceConfig = this.config.getInstanceConfig({
sonarqubeName: options.instanceName,
});
return {
baseUrl: instanceConfig.baseUrl,
- externalUrl: instanceConfig.externalUrl,
+ externalBaseUrl: instanceConfig.externalBaseUrl,
};
}
From f55b6fd1e28e0dd67a6974a2acb507e2b3538221 Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Tue, 1 Aug 2023 11:20:31 -0400
Subject: [PATCH 037/372] Ensure subsequent page reads are run through the
proxy
Signed-off-by: Robert Bunning
---
plugins/newrelic/src/api/index.test.ts | 34 +++++++++++++++++++++++---
plugins/newrelic/src/api/index.ts | 22 +++++++++++------
2 files changed, 44 insertions(+), 12 deletions(-)
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
index 13d9c5304d..69cf74066f 100644
--- a/plugins/newrelic/src/api/index.test.ts
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -126,7 +126,7 @@ describe('NewRelicClient', () => {
headers: new Map([
[
'link',
- '; rel="next", ; rel="next"',
+ '; rel="next", ; rel="next"',
],
['otherheader', 'otherValue'],
]),
@@ -135,7 +135,7 @@ describe('NewRelicClient', () => {
ok: true,
json: async () => ({ applications: [] }),
headers: new Map([
- ['Link', '; rel="next",'],
+ ['Link', '; rel="next",'],
]),
})
.mockResolvedValueOnce({
@@ -170,10 +170,10 @@ describe('NewRelicClient', () => {
'https://test.test/newrelic/apm/api/applications.json',
);
expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
- 'https://next.page/page2',
+ 'https://test.test/newrelic/apm/api/applications.json?page=2',
);
expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
- 'https://next.page/page3',
+ 'https://test.test/newrelic/apm/api/applications.json?page=3',
);
expect(actual).toStrictEqual(expected);
});
@@ -220,6 +220,7 @@ describe('NewRelicClient', () => {
['<>; rel:"value"'],
['; rel: "next"'],
['ABCDE'],
+ ['; rel="next",'],
])(
'It does not attempt pagination when the link header value is invalid (%p)',
async linkHeaderValue => {
@@ -309,4 +310,29 @@ describe('NewRelicClient', () => {
expect(actual).toStrictEqual({ applications: [] });
});
+
+ it('Generates the base url only once', async () => {
+ const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
+ };
+
+ const mockedFetchApi: FetchApi = {
+ fetch: jest.fn().mockResolvedValue({
+ ok: true,
+ json: async () => ({ applications: [] }),
+ }),
+ };
+
+ const client = new NewRelicClient({
+ discoveryApi: mockedDiscoveryApi,
+ fetchApi: mockedFetchApi,
+ });
+
+ await client.getApplications();
+ await client.getApplications();
+ await client.getApplications();
+ await client.getApplications();
+
+ expect(mockedDiscoveryApi.getBaseUrl).toHaveBeenCalledTimes(1);
+ });
});
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index 9c95f3fe1f..b471104139 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -91,16 +91,22 @@ export class NewRelicClient implements NewRelicApi {
private readonly discoveryApi: DiscoveryApi;
private readonly fetchApi: FetchApi;
private readonly proxyPathBase: string;
+ private baseUrl: string;
constructor(options: Options) {
this.discoveryApi = options.discoveryApi;
this.fetchApi = options.fetchApi;
this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE;
+ this.baseUrl = '';
}
async getApplications(): Promise {
- const proxyUrl = await this.discoveryApi.getBaseUrl('proxy');
- let targetUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`;
+ if (!this.baseUrl) {
+ const proxyUrl = await this.discoveryApi.getBaseUrl('proxy');
+ this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`;
+ }
+
+ let targetUrl = this.baseUrl;
let hasNextPage = true;
try {
@@ -111,7 +117,7 @@ export class NewRelicClient implements NewRelicApi {
await this.fetchNewRelic(targetUrl);
hasNextPage = hasMoreApplications;
- targetUrl = pagination!.nextPageLink;
+ targetUrl = hasNextPage ? pagination!.nextPageLink : '';
applications = applications.concat(applicationsFromReadPage);
} while (hasNextPage);
@@ -155,12 +161,12 @@ export class NewRelicClient implements NewRelicApi {
}
const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0];
-
- // Link should be of the format ;rel="relation"
- const linkParts = nextRelevantLink.match(/^<(.+)>;rel="(.+)"$/);
- const nextPageLink = linkParts?.[1];
+ const linkParts = nextRelevantLink.match(/^<.+(\?page=.+)>;rel="(.+)"$/);
+ const nextPageNumber = linkParts?.[1];
const relation = linkParts?.[2];
- const isValidLink = !!(!!linkParts && nextPageLink && relation);
+
+ const nextPageLink = `${this.baseUrl}${nextPageNumber}`;
+ const isValidLink = !!(!!linkParts && nextPageNumber && relation);
if (!nextRelevantLink || !isValidLink) {
return undefined;
From 5003fc9667415e744ea28ef16b1959170aa1cf46 Mon Sep 17 00:00:00 2001
From: Chris James
Date: Tue, 1 Aug 2023 10:35:07 -0700
Subject: [PATCH 038/372] Add changeset for changes
Signed-off-by: Chris James
---
.changeset/clever-adults-add.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/clever-adults-add.md
diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md
new file mode 100644
index 0000000000..940b82474e
--- /dev/null
+++ b/.changeset/clever-adults-add.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-pagerduty': minor
+---
+
+Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of chang events for a the service.
From 365b0125c05156fff4beb8f6cc5322fb97f89325 Mon Sep 17 00:00:00 2001
From: Chris James
Date: Tue, 1 Aug 2023 10:36:24 -0700
Subject: [PATCH 039/372] Update clever-adults-add.md
Signed-off-by: Chris James
---
.changeset/clever-adults-add.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md
index 940b82474e..c5ca2de902 100644
--- a/.changeset/clever-adults-add.md
+++ b/.changeset/clever-adults-add.md
@@ -2,4 +2,4 @@
'@backstage/plugin-pagerduty': minor
---
-Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of chang events for a the service.
+Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of change events for the PagerDuty service.
From 0a9034a49088fbc6a0d787c5ca10ef9ba3f51888 Mon Sep 17 00:00:00 2001
From: Adam Harvey
Date: Tue, 1 Aug 2023 15:59:04 -0400
Subject: [PATCH 040/372] chore(security): Add OpenSSF Scorecard scanning
Signed-off-by: Adam Harvey
---
.github/workflows/scorecard.yml | 67 +++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 .github/workflows/scorecard.yml
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
new file mode 100644
index 0000000000..6841b0776f
--- /dev/null
+++ b/.github/workflows/scorecard.yml
@@ -0,0 +1,67 @@
+# This workflow uses actions that are not certified by GitHub. They are provided
+# by a third-party and are governed by separate terms of service, privacy
+# policy, and support documentation.
+
+name: Scorecard supply-chain security
+on:
+ # For Branch-Protection check. Only the default branch is supported. See
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
+ # branch_protection_rule:
+ # To guarantee Maintained check is occasionally updated. See
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
+ schedule:
+ - cron: '41 8 * * 6'
+ push:
+ branches: [ "master" ]
+
+# Declare default permissions as read only.
+permissions: read-all
+
+jobs:
+ analysis:
+ name: Scorecard analysis
+ runs-on: ubuntu-latest
+ permissions:
+ # Needed to upload the results to code-scanning dashboard.
+ security-events: write
+ # Needed to publish results and get a badge (see publish_results below).
+ id-token: write
+
+ steps:
+ - name: "Checkout code"
+ uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
+ with:
+ persist-credentials: false
+
+ - name: "Run analysis"
+ uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
+ with:
+ results_file: results.sarif
+ results_format: sarif
+ # (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
+ # - you want to enable the Branch-Protection check on a *public* repository, or
+ # - you are installing Scorecard on a *private* repository
+ # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
+ # repo_token: ${{ secrets.SCORECARD_TOKEN }}
+
+ # Public repositories:
+ # - Publish results to OpenSSF REST API for easy access by consumers
+ # - Allows the repository to include the Scorecard badge.
+ # - See https://github.com/ossf/scorecard-action#publishing-results.
+ publish_results: true
+
+ # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
+ # format to the repository Actions tab.
+ - name: "Upload artifact"
+ uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
+ with:
+ name: SARIF file
+ path: results.sarif
+ retention-days: 5
+
+ # Upload the results to GitHub's code scanning dashboard.
+ - name: "Upload to code-scanning"
+ uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
+ with:
+ sarif_file: results.sarif
+
From 31cd0dd9e514b24523913ac083d576be9fccbce2 Mon Sep 17 00:00:00 2001
From: Adam Harvey
Date: Tue, 1 Aug 2023 16:25:53 -0400
Subject: [PATCH 041/372] chore: Prettier cleanup
Signed-off-by: Adam Harvey
---
.github/workflows/scorecard.yml | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 6841b0776f..63c44bcf20 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -12,7 +12,7 @@ on:
schedule:
- cron: '41 8 * * 6'
push:
- branches: [ "master" ]
+ branches: ['master']
# Declare default permissions as read only.
permissions: read-all
@@ -28,12 +28,12 @@ jobs:
id-token: write
steps:
- - name: "Checkout code"
+ - name: 'Checkout code'
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
with:
persist-credentials: false
- - name: "Run analysis"
+ - name: 'Run analysis'
uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
with:
results_file: results.sarif
@@ -52,7 +52,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- - name: "Upload artifact"
+ - name: 'Upload artifact'
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
with:
name: SARIF file
@@ -60,8 +60,7 @@ jobs:
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- - name: "Upload to code-scanning"
+ - name: 'Upload to code-scanning'
uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
with:
sarif_file: results.sarif
-
From 83467b0534eeed2d816912daf1e1e7efd07e4cf6 Mon Sep 17 00:00:00 2001
From: "jean-philippe.blary"
Date: Wed, 2 Aug 2023 09:37:51 +0200
Subject: [PATCH 042/372] fix(explore): don't put ? if no query parameters
Signed-off-by: jean-philippe.blary
---
.changeset/violet-dogs-breathe.md | 5 +++++
plugins/explore/src/api/ExploreClient.test.ts | 16 ++++++++++++++++
plugins/explore/src/api/ExploreClient.ts | 2 +-
3 files changed, 22 insertions(+), 1 deletion(-)
create mode 100644 .changeset/violet-dogs-breathe.md
diff --git a/.changeset/violet-dogs-breathe.md b/.changeset/violet-dogs-breathe.md
new file mode 100644
index 0000000000..938c8df678
--- /dev/null
+++ b/.changeset/violet-dogs-breathe.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-explore': patch
+---
+
+Don't put "?" in URL if no query parameters.
diff --git a/plugins/explore/src/api/ExploreClient.test.ts b/plugins/explore/src/api/ExploreClient.test.ts
index bbec568a09..77eb42ddf6 100644
--- a/plugins/explore/src/api/ExploreClient.test.ts
+++ b/plugins/explore/src/api/ExploreClient.test.ts
@@ -83,6 +83,22 @@ describe('ExploreClient', () => {
});
expect(response).toEqual(expectedResponse);
});
+
+ it('should request explore tools without filters', async () => {
+ const expectedResponse: GetExploreToolsResponse = {
+ tools: mockTools,
+ };
+
+ server.use(
+ rest.get(`${mockBaseUrl}/tools`, (req, res, ctx) => {
+ expect(req.url.search).toBe('');
+ return res(ctx.json(expectedResponse));
+ }),
+ );
+
+ const response = await client.getTools();
+ expect(response).toEqual(expectedResponse);
+ });
});
describe('when using exploreToolsConfig for backwards compatibility', () => {
diff --git a/plugins/explore/src/api/ExploreClient.ts b/plugins/explore/src/api/ExploreClient.ts
index 9dca2755fe..4528200b43 100644
--- a/plugins/explore/src/api/ExploreClient.ts
+++ b/plugins/explore/src/api/ExploreClient.ts
@@ -71,7 +71,7 @@ export class ExploreClient implements ExploreApi {
filter?.lifecycle?.map(l => `lifecycle=${encodeURIComponent(l)}`) ?? [];
const query = [...tags, ...lifecycles].join('&');
- const response = await fetch(`${baseUrl}/tools?${query}`);
+ const response = await fetch(`${baseUrl}/tools${query ? `?${query}` : ''}`);
if (!response.ok) {
throw await ResponseError.fromResponse(response);
From e0ecbd684cf9cbdde73cb76626a50c6d103d3bb1 Mon Sep 17 00:00:00 2001
From: Adam Harvey
Date: Wed, 2 Aug 2023 11:27:43 -0400
Subject: [PATCH 043/372] chore: Add CLO Monitor exemption settings
Signed-off-by: Adam Harvey
---
.clomonitor.yml | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 .clomonitor.yml
diff --git a/.clomonitor.yml b/.clomonitor.yml
new file mode 100644
index 0000000000..1e217dd400
--- /dev/null
+++ b/.clomonitor.yml
@@ -0,0 +1,9 @@
+# CLOMonitor metadata file
+# This file must be located at the root of the repository
+# https://clomonitor.io/projects/cncf/backstage
+
+# Checks exemptions
+exemptions:
+ - check: trademark_disclaimer # Check identifier (see https://github.com/cncf/clomonitor/blob/main/docs/checks.md#exemptions)
+ # Justification of this exemption (mandatory, it will be displayed on the UI)
+ reason: 'The Linux Foundation trademark disclaimer and link are contained within the project web site at https://backstage.io in the copyright footer. However, because the site is delivered dynamically via React through JavaScript, the check cannot currently identify it.'
From 593ea01f6a05192900b6f87ab9e834de9264576a Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 23:17:08 +0200
Subject: [PATCH 044/372] catalog: fix EntitySwitch unmounting children on
entity refresh
Signed-off-by: Vincenzo Scamporlino
---
.../EntitySwitch/EntitySwitch.test.tsx | 93 ++++++++++++++++++-
.../components/EntitySwitch/EntitySwitch.tsx | 10 +-
2 files changed, 95 insertions(+), 8 deletions(-)
diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
index 13e214d823..3a8795ccb7 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
@@ -20,7 +20,7 @@ import {
EntityProvider,
} from '@backstage/plugin-catalog-react';
import { render, screen } from '@testing-library/react';
-import React from 'react';
+import React, { useEffect } from 'react';
import { isKind } from './conditions';
import { EntitySwitch } from './EntitySwitch';
import { featureFlagsApiRef } from '@backstage/core-plugin-api';
@@ -209,6 +209,97 @@ describe('EntitySwitch', () => {
expect(screen.queryByText('B')).not.toBeInTheDocument();
});
+ it('should display the children in case entity is available and loading is true', () => {
+ const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
+
+ render(
+
+
+
+ Component
}
+ />
+ System} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('Component')).toBeInTheDocument();
+ expect(screen.queryByText('System')).not.toBeInTheDocument();
+ });
+
+ it(`shouldn't unmount the children on entity refresh`, () => {
+ const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
+
+ let mountsCount = 0;
+ function Component() {
+ useEffect(() => {
+ ++mountsCount;
+ }, []);
+
+ return Component
;
+ }
+
+ const rendered = render(
+
+
+
+ }
+ />
+ System} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('Component')).toBeInTheDocument();
+ expect(screen.queryByText('System')).not.toBeInTheDocument();
+
+ expect(mountsCount).toBe(1);
+
+ rendered.rerender(
+
+
+
+ }
+ />
+ System} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('Component')).toBeInTheDocument();
+ expect(screen.queryByText('System')).not.toBeInTheDocument();
+
+ expect(mountsCount).toBe(1);
+
+ rendered.rerender(
+
+
+
+ }
+ />
+ System} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('Component')).toBeInTheDocument();
+ expect(screen.queryByText('System')).not.toBeInTheDocument();
+
+ expect(mountsCount).toBe(1);
+ });
+
it('should switch with async condition that is true', async () => {
const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
index 3cd806faa5..90de358ef9 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
@@ -64,8 +64,9 @@ export interface EntitySwitchProps {
/** @public */
export const EntitySwitch = (props: EntitySwitchProps) => {
- const { entity, loading } = useAsyncEntity();
+ const { entity } = useAsyncEntity();
const apis = useApiHolder();
+
const results = useElementFilter(
props.children,
collection =>
@@ -76,11 +77,6 @@ export const EntitySwitch = (props: EntitySwitchProps) => {
})
.getElements()
.flatMap((element: ReactElement) => {
- // Nothing is rendered while loading
- if (loading) {
- return [];
- }
-
const { if: condition, children: elementsChildren } =
element.props as EntitySwitchCase;
@@ -100,7 +96,7 @@ export const EntitySwitch = (props: EntitySwitchProps) => {
},
];
}),
- [apis, entity, loading],
+ [apis, entity],
);
const hasAsyncCases = results.some(
From 136cea792bd4ea7404a0cbfbadc3655c4284fdf2 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 23:19:15 +0200
Subject: [PATCH 045/372] changeset
Signed-off-by: Vincenzo Scamporlino
---
.changeset/twelve-ducks-swim.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/twelve-ducks-swim.md
diff --git a/.changeset/twelve-ducks-swim.md b/.changeset/twelve-ducks-swim.md
new file mode 100644
index 0000000000..1e44f09be1
--- /dev/null
+++ b/.changeset/twelve-ducks-swim.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog': patch
+---
+
+Fixed an issue causing `EntitySwitch` to unmount its children once entity refresh was invoked
From 047e0906364366606bd626a8010e680da6d04d3d Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 23:42:59 +0200
Subject: [PATCH 046/372] I think unmount should be valid
Signed-off-by: Vincenzo Scamporlino
---
.github/vale/Vocab/Backstage/accept.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt
index ed09c73c91..f85139ccbf 100644
--- a/.github/vale/Vocab/Backstage/accept.txt
+++ b/.github/vale/Vocab/Backstage/accept.txt
@@ -405,6 +405,7 @@ unbreak
Unconference
unicode
unmanaged
+unmount
unregister
unregistering
unregistration
From 17d626cad4d6191bc15138c51f87541501847471 Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Thu, 3 Aug 2023 10:34:25 +0300
Subject: [PATCH 047/372] Fix variable passing
Signed-off-by: Alex Eftimie
---
.../tasks/NunjucksWorkflowRunner.test.ts | 66 ++++++++++++++++++-
.../tasks/NunjucksWorkflowRunner.ts | 11 +++-
2 files changed, 72 insertions(+), 5 deletions(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
index 8fbbd45b94..253a6c4388 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
@@ -574,7 +574,7 @@ describe('DefaultWorkflowRunner', () => {
});
describe('each', () => {
- it('should run a step repeatedly', async () => {
+ it('should run a step repeatedly - flat values', async () => {
const task = createMockTaskWithSpec({
apiVersion: 'scaffolder.backstage.io/v1beta3',
steps: [
@@ -583,7 +583,7 @@ describe('DefaultWorkflowRunner', () => {
name: 'name',
each: '${{parameters.colors}}',
action: 'jest-mock-action',
- input: { color: '${{each}}' },
+ input: { color: '${{each.value}}' },
},
],
output: {},
@@ -604,6 +604,68 @@ describe('DefaultWorkflowRunner', () => {
expect.objectContaining({ input: { color: 'red' } }),
);
});
+
+ it('should run a step repeatedly - object list', async () => {
+ const task = createMockTaskWithSpec({
+ apiVersion: 'scaffolder.backstage.io/v1beta3',
+ steps: [
+ {
+ id: 'test',
+ name: 'name',
+ each: '${{parameters.settings}}',
+ action: 'jest-mock-action',
+ input: {
+ key: '${{each.key}}',
+ value: '${{each.value}}',
+ },
+ },
+ ],
+ output: {},
+ parameters: {
+ settings: [{ color: 'blue' }],
+ },
+ });
+
+ await runner.execute(task);
+
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({
+ input: { key: '0', value: { color: 'blue' } },
+ }),
+ );
+ });
+
+ it('should run a step repeatedly - object', async () => {
+ const task = createMockTaskWithSpec({
+ apiVersion: 'scaffolder.backstage.io/v1beta3',
+ steps: [
+ {
+ id: 'test',
+ name: 'name',
+ each: '${{parameters.settings}}',
+ action: 'jest-mock-action',
+ input: { key: '${{each.key}}', value: '${{each.value}}' },
+ },
+ ],
+ output: {},
+ parameters: {
+ settings: { color: 'blue', transparent: 'yes' },
+ },
+ });
+
+ await runner.execute(task);
+
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({
+ input: { key: 'color', value: 'blue' },
+ }),
+ );
+ expect(fakeActionHandler).toHaveBeenCalledWith(
+ expect.objectContaining({
+ input: { key: 'transparent', value: 'yes' },
+ }),
+ );
+ });
});
describe('secrets', () => {
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index a6c486c58d..b0b8fd6d09 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -315,7 +315,9 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
const iterations = new Array();
if (step.each) {
const each = await this.render(step.each, context, renderTemplate);
- iterations.push(...each);
+ iterations.push(
+ ...Object.keys(each).map((key: any) => [key, each[key]]),
+ );
} else {
iterations.push({});
}
@@ -324,13 +326,16 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
for (const iteration of iterations) {
if (step.each) {
taskLogger.info(`Running step each: ${iteration}`);
- context.each = iteration;
+ const iterationContext = {
+ ...context,
+ each: { key: iteration[0], value: iteration[1] },
+ };
// re-render input with the modified context that includes each
actionInput =
(step.input &&
this.render(
step.input,
- { ...context, secrets: task.secrets ?? {} },
+ { ...iterationContext, secrets: task.secrets ?? {} },
renderTemplate,
)) ??
{};
From 43b61fdb394c987def5b9ccb2186d71ab5c4e57e Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Thu, 3 Aug 2023 10:44:37 +0300
Subject: [PATCH 048/372] fix tsc
Signed-off-by: Alex Eftimie
---
.../src/scaffolder/tasks/NunjucksWorkflowRunner.ts | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index b0b8fd6d09..1f93ded94c 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -316,7 +316,9 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
if (step.each) {
const each = await this.render(step.each, context, renderTemplate);
iterations.push(
- ...Object.keys(each).map((key: any) => [key, each[key]]),
+ ...Object.keys(each).map((key: any) => {
+ return { key: key, value: each[key] };
+ }),
);
} else {
iterations.push({});
@@ -328,7 +330,7 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
taskLogger.info(`Running step each: ${iteration}`);
const iterationContext = {
...context,
- each: { key: iteration[0], value: iteration[1] },
+ each: iteration,
};
// re-render input with the modified context that includes each
actionInput =
From 5b0b80f39582c2082d1a57229c66899a8b9f67f5 Mon Sep 17 00:00:00 2001
From: Alex Eftimie
Date: Thu, 3 Aug 2023 12:23:46 +0300
Subject: [PATCH 049/372] fix docs
Signed-off-by: Alex Eftimie
---
docs/features/software-templates/writing-templates.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md
index db342bcf61..57e261f19f 100644
--- a/docs/features/software-templates/writing-templates.md
+++ b/docs/features/software-templates/writing-templates.md
@@ -526,8 +526,8 @@ input:
each: [{ name: 'apple', count: 3 }, { name: 'orange', count: 1 }]
input:
values:
- fruit: ${{ each.name }}
- count: ${{ each.count }}
+ fruit: ${{ each.value.name }}
+ count: ${{ each.value.count }}
```
When `each` is used, the outputs of a repeated step are returned as an array of outputs from each iteration.
From ee497790227247c112d9e97003ed166c048817f8 Mon Sep 17 00:00:00 2001
From: coderrob
Date: Thu, 3 Aug 2023 12:46:59 -0500
Subject: [PATCH 050/372] Fix invalid deprecated import paths in
plugin-catalog-backend
Signed-off-by: coderrob
---
plugins/catalog-backend/src/index.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts
index 345102adcd..8ce258d3b6 100644
--- a/plugins/catalog-backend/src/index.ts
+++ b/plugins/catalog-backend/src/index.ts
@@ -36,13 +36,13 @@ import {
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-catalog` instead
+ * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
*/
export const DefaultCatalogCollatorFactory = _DefaultCatalogCollatorFactory;
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-catalog` instead
+ * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
*/
export const defaultCatalogCollatorEntityTransformer =
_defaultCatalogCollatorEntityTransformer;
@@ -54,14 +54,14 @@ import type {
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-catalog` instead
+ * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
*/
export type DefaultCatalogCollatorFactoryOptions =
_DefaultCatalogCollatorFactoryOptions;
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-catalog` instead
+ * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
*/
export type CatalogCollatorEntityTransformer =
_CatalogCollatorEntityTransformer;
From 6ca6c3b865b16db32620f7b932d18021c1c11f7a Mon Sep 17 00:00:00 2001
From: coderrob
Date: Thu, 3 Aug 2023 12:48:13 -0500
Subject: [PATCH 051/372] Fix invalid deprecated import paths in
plugins/explore-backend
Signed-off-by: coderrob
---
plugins/explore-backend/src/index.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/explore-backend/src/index.ts b/plugins/explore-backend/src/index.ts
index ca501db96b..15659d6ab6 100644
--- a/plugins/explore-backend/src/index.ts
+++ b/plugins/explore-backend/src/index.ts
@@ -36,19 +36,19 @@ import type {
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-explore` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead
*/
export const ToolDocumentCollatorFactory = _ToolDocumentCollatorFactory;
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-explore` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead
*/
export type ToolDocument = _ToolDocument;
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-explore` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead
*/
export type ToolDocumentCollatorFactoryOptions =
_ToolDocumentCollatorFactoryOptions;
From 659264dad4030c167c33eb672a328917339161e4 Mon Sep 17 00:00:00 2001
From: coderrob
Date: Thu, 3 Aug 2023 12:49:00 -0500
Subject: [PATCH 052/372] Fix invalid deprecated import paths in
plugins/techdocs-backend
Signed-off-by: coderrob
---
plugins/techdocs-backend/src/search/index.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/techdocs-backend/src/search/index.ts b/plugins/techdocs-backend/src/search/index.ts
index fc2b48375e..904f998042 100644
--- a/plugins/techdocs-backend/src/search/index.ts
+++ b/plugins/techdocs-backend/src/search/index.ts
@@ -25,12 +25,12 @@ import type { TechDocsCollatorFactoryOptions as _TechDocsCollatorFactoryOptions
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-techdocs` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-techdocs` instead
*/
export type TechDocsCollatorFactoryOptions = _TechDocsCollatorFactoryOptions;
/**
* @public
- * @deprecated import from `@backstage/search-backend-module-techdocs` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-techdocs` instead
*/
export const DefaultTechDocsCollatorFactory = _DefaultTechDocsCollatorFactory;
From 51d47ba5abca2377ad84efa32db1e8b9d65bd2dd Mon Sep 17 00:00:00 2001
From: Rob Lindley
Date: Thu, 3 Aug 2023 12:51:23 -0500
Subject: [PATCH 053/372] Fix missing ` in catalog-backend find / replace
Signed-off-by: Rob Lindley
Signed-off-by: coderrob
---
plugins/catalog-backend/src/index.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts
index 8ce258d3b6..55c1c672d3 100644
--- a/plugins/catalog-backend/src/index.ts
+++ b/plugins/catalog-backend/src/index.ts
@@ -36,13 +36,13 @@ import {
/**
* @public
- * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead
*/
export const DefaultCatalogCollatorFactory = _DefaultCatalogCollatorFactory;
/**
* @public
- * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead
*/
export const defaultCatalogCollatorEntityTransformer =
_defaultCatalogCollatorEntityTransformer;
@@ -54,14 +54,14 @@ import type {
/**
* @public
- * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead
*/
export type DefaultCatalogCollatorFactoryOptions =
_DefaultCatalogCollatorFactoryOptions;
/**
* @public
- * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead
+ * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead
*/
export type CatalogCollatorEntityTransformer =
_CatalogCollatorEntityTransformer;
From a6f2f70515ab7131ee8a777f1f0f21c66d86eb1c Mon Sep 17 00:00:00 2001
From: Robert Bunning <129326788+wss-rbunning@users.noreply.github.com>
Date: Thu, 3 Aug 2023 14:47:25 -0400
Subject: [PATCH 054/372] Update plugins/newrelic/src/api/index.ts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Fredrik Adelöw
Signed-off-by: Robert Bunning <129326788+wss-rbunning@users.noreply.github.com>
---
plugins/newrelic/src/api/index.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index b471104139..9ce6f2c111 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -166,7 +166,7 @@ export class NewRelicClient implements NewRelicApi {
const relation = linkParts?.[2];
const nextPageLink = `${this.baseUrl}${nextPageNumber}`;
- const isValidLink = !!(!!linkParts && nextPageNumber && relation);
+ const isValidLink = !!(linkParts && nextPageNumber && relation);
if (!nextRelevantLink || !isValidLink) {
return undefined;
From 86b9c3b0d34558660393efaf8a9c7ea1a804f70e Mon Sep 17 00:00:00 2001
From: Adam Harvey
Date: Thu, 3 Aug 2023 18:41:57 -0400
Subject: [PATCH 055/372] chore: Add Storybook automated labeling
Signed-off-by: Adam Harvey
---
.github/labeler.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/labeler.yml b/.github/labeler.yml
index eaba199588..dc048b1744 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -24,6 +24,8 @@ documentation:
- docs/**/*
microsite:
- microsite/**/*
+storybook:
+ - storybook/**/*
auth:
- plugins/auth-backend/**/*
- packages/core-app-api/src/apis/implementations/auth/**/*
From 586402b75ca0ce53ccdbfc2917bb2da816bfd37b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 4 Aug 2023 02:01:44 +0000
Subject: [PATCH 056/372] chore(deps): update helm/kind-action action to v1.8.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/verify_e2e-kubernetes.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml
index c05339f595..49fc8f0aa1 100644
--- a/.github/workflows/verify_e2e-kubernetes.yml
+++ b/.github/workflows/verify_e2e-kubernetes.yml
@@ -35,7 +35,7 @@ jobs:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
- name: bootstrap kind
- uses: helm/kind-action@v1.7.0
+ uses: helm/kind-action@v1.8.0
- name: kubernetes test
working-directory: packages/backend-common
From cef344c45c0c2a0de6b955325f7758d6ade921c9 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 4 Aug 2023 09:40:23 +0530
Subject: [PATCH 057/372] Limit the use of the same shortcut name and url when
adding a shortcut fixed review changes
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 4384f1c061..6085c6c182 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -15,6 +15,7 @@
*/
import React, { useEffect } from 'react';
+import useObservable from 'react-use/lib/useObservable';
import { useForm, SubmitHandler, Controller } from 'react-hook-form';
import {
Button,
@@ -53,7 +54,10 @@ export const ShortcutForm = ({
}: Props) => {
const classes = useStyles();
const shortcutApi = useApi(shortcutsApiRef);
- const shortcutData = shortcutApi.get();
+ const shortcutData = useObservable(
+ shortcutApi.shortcut$(),
+ shortcutApi.get(),
+ );
const {
handleSubmit,
reset,
@@ -67,13 +71,13 @@ export const ShortcutForm = ({
},
});
- const titleIsUnique = async (title: string) => {
+ const titleIsUnique = (title: string) => {
if (shortcutData.some(shortcutTitle => shortcutTitle.title === title))
return 'A shortcut with this title already exists';
return true;
};
- const urlIsUnique = async (url: string) => {
+ const urlIsUnique = (url: string) => {
if (shortcutData.some(shortcutUrl => shortcutUrl.url === url))
return 'A shortcut with this url already exists';
return true;
From 16e4c6bfb123208cca0a91f17316be5d5100edc2 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Fri, 4 Aug 2023 09:57:31 +0530
Subject: [PATCH 058/372] Limit the use of the same shortcut name and url when
adding a shortcut fixed review changes
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx
index 6085c6c182..e8cd8144d0 100644
--- a/plugins/shortcuts/src/ShortcutForm.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.tsx
@@ -71,13 +71,13 @@ export const ShortcutForm = ({
},
});
- const titleIsUnique = (title: string) => {
+ const titleIsUnique = (title: string) => {
if (shortcutData.some(shortcutTitle => shortcutTitle.title === title))
return 'A shortcut with this title already exists';
return true;
};
- const urlIsUnique = (url: string) => {
+ const urlIsUnique = (url: string) => {
if (shortcutData.some(shortcutUrl => shortcutUrl.url === url))
return 'A shortcut with this url already exists';
return true;
From 96846456b10dd34dfc1c7e175803f68c559844e9 Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Fri, 4 Aug 2023 11:46:19 -0400
Subject: [PATCH 059/372] Only get lowercased link header
Signed-off-by: Robert Bunning
---
plugins/newrelic/src/api/index.test.ts | 4 ++--
plugins/newrelic/src/api/index.ts | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
index 69cf74066f..70fda9606d 100644
--- a/plugins/newrelic/src/api/index.test.ts
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -135,7 +135,7 @@ describe('NewRelicClient', () => {
ok: true,
json: async () => ({ applications: [] }),
headers: new Map([
- ['Link', '; rel="next",'],
+ ['link', '; rel="next",'],
]),
})
.mockResolvedValueOnce({
@@ -178,7 +178,7 @@ describe('NewRelicClient', () => {
expect(actual).toStrictEqual(expected);
});
- test.each([['LINK'], ['lINK']])(
+ test.each([['Link'], ['LINK'], ['lINK']])(
'It does not attempt pagination when the link header name is invalid (%p)',
async linkHeaderName => {
const mockedDiscoveryApi: DiscoveryApi = {
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index 9ce6f2c111..237fe95fde 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -142,8 +142,7 @@ export class NewRelicClient implements NewRelicApi {
}
const readResponse = responseJson as NewRelicApplications;
- const linkHeader =
- response.headers.get('Link') || response.headers.get('link');
+ const linkHeader = response.headers.get('link');
const pagination = this.parseLinkHeader(linkHeader);
return {
From 9177ff8a9d48209082b0de630b795e510665c206 Mon Sep 17 00:00:00 2001
From: Matt Benson
Date: Fri, 4 Aug 2023 11:43:30 -0500
Subject: [PATCH 060/372] document correct generated relations for
group.children
Signed-off-by: Matt Benson
---
docs/features/software-catalog/descriptor-format.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md
index 0be2bf0292..924c59a6fa 100644
--- a/docs/features/software-catalog/descriptor-format.md
+++ b/docs/features/software-catalog/descriptor-format.md
@@ -978,9 +978,9 @@ way.
The entries of this array are
[entity references](https://backstage.io/docs/features/software-catalog/references).
-| [`kind`](#apiversion-and-kind-required) | Default [`namespace`](#namespace-optional) | Generated [relation](well-known-relations.md) type |
-| --------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------- |
-| [`Group`](#kind-group) (default) | Same as this entity, typically `default` | [`hasMember`, and reverse `memberOf`](well-known-relations.md#memberof-and-hasmember) |
+| [`kind`](#apiversion-and-kind-required) | Default [`namespace`](#namespace-optional) | Generated [relation](well-known-relations.md) type |
+| --------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------- |
+| [`Group`](#kind-group) (default) | Same as this entity, typically `default` | [`parentOf`, and reverse `childOf`](well-known-relations.md#parentof-and-childof) |
### `spec.members` [optional]
From 4c99b8fca63ff69e0c4ecebf2e004f0ab7b18ee1 Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Fri, 4 Aug 2023 15:19:43 -0400
Subject: [PATCH 061/372] Switch to using other link header parser
Signed-off-by: Robert Bunning
---
plugins/newrelic/package.json | 2 +
plugins/newrelic/src/api/index.test.ts | 2 +-
plugins/newrelic/src/api/index.ts | 52 +++++---------------------
yarn.lock | 20 +++++++++-
4 files changed, 32 insertions(+), 44 deletions(-)
diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json
index b09050c599..7e42a26d9f 100644
--- a/plugins/newrelic/package.json
+++ b/plugins/newrelic/package.json
@@ -39,6 +39,8 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
+ "@types/parse-link-header": "^2.0.1",
+ "parse-link-header": "^2.0.0",
"react-use": "^17.2.4"
},
"peerDependencies": {
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
index 70fda9606d..94bdc8ff94 100644
--- a/plugins/newrelic/src/api/index.test.ts
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -126,7 +126,7 @@ describe('NewRelicClient', () => {
headers: new Map([
[
'link',
- '; rel="next", ; rel="next"',
+ '; rel="next", ; rel="first"',
],
['otherheader', 'otherValue'],
]),
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index 237fe95fde..ede225dc05 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -20,6 +20,8 @@ import {
FetchApi,
} from '@backstage/core-plugin-api';
+import parseLinkHeader from 'parse-link-header';
+
export type NewRelicApplication = {
id: number;
application_summary: NewRelicApplicationSummary;
@@ -76,14 +78,8 @@ export interface NewRelicApi {
getApplications(): Promise;
}
-interface PaginationInformation {
- nextPageLink: string;
- relation: string;
-}
-
interface NewRelicPageReadResult {
- hasMoreApplications: boolean;
- pagination: PaginationInformation | undefined;
+ nextPageUrl: string | undefined;
applicationsFromReadPage: NewRelicApplication[];
}
@@ -106,20 +102,17 @@ export class NewRelicClient implements NewRelicApi {
this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`;
}
- let targetUrl = this.baseUrl;
- let hasNextPage = true;
-
try {
let applications: NewRelicApplication[] = [];
+ let targetUrl = this.baseUrl;
do {
- const { hasMoreApplications, pagination, applicationsFromReadPage } =
+ const { nextPageUrl, applicationsFromReadPage } =
await this.fetchNewRelic(targetUrl);
- hasNextPage = hasMoreApplications;
- targetUrl = hasNextPage ? pagination!.nextPageLink : '';
+ targetUrl = nextPageUrl ?? '';
applications = applications.concat(applicationsFromReadPage);
- } while (hasNextPage);
+ } while (!!targetUrl);
return { applications };
} catch (e) {
@@ -143,37 +136,12 @@ export class NewRelicClient implements NewRelicApi {
const readResponse = responseJson as NewRelicApplications;
const linkHeader = response.headers.get('link');
- const pagination = this.parseLinkHeader(linkHeader);
+ const parseResult = parseLinkHeader(linkHeader);
+ const nextPageNumber = parseResult?.next?.page;
return {
- hasMoreApplications: !!(pagination && pagination.relation === 'next'),
- pagination,
+ nextPageUrl: nextPageNumber && `${this.baseUrl}?page=${nextPageNumber}`,
applicationsFromReadPage: readResponse.applications,
};
}
-
- private parseLinkHeader(
- linkHeader: string | null,
- ): PaginationInformation | undefined {
- if (!linkHeader) {
- return undefined;
- }
-
- const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0];
- const linkParts = nextRelevantLink.match(/^<.+(\?page=.+)>;rel="(.+)"$/);
- const nextPageNumber = linkParts?.[1];
- const relation = linkParts?.[2];
-
- const nextPageLink = `${this.baseUrl}${nextPageNumber}`;
- const isValidLink = !!(linkParts && nextPageNumber && relation);
-
- if (!nextRelevantLink || !isValidLink) {
- return undefined;
- }
-
- return {
- nextPageLink,
- relation,
- };
- }
}
diff --git a/yarn.lock b/yarn.lock
index 3f9b0ee1bc..1399f1d622 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7605,9 +7605,11 @@ __metadata:
"@testing-library/react": ^12.1.3
"@testing-library/user-event": ^14.0.0
"@types/node": ^16.11.26
+ "@types/parse-link-header": ^2.0.1
"@types/react": ^16.13.1 || ^17.0.0
cross-fetch: ^3.1.5
msw: ^1.0.0
+ parse-link-header: ^2.0.0
react-use: ^17.2.4
peerDependencies:
react: ^16.13.1 || ^17.0.0
@@ -17606,6 +17608,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/parse-link-header@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@types/parse-link-header@npm:2.0.1"
+ checksum: f76678612511365aefc23704f00f3262fcb1d6bd9c4dd83f783a38e50e3ccf26615f9a62c757952cab5af6f2bd8b3b1763ce391376458afce5fe47c6fe2b80e1
+ languageName: node
+ linkType: hard
+
"@types/passport-auth0@npm:^1.0.5":
version: 1.0.5
resolution: "@types/passport-auth0@npm:1.0.5"
@@ -34337,6 +34346,15 @@ __metadata:
languageName: node
linkType: hard
+"parse-link-header@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "parse-link-header@npm:2.0.0"
+ dependencies:
+ xtend: ~4.0.1
+ checksum: 0e96c6af9910e8f92084b49b8dc6a10dd58db470847d1499f562576180c1ac5e49d18007697f0d538e5f3efdc8ce1d8777641f3ae225302b74af0dd0578b628e
+ languageName: node
+ linkType: hard
+
"parse-path@npm:^7.0.0":
version: 7.0.0
resolution: "parse-path@npm:7.0.0"
@@ -42745,7 +42763,7 @@ __metadata:
languageName: node
linkType: hard
-"xtend@npm:^4.0.0":
+"xtend@npm:^4.0.0, xtend@npm:~4.0.1":
version: 4.0.2
resolution: "xtend@npm:4.0.2"
checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a
From 2fd2b0816283177be7cd6b656ab8ed0774aa2fe5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 5 Aug 2023 16:14:53 +0000
Subject: [PATCH 062/372] fix(deps): update dependency
@microsoft/microsoft-graph-types to v2.38.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 1a7517ab07..a17cc23451 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12882,9 +12882,9 @@ __metadata:
linkType: hard
"@microsoft/microsoft-graph-types@npm:^2.25.0, @microsoft/microsoft-graph-types@npm:^2.6.0":
- version: 2.35.0
- resolution: "@microsoft/microsoft-graph-types@npm:2.35.0"
- checksum: d2053799a8b78f5743a64853727e3887101cbb6b26558b8a6e8501b561b04d4bca1dac6c74534229b9e40daa489f47188ae5837ada42108a50d4062cfb60f57e
+ version: 2.38.0
+ resolution: "@microsoft/microsoft-graph-types@npm:2.38.0"
+ checksum: f5778650655034a6d92fbb932376002aefcf0cd358de323267b65fbec59284e8c0208e895c5523dcbbe79c4b583f3822c6beea01b70c687da26929c92de93c92
languageName: node
linkType: hard
From fa33214ba89d2389fb3adb01eae9b14ccb25607b Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 16:57:48 -0600
Subject: [PATCH 063/372] docs: provide example for github:repo:create
Signed-off-by: Kurt King
---
.../github/githubRepoCreate.examples.test.ts | 135 ++++++++++++++++++
.../github/githubRepoCreate.examples.ts | 35 +++++
.../builtin/github/githubRepoCreate.ts | 2 +
3 files changed, 172 insertions(+)
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
new file mode 100644
index 0000000000..2f4adbf7db
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
+
+jest.mock('../helpers');
+
+import { getVoidLogger } from '@backstage/backend-common';
+import { ConfigReader } from '@backstage/config';
+import {
+ DefaultGithubCredentialsProvider,
+ GithubCredentialsProvider,
+ ScmIntegrations,
+} from '@backstage/integration';
+import { PassThrough } from 'stream';
+import { createGithubRepoCreateAction } from './githubRepoCreate';
+import { entityRefToName } from '../helpers';
+import yaml from 'yaml';
+import { examples } from './githubRepoCreate.examples';
+
+const publicKey = '2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=';
+
+const mockOctokit = {
+ rest: {
+ users: {
+ getByUsername: jest.fn(),
+ },
+ repos: {
+ addCollaborator: jest.fn(),
+ createInOrg: jest.fn(),
+ createForAuthenticatedUser: jest.fn(),
+ replaceAllTopics: jest.fn(),
+ },
+ teams: {
+ addOrUpdateRepoPermissionsInOrg: jest.fn(),
+ getByName: jest.fn(),
+ },
+ actions: {
+ createRepoVariable: jest.fn(),
+ createOrUpdateRepoSecret: jest.fn(),
+ getRepoPublicKey: jest.fn(),
+ },
+ },
+};
+jest.mock('octokit', () => ({
+ Octokit: class {
+ constructor() {
+ return mockOctokit;
+ }
+ },
+}));
+
+describe('github:repo:create', () => {
+ const config = new ConfigReader({
+ integrations: {
+ github: [
+ { host: 'github.com', token: 'tokenlols' },
+ { host: 'ghe.github.com' },
+ ],
+ },
+ });
+
+ const integrations = ScmIntegrations.fromConfig(config);
+ let githubCredentialsProvider: GithubCredentialsProvider;
+ let action: TemplateAction;
+
+ const mockContext = {
+ input: {
+ repoUrl: 'github.com?repo=repo&owner=owner',
+ },
+ workspacePath: 'lol',
+ logger: getVoidLogger(),
+ logStream: new PassThrough(),
+ output: jest.fn(),
+ createTemporaryDirectory: jest.fn(),
+ };
+
+ beforeEach(() => {
+ githubCredentialsProvider =
+ DefaultGithubCredentialsProvider.fromIntegrations(integrations);
+ action = createGithubRepoCreateAction({
+ integrations,
+ githubCredentialsProvider,
+ });
+ (entityRefToName as jest.Mock).mockImplementation((s: string) => s);
+ mockOctokit.rest.actions.getRepoPublicKey.mockResolvedValue({
+ data: {
+ key: publicKey,
+ key_id: 'keyid',
+ },
+ });
+ });
+
+ afterEach(jest.resetAllMocks);
+
+ it('should call the githubApis with the correct values for createInOrg', async () => {
+ mockOctokit.rest.users.getByUsername.mockResolvedValue({
+ data: { type: 'Organization' },
+ });
+
+ mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} });
+
+ await action.handler({
+ ...mockContext,
+ input: yaml.parse(examples[0].example).steps[0].input,
+ });
+
+ expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({
+ name: 'repo',
+ org: 'owner',
+ private: true,
+ delete_branch_on_merge: false,
+ allow_squash_merge: true,
+ squash_merge_commit_title: 'COMMIT_OR_PR_TITLE',
+ squash_merge_commit_message: 'COMMIT_MESSAGES',
+ allow_merge_commit: true,
+ allow_rebase_merge: true,
+ allow_auto_merge: false,
+ visibility: 'private',
+ });
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
new file mode 100644
index 0000000000..d64afe1338
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { TemplateExample } from '@backstage/plugin-scaffolder-node';
+import yaml from 'yaml';
+
+export const examples: TemplateExample[] = [
+ {
+ description: 'Creates a GitHub repository.',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:create',
+ name: 'Create a new GitHub repository',
+ input: {
+ repoUrl: 'github.com?repo=repo&owner=owner',
+ },
+ },
+ ],
+ }),
+ },
+];
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
index 0ec1c83910..e0fde3b193 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
@@ -28,6 +28,7 @@ import {
} from './helpers';
import * as inputProps from './inputProperties';
import * as outputProps from './outputProperties';
+import { examples } from './githubRepoCreate.examples';
/**
* Creates a new action that initializes a git repository
@@ -96,6 +97,7 @@ export function createGithubRepoCreateAction(options: {
}>({
id: 'github:repo:create',
description: 'Creates a GitHub repository.',
+ examples,
schema: {
input: {
type: 'object',
From 6c6115b6e1714e02622c6a9e05f0b590ddab3729 Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 17:01:46 -0600
Subject: [PATCH 064/372] test: update description
Signed-off-by: Kurt King
---
.../actions/builtin/github/githubRepoCreate.examples.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
index 2f4adbf7db..15dc423dd8 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
@@ -63,7 +63,7 @@ jest.mock('octokit', () => ({
},
}));
-describe('github:repo:create', () => {
+describe('github:repo:create examples', () => {
const config = new ConfigReader({
integrations: {
github: [
From 2e7c770cda51a7009c5179c77155d0bb5a41458d Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 18:03:20 -0600
Subject: [PATCH 065/372] docs: provide example for github:repo:push
Signed-off-by: Kurt King
---
.../github/githubRepoPush.examples.test.ts | 131 ++++++++++++++++++
.../builtin/github/githubRepoPush.examples.ts | 65 +++++++++
.../actions/builtin/github/githubRepoPush.ts | 2 +
3 files changed, 198 insertions(+)
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts
new file mode 100644
index 0000000000..84d489272d
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
+import { getVoidLogger } from '@backstage/backend-common';
+import { ConfigReader } from '@backstage/config';
+import {
+ DefaultGithubCredentialsProvider,
+ GithubCredentialsProvider,
+ ScmIntegrations,
+} from '@backstage/integration';
+import { PassThrough } from 'stream';
+import { initRepoAndPush } from '../helpers';
+import { createGithubRepoPushAction } from './githubRepoPush';
+import { examples } from './githubRepoPush.examples';
+import yaml from 'yaml';
+
+const mockGit = {
+ init: jest.fn(),
+ add: jest.fn(),
+ checkout: jest.fn(),
+ commit: jest
+ .fn()
+ .mockResolvedValue('220f19cc36b551763d157f1b5e4a4b446165dbd6'),
+ fetch: jest.fn(),
+ addRemote: jest.fn(),
+ push: jest.fn(),
+};
+
+jest.mock('@backstage/backend-common', () => ({
+ Git: {
+ fromAuth() {
+ return mockGit;
+ },
+ },
+ getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger,
+}));
+
+jest.mock('../helpers');
+
+const initRepoAndPushMocked = initRepoAndPush as jest.Mock<
+ Promise<{ commitHash: string }>
+>;
+
+const mockOctokit = {
+ rest: {
+ repos: {
+ get: jest.fn(),
+ },
+ },
+};
+jest.mock('octokit', () => ({
+ Octokit: class {
+ constructor() {
+ return mockOctokit;
+ }
+ },
+}));
+
+describe('github:repo:push examples', () => {
+ const config = new ConfigReader({
+ integrations: {
+ github: [
+ { host: 'github.com', token: 'tokenlols' },
+ { host: 'ghe.github.com' },
+ ],
+ },
+ });
+
+ const integrations = ScmIntegrations.fromConfig(config);
+ let githubCredentialsProvider: GithubCredentialsProvider;
+ let action: TemplateAction;
+
+ const mockContext = {
+ workspacePath: 'lol',
+ logger: getVoidLogger(),
+ logStream: new PassThrough(),
+ output: jest.fn(),
+ createTemporaryDirectory: jest.fn(),
+ };
+
+ beforeEach(() => {
+ jest.resetAllMocks();
+
+ initRepoAndPushMocked.mockResolvedValue({ commitHash: 'test123' });
+
+ githubCredentialsProvider =
+ DefaultGithubCredentialsProvider.fromIntegrations(integrations);
+ action = createGithubRepoPushAction({
+ integrations,
+ config,
+ githubCredentialsProvider,
+ });
+ });
+
+ it('should call initRepoAndPush with the correct values', async () => {
+ mockOctokit.rest.repos.get.mockResolvedValue({
+ data: {
+ clone_url: 'https://github.com/clone/url.git',
+ html_url: 'https://github.com/html/url',
+ },
+ });
+
+ await action.handler({
+ ...mockContext,
+ input: yaml.parse(examples[0].example).steps[0].input,
+ });
+
+ expect(initRepoAndPush).toHaveBeenCalledWith({
+ dir: mockContext.workspacePath,
+ remoteUrl: 'https://github.com/clone/url.git',
+ defaultBranch: 'master',
+ auth: { username: 'x-access-token', password: 'tokenlols' },
+ logger: mockContext.logger,
+ commitMessage: 'initial commit',
+ gitAuthorInfo: {},
+ });
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts
new file mode 100644
index 0000000000..5d3ba1e9d8
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { TemplateExample } from '@backstage/plugin-scaffolder-node';
+import yaml from 'yaml';
+
+export const examples: TemplateExample[] = [
+ {
+ description: 'Setup repo with no modifications to branch protection rules',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:push',
+ name: 'Create test repo with testuser as owner.',
+ input: {
+ repoUrl: 'github.com?repo=test&owner=testuser',
+ },
+ },
+ ],
+ }),
+ },
+ {
+ description: 'Setup repo with required codeowners check',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:push',
+ name: 'Require codeowner branch protection rule',
+ input: {
+ repoUrl: 'github.com?repo=reponame&owner=owner',
+ requireCodeOwnerReviews: true,
+ },
+ },
+ ],
+ }),
+ },
+ {
+ description: 'Change the default required number of approvals',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:push',
+ name: 'Require two approvals before merging',
+ input: {
+ repoUrl: 'github.com?repo=reponame&owner=owner',
+ requiredApprovingReviewCount: 2,
+ },
+ },
+ ],
+ }),
+ },
+];
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
index fb15535453..e30eedad02 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
@@ -26,6 +26,7 @@ import { parseRepoUrl } from '../publish/util';
import { getOctokitOptions, initRepoPushAndProtect } from './helpers';
import * as inputProps from './inputProperties';
import * as outputProps from './outputProperties';
+import { examples } from './githubRepoPush.examples';
/**
* Creates a new action that initializes a git repository of the content in the workspace
@@ -76,6 +77,7 @@ export function createGithubRepoPushAction(options: {
id: 'github:repo:push',
description:
'Initializes a git repository of contents in workspace and publishes it to GitHub.',
+ examples,
schema: {
input: {
type: 'object',
From 563b8443e92ebe13ca1b08b6303f25621c579722 Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 18:13:37 -0600
Subject: [PATCH 066/372] docs: add more examples
Signed-off-by: Kurt King
---
.../github/githubRepoCreate.examples.test.ts | 57 +++++++++++++++++++
.../github/githubRepoCreate.examples.ts | 33 ++++++++++-
2 files changed, 89 insertions(+), 1 deletion(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
index 15dc423dd8..71bbc7c1c6 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts
@@ -132,4 +132,61 @@ describe('github:repo:create examples', () => {
visibility: 'private',
});
});
+
+ it('should call the githubApis with a description for createInOrg', async () => {
+ mockOctokit.rest.users.getByUsername.mockResolvedValue({
+ data: { type: 'Organization' },
+ });
+
+ mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} });
+
+ await action.handler({
+ ...mockContext,
+ input: yaml.parse(examples[1].example).steps[0].input,
+ });
+
+ expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({
+ name: 'repo',
+ description: 'My new repository',
+ org: 'owner',
+ private: true,
+ delete_branch_on_merge: false,
+ allow_squash_merge: true,
+ squash_merge_commit_title: 'COMMIT_OR_PR_TITLE',
+ squash_merge_commit_message: 'COMMIT_MESSAGES',
+ allow_merge_commit: true,
+ allow_rebase_merge: true,
+ allow_auto_merge: false,
+ visibility: 'private',
+ });
+ });
+
+ it('should call the githubApis with wiki and issues disabled for createInOrg', async () => {
+ mockOctokit.rest.users.getByUsername.mockResolvedValue({
+ data: { type: 'Organization' },
+ });
+
+ mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} });
+
+ await action.handler({
+ ...mockContext,
+ input: yaml.parse(examples[2].example).steps[0].input,
+ });
+
+ expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({
+ name: 'repo',
+ org: 'owner',
+ private: true,
+ delete_branch_on_merge: false,
+ allow_squash_merge: true,
+ squash_merge_commit_title: 'COMMIT_OR_PR_TITLE',
+ squash_merge_commit_message: 'COMMIT_MESSAGES',
+ allow_merge_commit: true,
+ allow_rebase_merge: true,
+ allow_auto_merge: false,
+ visibility: 'private',
+ has_issues: false, // disable issues
+ has_wiki: false, // disable wiki
+ });
+ });
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
index d64afe1338..b2577fa97b 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
@@ -19,7 +19,7 @@ import yaml from 'yaml';
export const examples: TemplateExample[] = [
{
- description: 'Creates a GitHub repository.',
+ description: 'Creates a GitHub repository with default configuration.',
example: yaml.stringify({
steps: [
{
@@ -32,4 +32,35 @@ export const examples: TemplateExample[] = [
],
}),
},
+ {
+ description: 'Add a description.',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:create',
+ name: 'Create a new GitHub repository',
+ input: {
+ repoUrl: 'github.com?repo=repo&owner=owner',
+ description: 'My new repository',
+ },
+ },
+ ],
+ }),
+ },
+ {
+ description: 'Disable wiki and issues.',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: 'github:repo:create',
+ name: 'Create a new GitHub repository',
+ input: {
+ repoUrl: 'github.com?repo=repo&owner=owner',
+ hasIssues: false,
+ hasWiki: false,
+ },
+ },
+ ],
+ }),
+ },
];
From 0f873325068d05b709c2a5c3c80d57155eba1abe Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 18:19:33 -0600
Subject: [PATCH 067/372] chore: add changeset
Signed-off-by: Kurt King
---
.changeset/orange-pandas-worry.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/orange-pandas-worry.md
diff --git a/.changeset/orange-pandas-worry.md b/.changeset/orange-pandas-worry.md
new file mode 100644
index 0000000000..78bd1fad79
--- /dev/null
+++ b/.changeset/orange-pandas-worry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+docs: add examples for github:repo:create and github:repo:push scaffolder actions
From 1e945f311b17b0fc34a41872793cc69cb957c365 Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Sat, 5 Aug 2023 18:24:54 -0600
Subject: [PATCH 068/372] chore: minor description updates
Signed-off-by: Kurt King
---
.../actions/builtin/github/githubRepoCreate.examples.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
index b2577fa97b..a58da1ee29 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts
@@ -38,7 +38,7 @@ export const examples: TemplateExample[] = [
steps: [
{
action: 'github:repo:create',
- name: 'Create a new GitHub repository',
+ name: 'Create a new GitHub repository with a description',
input: {
repoUrl: 'github.com?repo=repo&owner=owner',
description: 'My new repository',
@@ -53,7 +53,7 @@ export const examples: TemplateExample[] = [
steps: [
{
action: 'github:repo:create',
- name: 'Create a new GitHub repository',
+ name: 'Create a new GitHub repository without wiki and issues',
input: {
repoUrl: 'github.com?repo=repo&owner=owner',
hasIssues: false,
From 8d1cc7cbcc34b29eee3bf89c7748b3e422f8c7f9 Mon Sep 17 00:00:00 2001
From: Philipp Hugenroth
Date: Mon, 7 Aug 2023 12:04:29 +0200
Subject: [PATCH 069/372] Update v1.16.0.md
The "Mailchimp" link seems to have stoped working. Suggestion to replace the link in the latest release note - as well as the upcoming release notes - with the link used for the newsletter in other place. Let me know if there is a template somewhere where I can apply this change as well.
Signed-off-by: Philipp Hugenroth
---
docs/releases/v1.16.0.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/releases/v1.16.0.md b/docs/releases/v1.16.0.md
index 5435d15994..37a458cc32 100644
--- a/docs/releases/v1.16.0.md
+++ b/docs/releases/v1.16.0.md
@@ -84,4 +84,4 @@ Below you can find a list of links and references to help you learn about and st
- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.16.0-changelog.md)
- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins)
-Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage.
+Sign up for our [newsletter](https://info.backstage.spotify.com/newsletter_subscribe) if you want to be informed about what is happening in the world of Backstage.
From 0c450c0e9e44571cb6f8139d6b8a3331eb1dfc6d Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 1 Aug 2023 11:55:25 +0200
Subject: [PATCH 070/372] add feature discovery service
Co-authored-by: Patrik Oldsberg
Signed-off-by: Vincenzo Scamporlino
---
.../src/wiring/BackendInitializer.ts | 17 +++++++++++
packages/backend-plugin-api/package.json | 19 ++++++++++--
packages/backend-plugin-api/src/alpha.ts | 29 +++++++++++++++++++
3 files changed, 62 insertions(+), 3 deletions(-)
create mode 100644 packages/backend-plugin-api/src/alpha.ts
diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts
index ec4b2a79ac..cf140158a6 100644
--- a/packages/backend-app-api/src/wiring/BackendInitializer.ts
+++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts
@@ -27,6 +27,7 @@ import { EnumerableServiceHolder, ServiceOrExtensionPoint } from './types';
// eslint-disable-next-line @backstage/no-forbidden-package-imports
import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types';
import { ForwardedError } from '@backstage/errors';
+import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha';
export interface BackendRegisterInit {
consumes: Set;
@@ -87,6 +88,10 @@ export class BackendInitializer {
if (this.#startPromise) {
throw new Error('feature can not be added after the backend has started');
}
+ this.#addFeature(feature);
+ }
+
+ #addFeature(feature: BackendFeature) {
if (feature.$$type !== '@backstage/BackendFeature') {
throw new Error(
`Failed to add feature, invalid type '${feature.$$type}'`,
@@ -129,6 +134,18 @@ export class BackendInitializer {
}
async #doStart(): Promise {
+ const featureDiscovery = await this.#serviceHolder.get(
+ featureDiscoveryServiceRef,
+ 'root',
+ );
+
+ if (featureDiscovery) {
+ const { features } = await featureDiscovery.getBackendFeatures();
+ for (const plugin of features) {
+ this.#addFeature(plugin);
+ }
+ }
+
// Initialize all root scoped services
for (const ref of this.#serviceHolder.getServiceRefs()) {
if (ref.scope === 'root') {
diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json
index 5d0bfe08fb..555c60c8e4 100644
--- a/packages/backend-plugin-api/package.json
+++ b/packages/backend-plugin-api/package.json
@@ -5,13 +5,26 @@
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
- "access": "public",
- "main": "dist/index.cjs.js",
- "types": "dist/index.d.ts"
+ "access": "public"
},
"backstage": {
"role": "node-library"
},
+ "exports": {
+ ".": "./src/index.ts",
+ "./alpha": "./src/alpha.ts",
+ "./package.json": "./package.json"
+ },
+ "typesVersions": {
+ "*": {
+ "alpha": [
+ "src/alpha.ts"
+ ],
+ "package.json": [
+ "package.json"
+ ]
+ }
+ },
"homepage": "https://backstage.io",
"repository": {
"type": "git",
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
new file mode 100644
index 0000000000..6db9b009cf
--- /dev/null
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { createServiceRef } from './services';
+import { BackendFeature } from './wiring';
+
+/** @alpha */
+export interface FeatureDiscoveryService {
+ getBackendFeatures(): Promise<{ features: Array }>;
+}
+
+/** @alpha */
+export const featureDiscoveryServiceRef =
+ createServiceRef({
+ id: 'core.featureDiscovery',
+ });
From 0b4dbb40827c6097b741c58cb4fd11e9cf25dedc Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 1 Aug 2023 16:52:56 +0200
Subject: [PATCH 071/372] discover backend feature factory
Co-authored-by: Patrik Oldsberg
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-app-api/package.json | 20 ++-
packages/backend-app-api/src/alpha.ts | 118 ++++++++++++++++++
packages/backend-next/package.json | 1 +
.../src/wiring/factories.ts | 10 +-
yarn.lock | 2 +
5 files changed, 147 insertions(+), 4 deletions(-)
create mode 100644 packages/backend-app-api/src/alpha.ts
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index d1aa511794..75890b4370 100644
--- a/packages/backend-app-api/package.json
+++ b/packages/backend-app-api/package.json
@@ -5,13 +5,26 @@
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
- "access": "public",
- "main": "dist/index.cjs.js",
- "types": "dist/index.d.ts"
+ "access": "public"
},
"backstage": {
"role": "node-library"
},
+ "exports": {
+ ".": "./src/index.ts",
+ "./alpha": "./src/alpha.ts",
+ "./package.json": "./package.json"
+ },
+ "typesVersions": {
+ "*": {
+ "alpha": [
+ "src/alpha.ts"
+ ],
+ "package.json": [
+ "package.json"
+ ]
+ }
+ },
"homepage": "https://backstage.io",
"repository": {
"type": "git",
@@ -36,6 +49,7 @@
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/cli-common": "workspace:^",
+ "@backstage/cli-node": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/config-loader": "workspace:^",
"@backstage/errors": "workspace:^",
diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts
new file mode 100644
index 0000000000..da77c7cfc5
--- /dev/null
+++ b/packages/backend-app-api/src/alpha.ts
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ BackendFeature,
+ RootConfigService,
+ coreServices,
+ createServiceFactory,
+} from '@backstage/backend-plugin-api';
+import {
+ featureDiscoveryServiceRef,
+ FeatureDiscoveryService,
+} from '@backstage/backend-plugin-api/alpha';
+import { resolve as resolvePath, dirname } from 'path';
+import fs from 'fs-extra';
+import { BackstagePackageJson } from '@backstage/cli-node';
+
+const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module'];
+
+/** @internal */
+async function findClosestPackageDir(
+ searchDir: string,
+): Promise {
+ let path = searchDir;
+
+ // Some confidence check to avoid infinite loop
+ for (let i = 0; i < 1000; i++) {
+ const packagePath = resolvePath(path, 'package.json');
+ const exists = await fs.pathExists(packagePath);
+ if (exists) {
+ return path;
+ }
+
+ const newPath = dirname(path);
+ if (newPath === path) {
+ return undefined;
+ }
+ path = newPath;
+ }
+
+ throw new Error(
+ `Iteration limit reached when searching for root package.json at ${searchDir}`,
+ );
+}
+
+/** @alpha */
+export class PackageDiscoveryService implements FeatureDiscoveryService {
+ constructor(private readonly config: RootConfigService) {}
+
+ async getBackendFeatures(): Promise<{ features: Array }> {
+ // if (this.config.getOptionalString('backend.packages') !== 'all') {
+ // return { features: [] };
+ // }
+
+ console.log(`DEBUG: executing backend feature discovery`);
+ const packageDir = await findClosestPackageDir(process.argv[1]);
+ if (!packageDir) {
+ throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO');
+ }
+ console.log(`DEBUG: packageDir=`, packageDir);
+ const { dependencies } = require(resolvePath(packageDir, 'package.json'));
+ const dependencyNames = Object.keys(dependencies);
+ console.log(`DEBUG: dependencyNames=`, dependencyNames);
+
+ const features: BackendFeature[] = [];
+
+ for (const name of dependencyNames) {
+ const depPkg = require(`${name}/package.json`) as BackstagePackageJson;
+ if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) {
+ continue;
+ }
+ const depModule = require(name); // @backstage/plugin-catalog-backend
+ console.log(`DEBUG: loaded ${name} depModule=`, depModule);
+ Object.values(depModule).filter(exportValue => {
+ if (
+ exportValue &&
+ typeof exportValue === 'object' &&
+ (exportValue as any).$$type === '@backstage/BackendFeature'
+ ) {
+ features.push(exportValue as BackendFeature);
+ }
+ if (
+ typeof exportValue === 'function' &&
+ (exportValue as any).$$type === '@backstage/BackendFeatureFactory'
+ ) {
+ features.push(exportValue() as BackendFeature);
+ }
+ });
+ }
+
+ console.log(`DEBUG: features=`, features);
+ return { features };
+ }
+}
+
+/** @alpha */
+export const packageFeatureDiscoveryServiceFactory = createServiceFactory({
+ service: featureDiscoveryServiceRef,
+ deps: {
+ config: coreServices.rootConfig,
+ },
+ factory({ config }) {
+ return new PackageDiscoveryService(config);
+ },
+});
diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json
index af4f483db0..f36f90998b 100644
--- a/packages/backend-next/package.json
+++ b/packages/backend-next/package.json
@@ -26,6 +26,7 @@
},
"dependencies": {
"@backstage/backend-defaults": "workspace:^",
+ "@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/plugin-adr-backend": "workspace:^",
"@backstage/plugin-app-backend": "workspace:^",
diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts
index 928c933af0..41584e9a29 100644
--- a/packages/backend-plugin-api/src/wiring/factories.ts
+++ b/packages/backend-plugin-api/src/wiring/factories.ts
@@ -78,6 +78,11 @@ export interface BackendPluginConfig {
register(reg: BackendPluginRegistrationPoints): void;
}
+export const catalogPlugin = createBackendPlugin({
+ pluginId: 'catalog',
+ register() {},
+});
+
/**
* Creates a new backend plugin.
*
@@ -89,7 +94,7 @@ export function createBackendPlugin(
config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig),
): (...params: TOptions) => BackendFeature {
const configCallback = typeof config === 'function' ? config : () => config;
- return (...options: TOptions): InternalBackendFeature => {
+ const factory = (...options: TOptions): InternalBackendFeature => {
const c = configCallback(...options);
let registrations: InternalBackendPluginRegistration[];
@@ -144,6 +149,9 @@ export function createBackendPlugin(
},
};
};
+
+ factory.$$type = '@backstage/BackendFeatureFactory';
+ return factory;
}
/**
diff --git a/yarn.lock b/yarn.lock
index 88a07ef408..07c182f207 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3292,6 +3292,7 @@ __metadata:
"@backstage/backend-test-utils": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/cli-common": "workspace:^"
+ "@backstage/cli-node": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/config-loader": "workspace:^"
"@backstage/errors": "workspace:^"
@@ -25169,6 +25170,7 @@ __metadata:
resolution: "example-backend-next@workspace:packages/backend-next"
dependencies:
"@backstage/backend-defaults": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-tasks": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/plugin-adr-backend": "workspace:^"
From 36a40b4903059537a8e0ef174819c44ef2b886a7 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 1 Aug 2023 20:43:28 +0200
Subject: [PATCH 072/372] define BackendFeatureFactory
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-app-api/src/alpha.ts | 48 ++++++++++++-------
.../src/wiring/factories.ts | 17 ++++---
.../backend-plugin-api/src/wiring/index.ts | 1 +
.../backend-plugin-api/src/wiring/types.ts | 8 ++++
4 files changed, 51 insertions(+), 23 deletions(-)
diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts
index da77c7cfc5..31b61950b9 100644
--- a/packages/backend-app-api/src/alpha.ts
+++ b/packages/backend-app-api/src/alpha.ts
@@ -16,6 +16,7 @@
import {
BackendFeature,
+ BackendFeatureFactory,
RootConfigService,
coreServices,
createServiceFactory,
@@ -71,8 +72,11 @@ export class PackageDiscoveryService implements FeatureDiscoveryService {
throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO');
}
console.log(`DEBUG: packageDir=`, packageDir);
- const { dependencies } = require(resolvePath(packageDir, 'package.json'));
- const dependencyNames = Object.keys(dependencies);
+ const { dependencies } = require(resolvePath(
+ packageDir,
+ 'package.json',
+ )) as BackstagePackageJson;
+ const dependencyNames = Object.keys(dependencies || {});
console.log(`DEBUG: dependencyNames=`, dependencyNames);
const features: BackendFeature[] = [];
@@ -82,23 +86,16 @@ export class PackageDiscoveryService implements FeatureDiscoveryService {
if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) {
continue;
}
- const depModule = require(name); // @backstage/plugin-catalog-backend
+ const depModule = require(name);
console.log(`DEBUG: loaded ${name} depModule=`, depModule);
- Object.values(depModule).filter(exportValue => {
- if (
- exportValue &&
- typeof exportValue === 'object' &&
- (exportValue as any).$$type === '@backstage/BackendFeature'
- ) {
- features.push(exportValue as BackendFeature);
+ for (const exportValue of Object.values(depModule)) {
+ if (isBackendFeature(exportValue)) {
+ features.push(exportValue);
}
- if (
- typeof exportValue === 'function' &&
- (exportValue as any).$$type === '@backstage/BackendFeatureFactory'
- ) {
- features.push(exportValue() as BackendFeature);
+ if (isBackendFeatureFactory(exportValue)) {
+ features.push(exportValue());
}
- });
+ }
}
console.log(`DEBUG: features=`, features);
@@ -116,3 +113,22 @@ export const packageFeatureDiscoveryServiceFactory = createServiceFactory({
return new PackageDiscoveryService(config);
},
});
+
+function isBackendFeature(value: unknown): value is BackendFeature {
+ return (
+ !!value &&
+ typeof value === 'object' &&
+ (value as BackendFeature).$$type === '@backstage/BackendFeature'
+ );
+}
+
+function isBackendFeatureFactory(
+ value: unknown,
+): value is BackendFeatureFactory {
+ return (
+ !!value &&
+ typeof value === 'object' &&
+ (value as BackendFeatureFactory).$$type ===
+ '@backstage/BackendFeatureFactory'
+ );
+}
diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts
index 41584e9a29..ba9238e0e0 100644
--- a/packages/backend-plugin-api/src/wiring/factories.ts
+++ b/packages/backend-plugin-api/src/wiring/factories.ts
@@ -17,11 +17,10 @@
import {
BackendModuleRegistrationPoints,
BackendPluginRegistrationPoints,
- BackendFeature,
ExtensionPoint,
- InternalBackendFeature,
InternalBackendModuleRegistration,
InternalBackendPluginRegistration,
+ BackendFeatureFactory,
} from './types';
/**
@@ -92,9 +91,10 @@ export const catalogPlugin = createBackendPlugin({
*/
export function createBackendPlugin(
config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig),
-): (...params: TOptions) => BackendFeature {
+): BackendFeatureFactory {
const configCallback = typeof config === 'function' ? config : () => config;
- const factory = (...options: TOptions): InternalBackendFeature => {
+
+ const factory: BackendFeatureFactory = (...options) => {
const c = configCallback(...options);
let registrations: InternalBackendPluginRegistration[];
@@ -149,8 +149,8 @@ export function createBackendPlugin(
},
};
};
-
factory.$$type = '@backstage/BackendFeatureFactory';
+
return factory;
}
@@ -184,9 +184,9 @@ export interface BackendModuleConfig {
*/
export function createBackendModule(
config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig),
-): (...params: TOptions) => BackendFeature {
+): BackendFeatureFactory {
const configCallback = typeof config === 'function' ? config : () => config;
- return (...options: TOptions): InternalBackendFeature => {
+ const factory: BackendFeatureFactory = (...options: TOptions) => {
const c = configCallback(...options);
let registrations: InternalBackendModuleRegistration[];
@@ -231,4 +231,7 @@ export function createBackendModule(
},
};
};
+ factory.$$type = '@backstage/BackendFeatureFactory';
+
+ return factory;
}
diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts
index 9cb767b8ac..0b7104374a 100644
--- a/packages/backend-plugin-api/src/wiring/index.ts
+++ b/packages/backend-plugin-api/src/wiring/index.ts
@@ -28,5 +28,6 @@ export type {
BackendModuleRegistrationPoints,
BackendPluginRegistrationPoints,
BackendFeature,
+ BackendFeatureFactory,
ExtensionPoint,
} from './types';
diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts
index c81ee3ceb7..b9b4f3ff10 100644
--- a/packages/backend-plugin-api/src/wiring/types.ts
+++ b/packages/backend-plugin-api/src/wiring/types.ts
@@ -67,6 +67,14 @@ export interface BackendModuleRegistrationPoints {
}): void;
}
+/** @public */
+export interface BackendFeatureFactory<
+ TOptions extends [options?: object] = [],
+> {
+ (...options: TOptions): BackendFeature;
+ $$type: '@backstage/BackendFeatureFactory';
+}
+
/** @public */
export interface BackendFeature {
// NOTE: This type is opaque in order to simplify future API evolution.
From 83ae67710a703a475943b1cce6486c1c75f966dc Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 11:02:53 +0200
Subject: [PATCH 073/372] move feature discovery to alpha
Co-authored-by: Patrik Oldsberg
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-app-api/src/alpha.ts | 119 +---------------
.../alpha/featureDiscoveryServiceFactory.ts | 129 ++++++++++++++++++
packages/backend-app-api/src/alpha/index.ts | 17 +++
3 files changed, 147 insertions(+), 118 deletions(-)
create mode 100644 packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
create mode 100644 packages/backend-app-api/src/alpha/index.ts
diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts
index 31b61950b9..d9068b8f82 100644
--- a/packages/backend-app-api/src/alpha.ts
+++ b/packages/backend-app-api/src/alpha.ts
@@ -14,121 +14,4 @@
* limitations under the License.
*/
-import {
- BackendFeature,
- BackendFeatureFactory,
- RootConfigService,
- coreServices,
- createServiceFactory,
-} from '@backstage/backend-plugin-api';
-import {
- featureDiscoveryServiceRef,
- FeatureDiscoveryService,
-} from '@backstage/backend-plugin-api/alpha';
-import { resolve as resolvePath, dirname } from 'path';
-import fs from 'fs-extra';
-import { BackstagePackageJson } from '@backstage/cli-node';
-
-const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module'];
-
-/** @internal */
-async function findClosestPackageDir(
- searchDir: string,
-): Promise {
- let path = searchDir;
-
- // Some confidence check to avoid infinite loop
- for (let i = 0; i < 1000; i++) {
- const packagePath = resolvePath(path, 'package.json');
- const exists = await fs.pathExists(packagePath);
- if (exists) {
- return path;
- }
-
- const newPath = dirname(path);
- if (newPath === path) {
- return undefined;
- }
- path = newPath;
- }
-
- throw new Error(
- `Iteration limit reached when searching for root package.json at ${searchDir}`,
- );
-}
-
-/** @alpha */
-export class PackageDiscoveryService implements FeatureDiscoveryService {
- constructor(private readonly config: RootConfigService) {}
-
- async getBackendFeatures(): Promise<{ features: Array }> {
- // if (this.config.getOptionalString('backend.packages') !== 'all') {
- // return { features: [] };
- // }
-
- console.log(`DEBUG: executing backend feature discovery`);
- const packageDir = await findClosestPackageDir(process.argv[1]);
- if (!packageDir) {
- throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO');
- }
- console.log(`DEBUG: packageDir=`, packageDir);
- const { dependencies } = require(resolvePath(
- packageDir,
- 'package.json',
- )) as BackstagePackageJson;
- const dependencyNames = Object.keys(dependencies || {});
- console.log(`DEBUG: dependencyNames=`, dependencyNames);
-
- const features: BackendFeature[] = [];
-
- for (const name of dependencyNames) {
- const depPkg = require(`${name}/package.json`) as BackstagePackageJson;
- if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) {
- continue;
- }
- const depModule = require(name);
- console.log(`DEBUG: loaded ${name} depModule=`, depModule);
- for (const exportValue of Object.values(depModule)) {
- if (isBackendFeature(exportValue)) {
- features.push(exportValue);
- }
- if (isBackendFeatureFactory(exportValue)) {
- features.push(exportValue());
- }
- }
- }
-
- console.log(`DEBUG: features=`, features);
- return { features };
- }
-}
-
-/** @alpha */
-export const packageFeatureDiscoveryServiceFactory = createServiceFactory({
- service: featureDiscoveryServiceRef,
- deps: {
- config: coreServices.rootConfig,
- },
- factory({ config }) {
- return new PackageDiscoveryService(config);
- },
-});
-
-function isBackendFeature(value: unknown): value is BackendFeature {
- return (
- !!value &&
- typeof value === 'object' &&
- (value as BackendFeature).$$type === '@backstage/BackendFeature'
- );
-}
-
-function isBackendFeatureFactory(
- value: unknown,
-): value is BackendFeatureFactory {
- return (
- !!value &&
- typeof value === 'object' &&
- (value as BackendFeatureFactory).$$type ===
- '@backstage/BackendFeatureFactory'
- );
-}
+export * from './alpha';
diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
new file mode 100644
index 0000000000..ee1c2aa729
--- /dev/null
+++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ BackendFeature,
+ BackendFeatureFactory,
+ RootConfigService,
+ coreServices,
+ createServiceFactory,
+} from '@backstage/backend-plugin-api';
+import {
+ featureDiscoveryServiceRef,
+ FeatureDiscoveryService,
+} from '@backstage/backend-plugin-api/alpha';
+import { resolve as resolvePath, dirname } from 'path';
+import fs from 'fs-extra';
+import { BackstagePackageJson } from '@backstage/cli-node';
+
+const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module'];
+
+/** @internal */
+async function findClosestPackageDir(
+ searchDir: string,
+): Promise {
+ let path = searchDir;
+
+ // Some confidence check to avoid infinite loop
+ for (let i = 0; i < 1000; i++) {
+ const packagePath = resolvePath(path, 'package.json');
+ const exists = await fs.pathExists(packagePath);
+ if (exists) {
+ return path;
+ }
+
+ const newPath = dirname(path);
+ if (newPath === path) {
+ return undefined;
+ }
+ path = newPath;
+ }
+
+ throw new Error(
+ `Iteration limit reached when searching for root package.json at ${searchDir}`,
+ );
+}
+
+/** @internal */
+class PackageDiscoveryService implements FeatureDiscoveryService {
+ constructor(private readonly config: RootConfigService) {}
+
+ async getBackendFeatures(): Promise<{ features: Array }> {
+ if (this.config.getOptionalString('backend.packages') !== 'all') {
+ return { features: [] };
+ }
+
+ const packageDir = await findClosestPackageDir(process.argv[1]);
+ if (!packageDir) {
+ throw new Error('Package discovery failed to find package.json');
+ }
+ const { dependencies } = require(resolvePath(
+ packageDir,
+ 'package.json',
+ )) as BackstagePackageJson;
+ const dependencyNames = Object.keys(dependencies || {});
+
+ const features: BackendFeature[] = [];
+
+ for (const name of dependencyNames) {
+ const depPkg = require(`${name}/package.json`) as BackstagePackageJson;
+ if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) {
+ continue;
+ }
+ const depModule = require(name);
+ for (const exportValue of Object.values(depModule)) {
+ if (isBackendFeature(exportValue)) {
+ features.push(exportValue);
+ }
+ if (isBackendFeatureFactory(exportValue)) {
+ features.push(exportValue());
+ }
+ }
+ }
+
+ return { features };
+ }
+}
+
+/** @alpha */
+export const featureDiscoveryServiceFactory = createServiceFactory({
+ service: featureDiscoveryServiceRef,
+ deps: {
+ config: coreServices.rootConfig,
+ },
+ factory({ config }) {
+ return new PackageDiscoveryService(config);
+ },
+});
+
+function isBackendFeature(value: unknown): value is BackendFeature {
+ return (
+ !!value &&
+ typeof value === 'object' &&
+ (value as BackendFeature).$$type === '@backstage/BackendFeature'
+ );
+}
+
+function isBackendFeatureFactory(
+ value: unknown,
+): value is BackendFeatureFactory {
+ return (
+ !!value &&
+ typeof value === 'object' &&
+ (value as BackendFeatureFactory).$$type ===
+ '@backstage/BackendFeatureFactory'
+ );
+}
diff --git a/packages/backend-app-api/src/alpha/index.ts b/packages/backend-app-api/src/alpha/index.ts
new file mode 100644
index 0000000000..6afc9e2eb6
--- /dev/null
+++ b/packages/backend-app-api/src/alpha/index.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory';
From 95676ce51aa11d9c861d56b2cfab23506c15b59e Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 13:38:07 +0200
Subject: [PATCH 074/372] add featureDiscoveryServiceFactory test
Co-authored-by: Patrik Oldsberg
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-app-api/package.json | 5 +-
packages/backend-app-api/src/alpha.ts | 17 ---
.../featureDiscoveryServiceFactory.test.ts | 114 ++++++++++++++++++
.../alpha/featureDiscoveryServiceFactory.ts | 8 +-
packages/backend-plugin-api/src/alpha.ts | 5 +-
yarn.lock | 1 +
6 files changed, 127 insertions(+), 23 deletions(-)
delete mode 100644 packages/backend-app-api/src/alpha.ts
create mode 100644 packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index 75890b4370..bc3318fce5 100644
--- a/packages/backend-app-api/package.json
+++ b/packages/backend-app-api/package.json
@@ -12,13 +12,13 @@
},
"exports": {
".": "./src/index.ts",
- "./alpha": "./src/alpha.ts",
+ "./alpha": "./src/alpha/index.ts",
"./package.json": "./package.json"
},
"typesVersions": {
"*": {
"alpha": [
- "src/alpha.ts"
+ "src/alpha/index.ts"
],
"package.json": [
"package.json"
@@ -87,6 +87,7 @@
"@types/node-forge": "^1.3.0",
"@types/stoppable": "^1.1.0",
"http-errors": "^2.0.0",
+ "mock-fs": "^5.2.0",
"supertest": "^6.1.3"
},
"files": [
diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts
deleted file mode 100644
index d9068b8f82..0000000000
--- a/packages/backend-app-api/src/alpha.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2023 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export * from './alpha';
diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts
new file mode 100644
index 0000000000..5a5917dd3b
--- /dev/null
+++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import mockFs from 'mock-fs';
+import { resolve as resolvePath, dirname } from 'path';
+import { startTestBackend, mockServices } from '@backstage/backend-test-utils';
+import { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory';
+import {
+ coreServices,
+ createServiceFactory,
+} from '@backstage/backend-plugin-api';
+
+const rootDir = dirname(process.argv[1]);
+
+describe('featureDiscoveryServiceFactory', () => {
+ beforeEach(() => {
+ mockFs({
+ [rootDir]: {
+ 'package.json': JSON.stringify({
+ name: 'example-app',
+ dependencies: {
+ 'detected-plugin': '0.0.0',
+ 'detected-module': '0.0.0',
+ },
+ }),
+ },
+ [resolvePath(rootDir, 'node_modules/detected-plugin')]: {
+ 'package.json': JSON.stringify({
+ name: 'detected-plugin',
+ main: 'index.js',
+ backstage: {
+ role: 'backend-plugin',
+ },
+ }),
+ 'index.js': `
+ const { createBackendPlugin, coreServices } = require('@backstage/backend-plugin-api');
+ exports.detectedPlugin = createBackendPlugin({
+ pluginId: 'detected',
+ register(env) {
+ env.registerInit({
+ deps: { identity: coreServices.identity },
+ async init({ identity }) {
+ identity.getIdentity('detected-plugin');
+ },
+ });
+ },
+ });
+ `,
+ },
+ [resolvePath(rootDir, 'node_modules/detected-module')]: {
+ 'package.json': JSON.stringify({
+ name: 'detected-module',
+ main: 'index.js',
+ backstage: {
+ role: 'backend-module',
+ },
+ }),
+ 'index.js': `
+ const { createBackendModule, coreServices } = require('@backstage/backend-plugin-api');
+ exports.detectedModuleDerp = createBackendModule({
+ pluginId: 'detected',
+ moduleId: 'derp',
+ register(env) {
+ env.registerInit({
+ deps: { identity: coreServices.identity },
+ async init({ identity }) {
+ identity.getIdentity('detected-module');
+ },
+ });
+ },
+ });
+ `,
+ },
+ });
+ });
+
+ afterEach(() => {
+ mockFs.restore();
+ });
+
+ it('should detect plugin and module packages', async () => {
+ const fn = jest.fn().mockResolvedValue({});
+
+ await startTestBackend({
+ services: [
+ createServiceFactory({
+ service: coreServices.identity,
+ deps: {},
+ factory: () => ({ getIdentity: fn }),
+ }),
+ featureDiscoveryServiceFactory(),
+ mockServices.rootConfig.factory({
+ data: { backend: { packages: 'all' } },
+ }),
+ ],
+ });
+
+ expect(fn).toHaveBeenCalledWith('detected-plugin');
+ expect(fn).toHaveBeenCalledWith('detected-module');
+ });
+});
diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
index ee1c2aa729..7062448eb1 100644
--- a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
+++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
@@ -79,11 +79,13 @@ class PackageDiscoveryService implements FeatureDiscoveryService {
const features: BackendFeature[] = [];
for (const name of dependencyNames) {
- const depPkg = require(`${name}/package.json`) as BackstagePackageJson;
+ const depPkg = require(require.resolve(`${name}/package.json`, {
+ paths: [packageDir],
+ })) as BackstagePackageJson;
if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) {
continue;
}
- const depModule = require(name);
+ const depModule = require(require.resolve(name, { paths: [packageDir] }));
for (const exportValue of Object.values(depModule)) {
if (isBackendFeature(exportValue)) {
features.push(exportValue);
@@ -122,7 +124,7 @@ function isBackendFeatureFactory(
): value is BackendFeatureFactory {
return (
!!value &&
- typeof value === 'object' &&
+ typeof value === 'function' &&
(value as BackendFeatureFactory).$$type ===
'@backstage/BackendFeatureFactory'
);
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
index 6db9b009cf..1030b55d95 100644
--- a/packages/backend-plugin-api/src/alpha.ts
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -22,7 +22,10 @@ export interface FeatureDiscoveryService {
getBackendFeatures(): Promise<{ features: Array }>;
}
-/** @alpha */
+/**
+ * An optional service that can be used to dynamically load in additional BackendFeatures at runtime.
+ * @alpha
+ */
export const featureDiscoveryServiceRef =
createServiceRef({
id: 'core.featureDiscovery',
diff --git a/yarn.lock b/yarn.lock
index 07c182f207..fcdc40a97a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3320,6 +3320,7 @@ __metadata:
logform: ^2.3.2
minimatch: ^5.0.0
minimist: ^1.2.5
+ mock-fs: ^5.2.0
morgan: ^1.10.0
node-forge: ^1.3.1
selfsigned: ^2.0.0
From cc9256a33bcc8f1115a1251dfd621e9f1148ce35 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 13:45:12 +0200
Subject: [PATCH 075/372] changesets
Co-authored-by: Patrik Oldsberg
Signed-off-by: Vincenzo Scamporlino
---
.changeset/rotten-dolls-sing.md | 5 +++++
.changeset/serious-singers-vanish.md | 5 +++++
2 files changed, 10 insertions(+)
create mode 100644 .changeset/rotten-dolls-sing.md
create mode 100644 .changeset/serious-singers-vanish.md
diff --git a/.changeset/rotten-dolls-sing.md b/.changeset/rotten-dolls-sing.md
new file mode 100644
index 0000000000..039b287a77
--- /dev/null
+++ b/.changeset/rotten-dolls-sing.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-plugin-api': patch
+---
+
+Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export.
diff --git a/.changeset/serious-singers-vanish.md b/.changeset/serious-singers-vanish.md
new file mode 100644
index 0000000000..e1f4a754a7
--- /dev/null
+++ b/.changeset/serious-singers-vanish.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-app-api': patch
+---
+
+Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export.
From 97f21bce4731092905b08ec25fbaea9a38be0fb9 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 14:13:58 +0200
Subject: [PATCH 076/372] api report
Signed-off-by: Vincenzo Scamporlino
---
.../backend-plugin-api/alpha-api-report.md | 27 +++++++++++++++++++
packages/backend-plugin-api/api-report.md | 14 ++++++++--
2 files changed, 39 insertions(+), 2 deletions(-)
create mode 100644 packages/backend-plugin-api/alpha-api-report.md
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
new file mode 100644
index 0000000000..84fe2de175
--- /dev/null
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -0,0 +1,27 @@
+## API Report File for "@backstage/backend-plugin-api"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+// @alpha (undocumented)
+export interface FeatureDiscoveryService {
+ // (undocumented)
+ getBackendFeatures(): Promise<{
+ features: Array;
+ }>;
+}
+
+// Warning: (ae-forgotten-export) The symbol "ServiceRef" needs to be exported by the entry point alpha.d.ts
+//
+// @alpha
+export const featureDiscoveryServiceRef: ServiceRef<
+ FeatureDiscoveryService,
+ 'plugin'
+>;
+
+// Warnings were encountered during analysis:
+//
+// src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts
+
+// (No @packageDocumentation comment for this package)
+```
diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md
index a1ae6284c6..a9eba1ba86 100644
--- a/packages/backend-plugin-api/api-report.md
+++ b/packages/backend-plugin-api/api-report.md
@@ -21,6 +21,16 @@ export interface BackendFeature {
$$type: '@backstage/BackendFeature';
}
+// @public (undocumented)
+export interface BackendFeatureFactory<
+ TOptions extends [options?: object] = [],
+> {
+ // (undocumented)
+ $$type: '@backstage/BackendFeatureFactory';
+ // (undocumented)
+ (...options: TOptions): BackendFeature;
+}
+
// @public
export interface BackendModuleConfig {
moduleId: string;
@@ -116,12 +126,12 @@ export namespace coreServices {
// @public
export function createBackendModule(
config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig),
-): (...params: TOptions) => BackendFeature;
+): BackendFeatureFactory;
// @public
export function createBackendPlugin(
config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig),
-): (...params: TOptions) => BackendFeature;
+): BackendFeatureFactory;
// @public
export function createExtensionPoint(
From c9039c79a8e1a41710a9ceba056085eb31c23061 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 14:28:48 +0200
Subject: [PATCH 077/372] update api report
Signed-off-by: Vincenzo Scamporlino
---
plugins/adr-backend/api-report.md | 4 ++--
plugins/airbrake-backend/api-report.md | 4 ++--
plugins/app-backend/alpha-api-report.md | 4 ++--
plugins/azure-devops-backend/api-report.md | 4 ++--
plugins/badges-backend/api-report.md | 4 ++--
plugins/bazaar-backend/api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++++--
.../alpha-api-report.md | 6 ++++--
.../catalog-backend-module-gcp/api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++++--
.../alpha-api-report.md | 18 +++++++++++-------
.../alpha-api-report.md | 6 ++++--
.../alpha-api-report.md | 4 ++--
.../api-report.md | 4 ++--
plugins/catalog-backend/alpha-api-report.md | 4 ++--
plugins/devtools-backend/api-report.md | 4 ++--
plugins/entity-feedback-backend/api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 +++---
.../alpha-api-report.md | 6 +++---
plugins/events-backend/alpha-api-report.md | 4 ++--
.../example-todo-list-backend/api-report.md | 4 ++--
plugins/kafka-backend/api-report.md | 4 ++--
plugins/kubernetes-backend/alpha-api-report.md | 4 ++--
plugins/lighthouse-backend/api-report.md | 4 ++--
plugins/linguist-backend/api-report.md | 6 ++++--
plugins/periskop-backend/api-report.md | 4 ++--
plugins/permission-backend/alpha-api-report.md | 6 +++---
plugins/proxy-backend/api-report.md | 4 ++--
plugins/scaffolder-backend/alpha-api-report.md | 10 +++++-----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 8 ++++----
plugins/search-backend/alpha-api-report.md | 4 ++--
plugins/techdocs-backend/alpha-api-report.md | 4 ++--
plugins/todo-backend/api-report.md | 4 ++--
plugins/user-settings-backend/api-report.md | 4 ++--
46 files changed, 127 insertions(+), 111 deletions(-)
diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md
index 2fd22ef9cd..4092a6eb60 100644
--- a/plugins/adr-backend/api-report.md
+++ b/plugins/adr-backend/api-report.md
@@ -7,7 +7,7 @@
import { AdrDocument } from '@backstage/plugin-adr-common';
import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common';
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { CacheClient } from '@backstage/backend-common';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
@@ -45,7 +45,7 @@ export type AdrParserContext = {
};
// @public
-export const adrPlugin: () => BackendFeature;
+export const adrPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export type AdrRouterOptions = {
diff --git a/plugins/airbrake-backend/api-report.md b/plugins/airbrake-backend/api-report.md
index c410245e31..d3dd706c29 100644
--- a/plugins/airbrake-backend/api-report.md
+++ b/plugins/airbrake-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -14,7 +14,7 @@ export interface AirbrakeConfig {
}
// @public
-export const airbrakePlugin: () => BackendFeature;
+export const airbrakePlugin: BackendFeatureFactory<[]>;
// @public
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/app-backend/alpha-api-report.md b/plugins/app-backend/alpha-api-report.md
index 5fb0546a79..32d8cc3605 100644
--- a/plugins/app-backend/alpha-api-report.md
+++ b/plugins/app-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const appPlugin: () => BackendFeature;
+export const appPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md
index a2a43cd6af..6447f03796 100644
--- a/plugins/azure-devops-backend/api-report.md
+++ b/plugins/azure-devops-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Build } from 'azure-devops-node-api/interfaces/BuildInterfaces';
import { BuildDefinitionReference } from 'azure-devops-node-api/interfaces/BuildInterfaces';
import { BuildRun } from '@backstage/plugin-azure-devops-common';
@@ -96,7 +96,7 @@ export class AzureDevOpsApi {
}
// @public
-export const azureDevOpsPlugin: () => BackendFeature;
+export const azureDevOpsPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md
index 4594228543..30fd1e0752 100644
--- a/plugins/badges-backend/api-report.md
+++ b/plugins/badges-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
@@ -83,7 +83,7 @@ export type BadgeSpec = {
};
// @public
-export const badgesPlugin: () => BackendFeature;
+export const badgesPlugin: BackendFeatureFactory<[]>;
// @public
export interface BadgesStore {
diff --git a/plugins/bazaar-backend/api-report.md b/plugins/bazaar-backend/api-report.md
index 6281530851..d3fe7987a1 100644
--- a/plugins/bazaar-backend/api-report.md
+++ b/plugins/bazaar-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
@@ -11,7 +11,7 @@ import { Logger } from 'winston';
import { PluginDatabaseManager } from '@backstage/backend-common';
// @alpha
-export const bazaarPlugin: () => BackendFeature;
+export const bazaarPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/catalog-backend-module-aws/alpha-api-report.md b/plugins/catalog-backend-module-aws/alpha-api-report.md
index f78f6a802d..6f4fa2c760 100644
--- a/plugins/catalog-backend-module-aws/alpha-api-report.md
+++ b/plugins/catalog-backend-module-aws/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleAwsS3EntityProvider: () => BackendFeature;
+export const catalogModuleAwsS3EntityProvider: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-azure/alpha-api-report.md b/plugins/catalog-backend-module-azure/alpha-api-report.md
index 66551a2856..833eb3dc59 100644
--- a/plugins/catalog-backend-module-azure/alpha-api-report.md
+++ b/plugins/catalog-backend-module-azure/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleAzureDevOpsEntityProvider: () => BackendFeature;
+export const catalogModuleAzureDevOpsEntityProvider: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
index a5d0ffc665..0f76de5552 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -3,10 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleBitbucketCloudEntityProvider: () => BackendFeature;
+export const catalogModuleBitbucketCloudEntityProvider: BackendFeatureFactory<
+ []
+>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
index 2cc53a3c16..2616e92cba 100644
--- a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
@@ -3,10 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleBitbucketServerEntityProvider: () => BackendFeature;
+export const catalogModuleBitbucketServerEntityProvider: BackendFeatureFactory<
+ []
+>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gcp/api-report.md b/plugins/catalog-backend-module-gcp/api-report.md
index 6f963ed51d..489032b830 100644
--- a/plugins/catalog-backend-module-gcp/api-report.md
+++ b/plugins/catalog-backend-module-gcp/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import * as container from '@google-cloud/container';
import { EntityProvider } from '@backstage/plugin-catalog-node';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
import { SchedulerService } from '@backstage/backend-plugin-api';
// @public
-export const catalogModuleGcpGkeEntityProvider: () => BackendFeature;
+export const catalogModuleGcpGkeEntityProvider: BackendFeatureFactory<[]>;
// @public
export class GkeEntityProvider implements EntityProvider {
diff --git a/plugins/catalog-backend-module-gerrit/alpha-api-report.md b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
index 5aee61f28a..b7e00008cf 100644
--- a/plugins/catalog-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleGerritEntityProvider: () => BackendFeature;
+export const catalogModuleGerritEntityProvider: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-github/alpha-api-report.md b/plugins/catalog-backend-module-github/alpha-api-report.md
index 0d4e16b4ea..abc5b4d2a0 100644
--- a/plugins/catalog-backend-module-github/alpha-api-report.md
+++ b/plugins/catalog-backend-module-github/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleGithubEntityProvider: () => BackendFeature;
+export const catalogModuleGithubEntityProvider: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gitlab/alpha-api-report.md b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
index f14b41d6c5..51ebbc4ae2 100644
--- a/plugins/catalog-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
@@ -3,10 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleGitlabDiscoveryEntityProvider: () => BackendFeature;
+export const catalogModuleGitlabDiscoveryEntityProvider: BackendFeatureFactory<
+ []
+>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
index b11ec43cf5..f067a0a6d7 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
@@ -3,17 +3,21 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion';
import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion';
// @alpha
-export const catalogModuleIncrementalIngestionEntityProvider: (options: {
- providers: {
- provider: IncrementalEntityProvider;
- options: IncrementalEntityProviderOptions;
- }[];
-}) => BackendFeature;
+export const catalogModuleIncrementalIngestionEntityProvider: BackendFeatureFactory<
+ [
+ options: {
+ providers: {
+ provider: IncrementalEntityProvider;
+ options: IncrementalEntityProviderOptions;
+ }[];
+ },
+ ]
+>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
index 0fa093a1bc..d8aa5f5816 100644
--- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md
+++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
@@ -3,13 +3,15 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
// @alpha
-export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature;
+export const catalogModuleMicrosoftGraphOrgEntityProvider: BackendFeatureFactory<
+ []
+>;
// @alpha
export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions {
diff --git a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
index 0856fdb836..be38b9fc25 100644
--- a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
+++ b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModulePuppetDbEntityProvider: () => BackendFeature;
+export const catalogModulePuppetDbEntityProvider: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-unprocessed/api-report.md b/plugins/catalog-backend-module-unprocessed/api-report.md
index 7fd7119276..6f52fdd967 100644
--- a/plugins/catalog-backend-module-unprocessed/api-report.md
+++ b/plugins/catalog-backend-module-unprocessed/api-report.md
@@ -3,12 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { HttpRouterService } from '@backstage/backend-plugin-api';
import { Knex } from 'knex';
// @public
-export const catalogModuleUnprocessedEntities: () => BackendFeature;
+export const catalogModuleUnprocessedEntities: BackendFeatureFactory<[]>;
// @public
export class UnprocessedEntitiesModule {
diff --git a/plugins/catalog-backend/alpha-api-report.md b/plugins/catalog-backend/alpha-api-report.md
index df3e809ade..57a10cbeda 100644
--- a/plugins/catalog-backend/alpha-api-report.md
+++ b/plugins/catalog-backend/alpha-api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common';
import { Conditions } from '@backstage/plugin-permission-node';
import { Entity } from '@backstage/catalog-model';
@@ -74,7 +74,7 @@ export type CatalogPermissionRule<
> = PermissionRule;
// @alpha
-export const catalogPlugin: () => BackendFeature;
+export const catalogPlugin: BackendFeatureFactory<[]>;
// @alpha
export const createCatalogConditionalDecision: (
diff --git a/plugins/devtools-backend/api-report.md b/plugins/devtools-backend/api-report.md
index dc51fc8387..dd356951f4 100644
--- a/plugins/devtools-backend/api-report.md
+++ b/plugins/devtools-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { ConfigInfo } from '@backstage/plugin-devtools-common';
import { DevToolsInfo } from '@backstage/plugin-devtools-common';
@@ -27,7 +27,7 @@ export class DevToolsBackendApi {
}
// @public
-export const devtoolsPlugin: () => BackendFeature;
+export const devtoolsPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/entity-feedback-backend/api-report.md b/plugins/entity-feedback-backend/api-report.md
index 3e8f90220e..fddce48592 100644
--- a/plugins/entity-feedback-backend/api-report.md
+++ b/plugins/entity-feedback-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { Logger } from 'winston';
@@ -14,7 +14,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common';
export function createRouter(options: RouterOptions): Promise;
// @public
-export const entityFeedbackPlugin: () => BackendFeature;
+export const entityFeedbackPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/events-backend-module-aws-sqs/alpha-api-report.md b/plugins/events-backend-module-aws-sqs/alpha-api-report.md
index e48515a414..8f81ff00d1 100644
--- a/plugins/events-backend-module-aws-sqs/alpha-api-report.md
+++ b/plugins/events-backend-module-aws-sqs/alpha-api-report.md
@@ -3,10 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleAwsSqsConsumingEventPublisher: () => BackendFeature;
+export const eventsModuleAwsSqsConsumingEventPublisher: BackendFeatureFactory<
+ []
+>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-azure/alpha-api-report.md b/plugins/events-backend-module-azure/alpha-api-report.md
index 1bd568d1df..680c609c10 100644
--- a/plugins/events-backend-module-azure/alpha-api-report.md
+++ b/plugins/events-backend-module-azure/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature;
+export const eventsModuleAzureDevOpsEventRouter: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
index 5e63ae36c8..52b2cac142 100644
--- a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature;
+export const eventsModuleBitbucketCloudEventRouter: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gerrit/alpha-api-report.md b/plugins/events-backend-module-gerrit/alpha-api-report.md
index d1be54730f..82588d05ac 100644
--- a/plugins/events-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/events-backend-module-gerrit/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGerritEventRouter: () => BackendFeature;
+export const eventsModuleGerritEventRouter: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-github/alpha-api-report.md b/plugins/events-backend-module-github/alpha-api-report.md
index c233df8634..21bfdbb9d2 100644
--- a/plugins/events-backend-module-github/alpha-api-report.md
+++ b/plugins/events-backend-module-github/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGithubEventRouter: () => BackendFeature;
+export const eventsModuleGithubEventRouter: BackendFeatureFactory<[]>;
// @alpha
-export const eventsModuleGithubWebhook: () => BackendFeature;
+export const eventsModuleGithubWebhook: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gitlab/alpha-api-report.md b/plugins/events-backend-module-gitlab/alpha-api-report.md
index bf61f66a4b..bca947c195 100644
--- a/plugins/events-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/events-backend-module-gitlab/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGitlabEventRouter: () => BackendFeature;
+export const eventsModuleGitlabEventRouter: BackendFeatureFactory<[]>;
// @alpha
-export const eventsModuleGitlabWebhook: () => BackendFeature;
+export const eventsModuleGitlabWebhook: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend/alpha-api-report.md b/plugins/events-backend/alpha-api-report.md
index 3e32f769c1..72d4bce4b2 100644
--- a/plugins/events-backend/alpha-api-report.md
+++ b/plugins/events-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsPlugin: () => BackendFeature;
+export const eventsPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/example-todo-list-backend/api-report.md b/plugins/example-todo-list-backend/api-report.md
index 319fbbf226..80b86c4e4d 100644
--- a/plugins/example-todo-list-backend/api-report.md
+++ b/plugins/example-todo-list-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const exampleTodoListPlugin: () => BackendFeature;
+export const exampleTodoListPlugin: BackendFeatureFactory<[]>;
// @public
export interface RouterOptions {
diff --git a/plugins/kafka-backend/api-report.md b/plugins/kafka-backend/api-report.md
index a748a543d9..176c961cd4 100644
--- a/plugins/kafka-backend/api-report.md
+++ b/plugins/kafka-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const kafkaPlugin: () => BackendFeature;
+export const kafkaPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/kubernetes-backend/alpha-api-report.md b/plugins/kubernetes-backend/alpha-api-report.md
index f95c1414f3..77a300d344 100644
--- a/plugins/kubernetes-backend/alpha-api-report.md
+++ b/plugins/kubernetes-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const kubernetesPlugin: () => BackendFeature;
+export const kubernetesPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/lighthouse-backend/api-report.md b/plugins/lighthouse-backend/api-report.md
index 5d9d948cf4..f504ce70c9 100644
--- a/plugins/lighthouse-backend/api-report.md
+++ b/plugins/lighthouse-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Logger } from 'winston';
@@ -30,7 +30,7 @@ export function createScheduler(
): Promise;
// @public
-export const lighthousePlugin: () => BackendFeature;
+export const lighthousePlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md
index aac978e426..995b54da62 100644
--- a/plugins/linguist-backend/api-report.md
+++ b/plugins/linguist-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { CatalogProcessor } from '@backstage/plugin-catalog-node';
import { CatalogProcessorCache } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
@@ -36,7 +36,9 @@ export interface LinguistBackendApi {
}
// @public
-export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature;
+export const linguistPlugin: BackendFeatureFactory<
+ [options: LinguistPluginOptions]
+>;
// @public
export interface LinguistPluginOptions {
diff --git a/plugins/periskop-backend/api-report.md b/plugins/periskop-backend/api-report.md
index 7906bc4785..e548a70a75 100644
--- a/plugins/periskop-backend/api-report.md
+++ b/plugins/periskop-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const periskopPlugin: () => BackendFeature;
+export const periskopPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md
index 926691930b..5068992c71 100644
--- a/plugins/permission-backend/alpha-api-report.md
+++ b/plugins/permission-backend/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const permissionModuleAllowAllPolicy: () => BackendFeature;
+export const permissionModuleAllowAllPolicy: BackendFeatureFactory<[]>;
// @alpha
-export const permissionPlugin: () => BackendFeature;
+export const permissionPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/proxy-backend/api-report.md b/plugins/proxy-backend/api-report.md
index 9c5cf5f9ef..7960c9658c 100644
--- a/plugins/proxy-backend/api-report.md
+++ b/plugins/proxy-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -13,7 +13,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const proxyPlugin: () => BackendFeature;
+export const proxyPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md
index 363fcafd17..f4174697b2 100644
--- a/plugins/scaffolder-backend/alpha-api-report.md
+++ b/plugins/scaffolder-backend/alpha-api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common';
import { Conditions } from '@backstage/plugin-permission-node';
import { JsonObject } from '@backstage/types';
@@ -20,7 +20,7 @@ import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend';
import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common';
// @alpha
-export const catalogModuleTemplateKind: () => BackendFeature;
+export const catalogModuleTemplateKind: BackendFeatureFactory<[]>;
// @alpha (undocumented)
export const createScaffolderActionConditionalDecision: (
@@ -90,9 +90,9 @@ export const scaffolderActionConditions: Conditions<{
}>;
// @alpha
-export const scaffolderPlugin: (
- options?: ScaffolderPluginOptions | undefined,
-) => BackendFeature;
+export const scaffolderPlugin: BackendFeatureFactory<
+ [options?: ScaffolderPluginOptions | undefined]
+>;
// @alpha
export type ScaffolderPluginOptions = {
diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md
index 7c6e91b6a1..02a2ea2266 100644
--- a/plugins/search-backend-module-catalog/alpha-api-report.md
+++ b/plugins/search-backend-module-catalog/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
// @alpha
-export const searchModuleCatalogCollator: (
- options?: SearchModuleCatalogCollatorOptions | undefined,
-) => BackendFeature;
+export const searchModuleCatalogCollator: BackendFeatureFactory<
+ [options?: SearchModuleCatalogCollatorOptions | undefined]
+>;
// @alpha
export type SearchModuleCatalogCollatorOptions = Omit<
diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md
index 91007c20de..254771b484 100644
--- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md
+++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { ElasticSearchCustomIndexTemplate } from '@backstage/plugin-search-backend-module-elasticsearch';
import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch';
// @alpha
-export const searchModuleElasticsearchEngine: (
- options?: SearchModuleElasticsearchEngineOptions | undefined,
-) => BackendFeature;
+export const searchModuleElasticsearchEngine: BackendFeatureFactory<
+ [options?: SearchModuleElasticsearchEngineOptions | undefined]
+>;
// @alpha
export type SearchModuleElasticsearchEngineOptions = {
diff --git a/plugins/search-backend-module-explore/alpha-api-report.md b/plugins/search-backend-module-explore/alpha-api-report.md
index 7b0f2658d6..f8053601b3 100644
--- a/plugins/search-backend-module-explore/alpha-api-report.md
+++ b/plugins/search-backend-module-explore/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
// @alpha
-export const searchModuleExploreCollator: (
- options?: SearchModuleExploreCollatorOptions | undefined,
-) => BackendFeature;
+export const searchModuleExploreCollator: BackendFeatureFactory<
+ [options?: SearchModuleExploreCollatorOptions | undefined]
+>;
// @alpha
export type SearchModuleExploreCollatorOptions = {
diff --git a/plugins/search-backend-module-pg/alpha-api-report.md b/plugins/search-backend-module-pg/alpha-api-report.md
index eaee78e944..d41010a594 100644
--- a/plugins/search-backend-module-pg/alpha-api-report.md
+++ b/plugins/search-backend-module-pg/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const searchModulePostgresEngine: () => BackendFeature;
+export const searchModulePostgresEngine: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/search-backend-module-techdocs/alpha-api-report.md b/plugins/search-backend-module-techdocs/alpha-api-report.md
index 0eac010b4c..4f7515dac5 100644
--- a/plugins/search-backend-module-techdocs/alpha-api-report.md
+++ b/plugins/search-backend-module-techdocs/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { TechDocsCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-techdocs';
// @alpha
-export const searchModuleTechDocsCollator: (
- options?: SearchModuleTechDocsCollatorOptions | undefined,
-) => BackendFeature;
+export const searchModuleTechDocsCollator: BackendFeatureFactory<
+ [options?: SearchModuleTechDocsCollatorOptions | undefined]
+>;
// @alpha
export type SearchModuleTechDocsCollatorOptions = Omit<
diff --git a/plugins/search-backend/alpha-api-report.md b/plugins/search-backend/alpha-api-report.md
index 6ee94a0e29..9d620efe0e 100644
--- a/plugins/search-backend/alpha-api-report.md
+++ b/plugins/search-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const searchPlugin: () => BackendFeature;
+export const searchPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md
index 16db84c216..6de1a7d209 100644
--- a/plugins/techdocs-backend/alpha-api-report.md
+++ b/plugins/techdocs-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
// @alpha
-export const techdocsPlugin: () => BackendFeature;
+export const techdocsPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/todo-backend/api-report.md b/plugins/todo-backend/api-report.md
index 6db1e012e9..a3703eaaab 100644
--- a/plugins/todo-backend/api-report.md
+++ b/plugins/todo-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { CompoundEntityRef } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
@@ -91,7 +91,7 @@ export type TodoParserResult = {
};
// @public
-export const todoPlugin: () => BackendFeature;
+export const todoPlugin: BackendFeatureFactory<[]>;
// @public (undocumented)
export interface TodoReader {
diff --git a/plugins/user-settings-backend/api-report.md b/plugins/user-settings-backend/api-report.md
index b015915723..32722bbf2d 100644
--- a/plugins/user-settings-backend/api-report.md
+++ b/plugins/user-settings-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeature } from '@backstage/backend-plugin-api';
+import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { PluginDatabaseManager } from '@backstage/backend-common';
@@ -20,7 +20,7 @@ export interface RouterOptions {
}
// @alpha
-export const userSettingsPlugin: () => BackendFeature;
+export const userSettingsPlugin: BackendFeatureFactory<[]>;
// (No @packageDocumentation comment for this package)
```
From 9f88cb0ebd1d037cac6223ad23e6933cd25bf4fe Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 22:37:28 +0200
Subject: [PATCH 078/372] backend-app-api: improve naming
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-app-api/src/wiring/BackendInitializer.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts
index cf140158a6..6bc4e995e2 100644
--- a/packages/backend-app-api/src/wiring/BackendInitializer.ts
+++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts
@@ -141,8 +141,8 @@ export class BackendInitializer {
if (featureDiscovery) {
const { features } = await featureDiscovery.getBackendFeatures();
- for (const plugin of features) {
- this.#addFeature(plugin);
+ for (const feature of features) {
+ this.#addFeature(feature);
}
}
From 6246562ab473bd14a9119e09b298eb6c14e97703 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 22:38:53 +0200
Subject: [PATCH 079/372] backend-plugin-api: fix scope
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-plugin-api/alpha-api-report.md | 16 +++++++++++++---
packages/backend-plugin-api/src/alpha.ts | 4 ++++
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
index 84fe2de175..74616a5138 100644
--- a/packages/backend-plugin-api/alpha-api-report.md
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -11,14 +11,24 @@ export interface FeatureDiscoveryService {
}>;
}
-// Warning: (ae-forgotten-export) The symbol "ServiceRef" needs to be exported by the entry point alpha.d.ts
-//
// @alpha
export const featureDiscoveryServiceRef: ServiceRef<
FeatureDiscoveryService,
- 'plugin'
+ 'root'
>;
+// @public
+export type ServiceRef<
+ TService,
+ TScope extends 'root' | 'plugin' = 'root' | 'plugin',
+> = {
+ id: string;
+ scope: TScope;
+ T: TService;
+ toString(): string;
+ $$type: '@backstage/ServiceRef';
+};
+
// Warnings were encountered during analysis:
//
// src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
index 1030b55d95..bd6be5b75e 100644
--- a/packages/backend-plugin-api/src/alpha.ts
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -29,4 +29,8 @@ export interface FeatureDiscoveryService {
export const featureDiscoveryServiceRef =
createServiceRef({
id: 'core.featureDiscovery',
+ scope: 'root',
});
+
+export type { ServiceRef } from './services';
+export type { BackendFeature };
From 5726b01e4d9a47b8f11638b24a9d7931c8962435 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Wed, 2 Aug 2023 22:39:52 +0200
Subject: [PATCH 080/372] backend-plugin-api: unused object
Signed-off-by: Vincenzo Scamporlino
---
packages/backend-plugin-api/src/wiring/factories.ts | 5 -----
1 file changed, 5 deletions(-)
diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts
index ba9238e0e0..cbc3771b86 100644
--- a/packages/backend-plugin-api/src/wiring/factories.ts
+++ b/packages/backend-plugin-api/src/wiring/factories.ts
@@ -77,11 +77,6 @@ export interface BackendPluginConfig {
register(reg: BackendPluginRegistrationPoints): void;
}
-export const catalogPlugin = createBackendPlugin({
- pluginId: 'catalog',
- register() {},
-});
-
/**
* Creates a new backend plugin.
*
From 35ccc2365a0756fc7ef100c5d003b3943135590d Mon Sep 17 00:00:00 2001
From: Philipp Hugenroth
Date: Mon, 7 Aug 2023 15:08:48 +0200
Subject: [PATCH 081/372] Fix backend-plugin-api alpha api report
Signed-off-by: Philipp Hugenroth
---
packages/backend-app-api/alpha-api-report.md | 16 ++++++++++++++++
packages/backend-app-api/package.json | 4 ++--
.../src/{alpha/index.ts => alpha.ts} | 2 +-
packages/backend-plugin-api/alpha-api-report.md | 10 ++++++----
4 files changed, 25 insertions(+), 7 deletions(-)
create mode 100644 packages/backend-app-api/alpha-api-report.md
rename packages/backend-app-api/src/{alpha/index.ts => alpha.ts} (87%)
diff --git a/packages/backend-app-api/alpha-api-report.md b/packages/backend-app-api/alpha-api-report.md
new file mode 100644
index 0000000000..488feedf2c
--- /dev/null
+++ b/packages/backend-app-api/alpha-api-report.md
@@ -0,0 +1,16 @@
+## API Report File for "@backstage/backend-app-api"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+import { FeatureDiscoveryService } from '@backstage/backend-plugin-api/alpha';
+import { ServiceFactory } from '@backstage/backend-plugin-api';
+
+// @alpha (undocumented)
+export const featureDiscoveryServiceFactory: () => ServiceFactory<
+ FeatureDiscoveryService,
+ 'root'
+>;
+
+// (No @packageDocumentation comment for this package)
+```
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index bc3318fce5..d1f3f8ac43 100644
--- a/packages/backend-app-api/package.json
+++ b/packages/backend-app-api/package.json
@@ -12,13 +12,13 @@
},
"exports": {
".": "./src/index.ts",
- "./alpha": "./src/alpha/index.ts",
+ "./alpha": "./src/alpha.ts",
"./package.json": "./package.json"
},
"typesVersions": {
"*": {
"alpha": [
- "src/alpha/index.ts"
+ "src/alpha.ts"
],
"package.json": [
"package.json"
diff --git a/packages/backend-app-api/src/alpha/index.ts b/packages/backend-app-api/src/alpha.ts
similarity index 87%
rename from packages/backend-app-api/src/alpha/index.ts
rename to packages/backend-app-api/src/alpha.ts
index 6afc9e2eb6..a334214738 100644
--- a/packages/backend-app-api/src/alpha/index.ts
+++ b/packages/backend-app-api/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory';
+export { featureDiscoveryServiceFactory } from './alpha/featureDiscoveryServiceFactory';
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
index 74616a5138..d76d7e4deb 100644
--- a/packages/backend-plugin-api/alpha-api-report.md
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -3,6 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
+// @public (undocumented)
+export interface BackendFeature {
+ // (undocumented)
+ $$type: '@backstage/BackendFeature';
+}
+
// @alpha (undocumented)
export interface FeatureDiscoveryService {
// (undocumented)
@@ -29,9 +35,5 @@ export type ServiceRef<
$$type: '@backstage/ServiceRef';
};
-// Warnings were encountered during analysis:
-//
-// src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts
-
// (No @packageDocumentation comment for this package)
```
From 5cc0ac5ef3d152b027df7bcfd1737fabee365be7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?=
Date: Mon, 7 Aug 2023 15:33:32 +0200
Subject: [PATCH 082/372] bump concurrently
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fredrik Adelöw
---
.changeset/eighty-cycles-ring.md | 5 ++
package.json | 2 +-
.../templates/default-app/package.json.hbs | 2 +-
yarn.lock | 86 ++++++++++++-------
4 files changed, 61 insertions(+), 34 deletions(-)
create mode 100644 .changeset/eighty-cycles-ring.md
diff --git a/.changeset/eighty-cycles-ring.md b/.changeset/eighty-cycles-ring.md
new file mode 100644
index 0000000000..dae404a3ff
--- /dev/null
+++ b/.changeset/eighty-cycles-ring.md
@@ -0,0 +1,5 @@
+---
+'@backstage/create-app': patch
+---
+
+Bump to a newer version of the `concurrently` library
diff --git a/package.json b/package.json
index abaaec252c..d5b74285e2 100644
--- a/package.json
+++ b/package.json
@@ -65,7 +65,7 @@
"@types/node": "^16.11.26",
"@types/webpack": "^5.28.0",
"command-exists": "^1.2.9",
- "concurrently": "^7.0.0",
+ "concurrently": "^8.0.0",
"cross-env": "^7.0.0",
"e2e-test": "workspace:*",
"eslint": "^8.6.0",
diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs
index 0682114a35..c53ed6970f 100644
--- a/packages/create-app/templates/default-app/package.json.hbs
+++ b/packages/create-app/templates/default-app/package.json.hbs
@@ -31,7 +31,7 @@
"devDependencies": {
"@backstage/cli": "^{{version '@backstage/cli'}}",
"@spotify/prettier-config": "^12.0.0",
- "concurrently": "^6.0.0",
+ "concurrently": "^8.0.0",
"lerna": "^4.0.0",
"node-gyp": "^9.0.0",
"prettier": "^2.3.2",
diff --git a/yarn.lock b/yarn.lock
index 0fcea0a990..581e705dd4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -21333,6 +21333,17 @@ __metadata:
languageName: node
linkType: hard
+"cliui@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "cliui@npm:8.0.1"
+ dependencies:
+ string-width: ^4.2.0
+ strip-ansi: ^6.0.1
+ wrap-ansi: ^7.0.0
+ checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56
+ languageName: node
+ linkType: hard
+
"clone-buffer@npm:^1.0.0":
version: 1.0.0
resolution: "clone-buffer@npm:1.0.0"
@@ -21889,23 +21900,23 @@ __metadata:
languageName: node
linkType: hard
-"concurrently@npm:^7.0.0":
- version: 7.6.0
- resolution: "concurrently@npm:7.6.0"
+"concurrently@npm:^8.0.0":
+ version: 8.2.0
+ resolution: "concurrently@npm:8.2.0"
dependencies:
- chalk: ^4.1.0
- date-fns: ^2.29.1
+ chalk: ^4.1.2
+ date-fns: ^2.30.0
lodash: ^4.17.21
- rxjs: ^7.0.0
- shell-quote: ^1.7.3
- spawn-command: ^0.0.2-1
- supports-color: ^8.1.0
+ rxjs: ^7.8.1
+ shell-quote: ^1.8.1
+ spawn-command: 0.0.2
+ supports-color: ^8.1.1
tree-kill: ^1.2.2
- yargs: ^17.3.1
+ yargs: ^17.7.2
bin:
conc: dist/bin/concurrently.js
concurrently: dist/bin/concurrently.js
- checksum: f705c9a7960f1b16559ca64958043faeeef6385c0bf30a03d1375e15ab2d96dba4f8166f1bbbb1c85e8da35ca0ce3c353875d71dff2aa132b2357bb533b3332e
+ checksum: eafe6a4d9b7fda87f55ea285cfc6acd937a5286ceec8991ab48e6cc27c45fce6a5c6f45e18d7555defa15dc7d7e8941bc5a9d1ceaf182e31441d420e00333434
languageName: node
linkType: hard
@@ -22948,10 +22959,12 @@ __metadata:
languageName: node
linkType: hard
-"date-fns@npm:^2.16.1, date-fns@npm:^2.18.0, date-fns@npm:^2.29.1":
- version: 2.29.3
- resolution: "date-fns@npm:2.29.3"
- checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484
+"date-fns@npm:^2.16.1, date-fns@npm:^2.18.0, date-fns@npm:^2.30.0":
+ version: 2.30.0
+ resolution: "date-fns@npm:2.30.0"
+ dependencies:
+ "@babel/runtime": ^7.21.0
+ checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4
languageName: node
linkType: hard
@@ -38158,7 +38171,7 @@ __metadata:
"@types/node": ^16.11.26
"@types/webpack": ^5.28.0
command-exists: ^1.2.9
- concurrently: ^7.0.0
+ concurrently: ^8.0.0
cross-env: ^7.0.0
e2e-test: "workspace:*"
eslint: ^8.6.0
@@ -38242,7 +38255,7 @@ __metadata:
languageName: node
linkType: hard
-"rxjs@npm:7.8.0, rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0":
+"rxjs@npm:7.8.0":
version: 7.8.0
resolution: "rxjs@npm:7.8.0"
dependencies:
@@ -38260,6 +38273,15 @@ __metadata:
languageName: node
linkType: hard
+"rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0, rxjs@npm:^7.8.1":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: ^2.1.0
+ checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119
+ languageName: node
+ linkType: hard
+
"sade@npm:^1.7.3":
version: 1.8.1
resolution: "sade@npm:1.8.1"
@@ -38771,10 +38793,10 @@ __metadata:
languageName: node
linkType: hard
-"shell-quote@npm:^1.7.3":
- version: 1.7.3
- resolution: "shell-quote@npm:1.7.3"
- checksum: aca58e73a3a5d933d02e0bdddedc53ee14f7c2ec264f97ac915b9d4482d077a38e422aa664631d60a672cd3cdb4054eb2e6c0303f54882453dacb6483e482d34
+"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1":
+ version: 1.8.1
+ resolution: "shell-quote@npm:1.8.1"
+ checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b
languageName: node
linkType: hard
@@ -39160,10 +39182,10 @@ __metadata:
languageName: node
linkType: hard
-"spawn-command@npm:^0.0.2-1":
- version: 0.0.2-1
- resolution: "spawn-command@npm:0.0.2-1"
- checksum: 2cac8519332193d1ed37d57298c4a1f73095e9edd20440fbab4aa47f531da83831734f2b51c44bb42b2747bf3485dec3fa2b0a1003f74c67561f2636622e328b
+"spawn-command@npm:0.0.2, spawn-command@npm:^0.0.2-1":
+ version: 0.0.2
+ resolution: "spawn-command@npm:0.0.2"
+ checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b
languageName: node
linkType: hard
@@ -42864,7 +42886,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^21.0.0":
+"yargs-parser@npm:^21.1.1":
version: 21.1.1
resolution: "yargs-parser@npm:21.1.1"
checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c
@@ -42915,18 +42937,18 @@ __metadata:
languageName: node
linkType: hard
-"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1":
- version: 17.5.1
- resolution: "yargs@npm:17.5.1"
+"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1, yargs@npm:^17.7.2":
+ version: 17.7.2
+ resolution: "yargs@npm:17.7.2"
dependencies:
- cliui: ^7.0.2
+ cliui: ^8.0.1
escalade: ^3.1.1
get-caller-file: ^2.0.5
require-directory: ^2.1.1
string-width: ^4.2.3
y18n: ^5.0.5
- yargs-parser: ^21.0.0
- checksum: 00d58a2c052937fa044834313f07910fd0a115dec5ee35919e857eeee3736b21a4eafa8264535800ba8bac312991ce785ecb8a51f4d2cc8c4676d865af1cfbde
+ yargs-parser: ^21.1.1
+ checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a
languageName: node
linkType: hard
From b8f5c9a97367f0184f272ae6632824eba4fab852 Mon Sep 17 00:00:00 2001
From: Judy Bogart <31899326+jbogarthyde@users.noreply.github.com>
Date: Mon, 7 Aug 2023 09:10:42 -0700
Subject: [PATCH 083/372] Update glossary.md
Copy edit and more explicit identification of user types.
Note this page needs more terms and categories of terms.
Signed-off-by: Judy Bogart <31899326+jbogarthyde@users.noreply.github.com>
---
docs/overview/glossary.md | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md
index 97a2823365..d409fcf915 100644
--- a/docs/overview/glossary.md
+++ b/docs/overview/glossary.md
@@ -2,25 +2,26 @@
id: glossary
title: Backstage Glossary
# prettier-ignore
-description: List of all the terms, abbreviations, and phrases used in Backstage, together with their explanations.
+description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations.
---
-The Backstage Glossary lists all the terms, abbreviations, and phrases used in
+The Backstage Glossary lists terms, abbreviations, and phrases used in
Backstage, together with their explanations. We encourage you to use the
terminology below for clarity and consistency when discussing Backstage.
-### Authentication Glossary
-
-This [page](../auth/glossary.md) directs to the terms and phrases related to
-authentication and identity section of Backstage.
+See also [Authentication Glossary] (../auth/glossary.md), a separate glossary of terms and phrases
+specifically related to the authentication and identity section of Backstage.
### Backstage User Profiles
There are three main user profiles for Backstage: the integrator, the
-contributor, and the software engineer.
+contributor, and the end user (typically a software engineer).
| Term | Explanation |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. |
| Contributor | The **contributor** adds functionality to the app by writing plugins. |
-| Software Engineer | The **software engineer** uses the app's functionality and interacts with its plugins. In practice, this profile covers the various roles that help deliver software, from the Software Engineer themselves, to Designers, Data Scientists, Product Owners, Engineering Managers, etc. |
+| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves *designers*, *data scientists*, *product owners*, *engineering managers*, *technical writers*, and so on. |
+| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or *technical editor*. |
+| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. |
+
From c4126fc789ed994a93740ec18d655164cc6fd50d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 7 Aug 2023 16:25:08 +0000
Subject: [PATCH 084/372] fix(deps): update dependency
@roadiehq/backstage-plugin-github-pull-requests to v2.5.14
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 121ed2eb9a..b3888cb697 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3539,7 +3539,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.4.0, @backstage/catalog-model@^1.4.1, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
+"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.4.1, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
version: 0.0.0-use.local
resolution: "@backstage/catalog-model@workspace:packages/catalog-model"
dependencies:
@@ -3883,7 +3883,7 @@ __metadata:
languageName: node
linkType: hard
-"@backstage/core-components@npm:^0.13.2, @backstage/core-components@npm:^0.13.3":
+"@backstage/core-components@npm:^0.13.3":
version: 0.13.3
resolution: "@backstage/core-components@npm:0.13.3"
dependencies:
@@ -4010,7 +4010,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.5.0, @backstage/core-plugin-api@^1.5.2, @backstage/core-plugin-api@^1.5.3, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api":
+"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.5.0, @backstage/core-plugin-api@^1.5.3, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api":
version: 0.0.0-use.local
resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api"
dependencies:
@@ -5553,7 +5553,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.7.0, @backstage/plugin-catalog-react@npm:^1.8.0":
+"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.8.0":
version: 1.8.0
resolution: "@backstage/plugin-catalog-react@npm:1.8.0"
dependencies:
@@ -7020,7 +7020,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-home@npm:^0.5.3":
+"@backstage/plugin-home@npm:^0.5.4":
version: 0.5.4
resolution: "@backstage/plugin-home@npm:0.5.4"
dependencies:
@@ -14351,14 +14351,14 @@ __metadata:
linkType: hard
"@roadiehq/backstage-plugin-github-pull-requests@npm:^2.2.7":
- version: 2.5.13
- resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.13"
+ version: 2.5.14
+ resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.14"
dependencies:
- "@backstage/catalog-model": ^1.4.0
- "@backstage/core-components": ^0.13.2
- "@backstage/core-plugin-api": ^1.5.2
- "@backstage/plugin-catalog-react": ^1.7.0
- "@backstage/plugin-home": ^0.5.3
+ "@backstage/catalog-model": ^1.4.1
+ "@backstage/core-components": ^0.13.3
+ "@backstage/core-plugin-api": ^1.5.3
+ "@backstage/plugin-catalog-react": ^1.8.0
+ "@backstage/plugin-home": ^0.5.4
"@material-ui/core": ^4.11.0
"@material-ui/icons": ^4.9.1
"@material-ui/lab": ^4.0.0-alpha.60
@@ -14375,7 +14375,7 @@ __metadata:
react: ^16.13.1 || ^17.0.0
react-dom: ^16.13.1 || ^17.0.0
react-router: 6.0.0-beta.0 || ^6.3.0
- checksum: 1af9997d26ee9dba046d71aa5415bde7e207c4118ca77e6e3e9623920ce7f6e314d8365fe2d1ef3eb1c279ac113653df903f1286005aba681faf75381a387189
+ checksum: 6a51fa45c716c0313baedfb5e67a898b1cd0b02b7742473c46e7f6dc9742c88db950da110de7aa0ad2019fb2ed855ae5b9c567d5348ad31a3340ac49c77e1b11
languageName: node
linkType: hard
From 671ab1dff264aa1cb93bfd0bcc095dbe3fd5325b Mon Sep 17 00:00:00 2001
From: Adam Harvey
Date: Mon, 7 Aug 2023 13:25:00 -0400
Subject: [PATCH 085/372] chore: Patch to some of the latest actions
Signed-off-by: Adam Harvey
---
.github/workflows/scorecard.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 63c44bcf20..85c4b70724 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -29,12 +29,12 @@ jobs:
steps:
- name: 'Checkout code'
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
persist-credentials: false
- name: 'Run analysis'
- uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
+ uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0
with:
results_file: results.sarif
results_format: sarif
@@ -53,7 +53,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: 'Upload artifact'
- uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
+ uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: SARIF file
path: results.sarif
From 5c512baac569ac764eaf316f24781d1a1bdaa79f Mon Sep 17 00:00:00 2001
From: dphuang2
Date: Mon, 7 Aug 2023 12:18:02 -0700
Subject: [PATCH 086/372] Create api-sdk-generator.yaml
Signed-off-by: dphuang2
---
microsite/data/plugins/api-sdk-generator.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 microsite/data/plugins/api-sdk-generator.yaml
diff --git a/microsite/data/plugins/api-sdk-generator.yaml b/microsite/data/plugins/api-sdk-generator.yaml
new file mode 100644
index 0000000000..5553089807
--- /dev/null
+++ b/microsite/data/plugins/api-sdk-generator.yaml
@@ -0,0 +1,10 @@
+---
+title: API SDK Generator
+author: Konfig
+authorUrl: https://konfigthis.com/
+category: Development
+description: Generate SDKs for your REST API to accelerate integration
+documentation: https://github.com/konfig-dev/backstage-plugin-konfig/tree/main/plugins/backstage-plugin-konfig
+iconUrl: https://raw.githubusercontent.com/konfig-dev/backstage-plugin-konfig/main/plugins/backstage-plugin-konfig/docs/logo.png
+npmPackageName: 'backstage-plugin-konfig'
+addedDate: '2023-08-07'
From 7c8e57af3dcfc2fd92a85b36fbbbde946523b89e Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Mon, 7 Aug 2023 15:39:18 -0400
Subject: [PATCH 087/372] Convert tests to use msw instead of mocking fetch
Signed-off-by: Robert Bunning
---
plugins/newrelic/package.json | 3 +-
plugins/newrelic/src/api/index.test.ts | 266 ++++++++++++++-----------
yarn.lock | 11 +-
3 files changed, 163 insertions(+), 117 deletions(-)
diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json
index 7e42a26d9f..b510e9cbbe 100644
--- a/plugins/newrelic/package.json
+++ b/plugins/newrelic/package.json
@@ -49,6 +49,7 @@
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
"devDependencies": {
+ "@backstage/backend-test-utils": "workspace:^",
"@backstage/cli": "workspace:^",
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
@@ -60,7 +61,7 @@
"@types/node": "^16.11.26",
"@types/react": "^16.13.1 || ^17.0.0",
"cross-fetch": "^3.1.5",
- "msw": "^1.0.0"
+ "msw": "^1.2.3"
},
"files": [
"dist"
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
index 94bdc8ff94..f45482be87 100644
--- a/plugins/newrelic/src/api/index.test.ts
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -14,15 +14,24 @@
* limitations under the License.
*/
-import { NewRelicClient } from '.';
-import { FetchApi } from '@backstage/core-plugin-api';
+import { NewRelicApplication, NewRelicClient } from '.';
import { DiscoveryApi } from '@backstage/core-plugin-api';
+import { rest } from 'msw';
+import { setupServer } from 'msw/node';
+import { MockFetchApi, setupRequestMockHandlers } from '@backstage/test-utils';
beforeEach(() => {
jest.resetAllMocks();
});
describe('NewRelicClient', () => {
+ const server = setupServer();
+ setupRequestMockHandlers(server);
+
+ beforeEach(() => {
+ server.resetHandlers();
+ });
+
test.each([
['https://test.test/BASEPATH/apm/api/applications.json', '/BASEPATH'],
['https://test.test/BASEPATH2/apm/api/applications.json', '/BASEPATH2'],
@@ -31,17 +40,18 @@ describe('NewRelicClient', () => {
])(
'It correctly forms the request url (%p) when proxyPathBase is %p',
async (expectedUrl, basePathOverride) => {
+ server.use(
+ rest.get(expectedUrl, (_, res, ctx) =>
+ res(ctx.status(200), ctx.json({ applications: [] })),
+ ),
+ );
+
const mockedDiscoveryApi: DiscoveryApi = {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: jest.fn().mockResolvedValueOnce({
- ok: true,
- json: async () => [],
- headers: new Map(),
- }),
- };
+ const mockedFetchApi = new MockFetchApi();
+ const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
@@ -50,7 +60,7 @@ describe('NewRelicClient', () => {
});
await client.getApplications();
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(expectedUrl);
+ expect(fetchSpy).toHaveBeenCalledWith(expectedUrl);
},
);
@@ -59,7 +69,7 @@ describe('NewRelicClient', () => {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedApplicationOne = {
+ const mockedApplicationOne: NewRelicApplication = {
id: 1,
application_summary: {
apdex_score: 0,
@@ -81,8 +91,16 @@ describe('NewRelicClient', () => {
},
};
- const mockedApplicationTwo = {
+ const mockedApplicationTwo: NewRelicApplication = {
id: 2,
+ application_summary: {
+ apdex_score: -900,
+ error_rate: 0,
+ host_count: 0,
+ instance_count: 0,
+ response_time: 0,
+ throughput: 0,
+ },
name: 'Testing Application #2',
language: 'en-us',
health_status: 'Working',
@@ -95,7 +113,7 @@ describe('NewRelicClient', () => {
},
};
- const mockedApplicationThree = {
+ const mockedApplicationThree: NewRelicApplication = {
id: 3,
application_summary: {
apdex_score: -900,
@@ -117,45 +135,65 @@ describe('NewRelicClient', () => {
},
};
- const mockedFetchApi: FetchApi = {
- fetch: jest
- .fn()
- .mockResolvedValueOnce({
- ok: true,
- json: async () => ({ applications: [mockedApplicationOne] }),
- headers: new Map([
- [
- 'link',
- '; rel="next", ; rel="first"',
- ],
- ['otherheader', 'otherValue'],
- ]),
- })
- .mockResolvedValueOnce({
- ok: true,
- json: async () => ({ applications: [] }),
- headers: new Map([
- ['link', '; rel="next",'],
- ]),
- })
- .mockResolvedValueOnce({
- ok: true,
- json: async () => ({
- applications: [mockedApplicationTwo, mockedApplicationThree],
- }),
- headers: new Map([
- [
- 'link',
- '; rel="first", ; rel="next"',
- ],
- ]),
- }),
- };
+ const queryToRequestData = new Map<
+ string | null,
+ { link?: string | string[]; apps: NewRelicApplication[] }
+ >([
+ [
+ null,
+ {
+ link: [
+ '; rel="next"',
+ '; rel="bad"',
+ ],
+ apps: [mockedApplicationOne],
+ },
+ ],
+ [
+ '2',
+ {
+ link: '; rel="next",',
+ apps: [],
+ },
+ ],
+ [
+ '3',
+ {
+ apps: [mockedApplicationTwo, mockedApplicationThree],
+ },
+ ],
+ ]);
+
+ const mockedFetchApi = new MockFetchApi();
+ const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
+
+ server.use(
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (req, res, ctx) => {
+ const nextPageNumber = req.url.searchParams.get('page');
+ const requestData = queryToRequestData.get(nextPageNumber) ?? {
+ apps: [],
+ };
+
+ const { link, apps: applications } = requestData;
+ const statusTransform = ctx.status(200);
+ const responseBody = ctx.json({ applications });
+
+ if (!!link) {
+ return res(statusTransform, ctx.set({ link }), responseBody);
+ }
+
+ return res(statusTransform, responseBody);
+ },
+ ),
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
fetchApi: mockedFetchApi,
});
+
const actual = await client.getApplications();
const expected = {
applications: [
@@ -165,14 +203,14 @@ describe('NewRelicClient', () => {
],
};
- expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(3);
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ expect(fetchSpy).toHaveBeenCalledTimes(3);
+ expect(fetchSpy).toHaveBeenCalledWith(
'https://test.test/newrelic/apm/api/applications.json',
);
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ expect(fetchSpy).toHaveBeenCalledWith(
'https://test.test/newrelic/apm/api/applications.json?page=2',
);
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ expect(fetchSpy).toHaveBeenCalledWith(
'https://test.test/newrelic/apm/api/applications.json?page=3',
);
expect(actual).toStrictEqual(expected);
@@ -185,19 +223,28 @@ describe('NewRelicClient', () => {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: jest.fn().mockResolvedValueOnce({
- ok: true,
- json: async () => ({ applications: [] }),
- headers: new Map([
- [
- linkHeaderName,
- '; rel="next", ; rel="next"',
- ],
- ['otherheader', 'otherValue'],
- ]),
+ const mockedFetchApi = new MockFetchApi();
+ const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
+
+ server.use(
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (_, res, ctx) =>
+ res(
+ ctx.status(200),
+ ctx.set(
+ linkHeaderName,
+ '; rel="next"',
+ ),
+ ctx.json({ applications: [] }),
+ ),
+ ),
+ rest.get('https://test.test/badroute', () => {
+ throw new Error(
+ 'NewRelicClient attempted to paginate when it should not have',
+ );
}),
- };
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
@@ -205,8 +252,8 @@ describe('NewRelicClient', () => {
});
await client.getApplications();
- expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1);
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ expect(fetchSpy).toHaveBeenCalledTimes(1);
+ expect(fetchSpy).toHaveBeenCalledWith(
'https://test.test/newrelic/apm/api/applications.json',
);
},
@@ -228,16 +275,25 @@ describe('NewRelicClient', () => {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: jest.fn().mockResolvedValueOnce({
- ok: true,
- json: async () => ({ applications: [] }),
- headers: new Map([
- ['Link', linkHeaderValue],
- ['otherheader', 'otherValue'],
- ]),
+ const mockedFetchApi = new MockFetchApi();
+ const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
+
+ server.use(
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (_, res, ctx) =>
+ res(
+ ctx.status(200),
+ ctx.set('link', linkHeaderValue),
+ ctx.json({ applications: [] }),
+ ),
+ ),
+ rest.get('https://test.test/badroute', () => {
+ throw new Error(
+ 'NewRelicClient attempted to paginate when it should not have',
+ );
}),
- };
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
@@ -245,45 +301,33 @@ describe('NewRelicClient', () => {
});
await client.getApplications();
- expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1);
- expect(mockedFetchApi.fetch).toHaveBeenCalledWith(
+ expect(fetchSpy).toHaveBeenCalledTimes(1);
+ expect(fetchSpy).toHaveBeenCalledWith(
'https://test.test/newrelic/apm/api/applications.json',
);
},
);
test.each([
- [
- {
- ok: false,
- statusText: 'statusText',
- json: async () => ({ error: { title: 'TESTING' } }),
- },
- ],
- [
- {
- ok: false,
- statusText: 'statusText',
- json: async () => ({}),
- },
- ],
+ [404, { error: { title: 'TESTING' } }],
+ [500, {}],
])(
'It returns an empty array of applications when the fetch is not okay',
- async fetchResult => {
+ async (statusCode, jsonBody) => {
const mockedDiscoveryApi: DiscoveryApi = {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: jest.fn().mockResolvedValueOnce({
- ok: true,
- json: async () => fetchResult,
- }),
- };
+ server.use(
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (_, res, ctx) => res(ctx.status(statusCode), ctx.json(jsonBody)),
+ ),
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
- fetchApi: mockedFetchApi,
+ fetchApi: new MockFetchApi(),
});
const actual = await client.getApplications();
@@ -296,15 +340,15 @@ describe('NewRelicClient', () => {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: () => {
- throw new Error('TESTING');
- },
- };
+ server.use(
+ rest.get('https://test.test/newrelic/apm/api/applications.json', () => {
+ throw new Error('Network Error');
+ }),
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
- fetchApi: mockedFetchApi,
+ fetchApi: new MockFetchApi(),
});
const actual = await client.getApplications();
@@ -316,16 +360,16 @@ describe('NewRelicClient', () => {
getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
};
- const mockedFetchApi: FetchApi = {
- fetch: jest.fn().mockResolvedValue({
- ok: true,
- json: async () => ({ applications: [] }),
- }),
- };
+ server.use(
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (_, res, ctx) => res(ctx.status(200), ctx.json({ applications: [] })),
+ ),
+ );
const client = new NewRelicClient({
discoveryApi: mockedDiscoveryApi,
- fetchApi: mockedFetchApi,
+ fetchApi: new MockFetchApi(),
});
await client.getApplications();
diff --git a/yarn.lock b/yarn.lock
index 1399f1d622..b7d49886f5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7590,6 +7590,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-newrelic@workspace:plugins/newrelic"
dependencies:
+ "@backstage/backend-test-utils": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/core-app-api": "workspace:^"
"@backstage/core-components": "workspace:^"
@@ -7608,7 +7609,7 @@ __metadata:
"@types/parse-link-header": ^2.0.1
"@types/react": ^16.13.1 || ^17.0.0
cross-fetch: ^3.1.5
- msw: ^1.0.0
+ msw: ^1.2.3
parse-link-header: ^2.0.0
react-use: ^17.2.4
peerDependencies:
@@ -32846,9 +32847,9 @@ __metadata:
languageName: node
linkType: hard
-"msw@npm:^1.0.0, msw@npm:^1.0.1, msw@npm:^1.2.1":
- version: 1.2.2
- resolution: "msw@npm:1.2.2"
+"msw@npm:^1.0.0, msw@npm:^1.0.1, msw@npm:^1.2.1, msw@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "msw@npm:1.2.3"
dependencies:
"@mswjs/cookies": ^0.2.2
"@mswjs/interceptors": ^0.17.5
@@ -32876,7 +32877,7 @@ __metadata:
optional: true
bin:
msw: cli/index.js
- checksum: e42cec8f5523663020bdecf6a7977a10aa86a4718d1920def3fbde0ff3734391873668cc6e3996d6790add3c74dac95a952f8560ce2543697280125eb55138e8
+ checksum: 832a6fc3973726a97e03ce2690c3b6e1774b5156d064a478657a1b33f9933e4834af833cc8a859e1b717fa9b71f1271b3e66a1ec6eed7f76bfe79406e9ec3986
languageName: node
linkType: hard
From b6ee85d1e7e930d8d992cd3f10b6c815a0435925 Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Mon, 7 Aug 2023 15:41:55 -0400
Subject: [PATCH 088/372] Switch to using push to add on read applications
Signed-off-by: Robert Bunning
---
plugins/newrelic/src/api/index.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index ede225dc05..3fdebd1494 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -103,7 +103,7 @@ export class NewRelicClient implements NewRelicApi {
}
try {
- let applications: NewRelicApplication[] = [];
+ const applications: NewRelicApplication[] = [];
let targetUrl = this.baseUrl;
do {
@@ -111,7 +111,7 @@ export class NewRelicClient implements NewRelicApi {
await this.fetchNewRelic(targetUrl);
targetUrl = nextPageUrl ?? '';
- applications = applications.concat(applicationsFromReadPage);
+ applications.push(...applicationsFromReadPage);
} while (!!targetUrl);
return { applications };
From 9261f22f1c04c5aec8620db011dc85ba3a9ce636 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 8 Aug 2023 13:00:08 +0200
Subject: [PATCH 089/372] keep BackendFeatureFactory internal
Signed-off-by: Vincenzo Scamporlino
---
.../backend-plugin-api/alpha-api-report.md | 10 ++++++++++
packages/backend-plugin-api/api-report.md | 4 ++--
packages/backend-plugin-api/src/alpha.ts | 4 ++--
.../backend-plugin-api/src/wiring/factories.ts | 5 +++--
plugins/adr-backend/api-report.md | 4 ++--
plugins/airbrake-backend/api-report.md | 4 ++--
plugins/app-backend/alpha-api-report.md | 4 ++--
plugins/azure-devops-backend/api-report.md | 4 ++--
plugins/badges-backend/api-report.md | 4 ++--
plugins/bazaar-backend/api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++----
.../alpha-api-report.md | 6 ++----
.../catalog-backend-module-gcp/api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++----
.../alpha-api-report.md | 18 +++++++-----------
.../alpha-api-report.md | 6 ++----
.../alpha-api-report.md | 4 ++--
.../api-report.md | 4 ++--
plugins/catalog-backend/alpha-api-report.md | 4 ++--
plugins/devtools-backend/api-report.md | 4 ++--
plugins/entity-feedback-backend/api-report.md | 4 ++--
.../alpha-api-report.md | 6 ++----
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 6 +++---
.../alpha-api-report.md | 6 +++---
plugins/events-backend/alpha-api-report.md | 4 ++--
.../example-todo-list-backend/api-report.md | 4 ++--
plugins/kafka-backend/api-report.md | 4 ++--
plugins/kubernetes-backend/alpha-api-report.md | 4 ++--
plugins/lighthouse-backend/api-report.md | 4 ++--
plugins/linguist-backend/api-report.md | 6 ++----
plugins/periskop-backend/api-report.md | 4 ++--
plugins/permission-backend/alpha-api-report.md | 6 +++---
plugins/proxy-backend/api-report.md | 4 ++--
plugins/scaffolder-backend/alpha-api-report.md | 10 +++++-----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 8 ++++----
.../alpha-api-report.md | 4 ++--
.../alpha-api-report.md | 8 ++++----
plugins/search-backend/alpha-api-report.md | 4 ++--
plugins/techdocs-backend/alpha-api-report.md | 4 ++--
plugins/todo-backend/api-report.md | 4 ++--
plugins/user-settings-backend/api-report.md | 4 ++--
50 files changed, 128 insertions(+), 133 deletions(-)
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
index d76d7e4deb..29f78ed9d1 100644
--- a/packages/backend-plugin-api/alpha-api-report.md
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -9,6 +9,16 @@ export interface BackendFeature {
$$type: '@backstage/BackendFeature';
}
+// @public (undocumented)
+export interface BackendFeatureFactory<
+ TOptions extends [options?: object] = [],
+> {
+ // (undocumented)
+ $$type: '@backstage/BackendFeatureFactory';
+ // (undocumented)
+ (...options: TOptions): BackendFeature;
+}
+
// @alpha (undocumented)
export interface FeatureDiscoveryService {
// (undocumented)
diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md
index a9eba1ba86..dc75c09b18 100644
--- a/packages/backend-plugin-api/api-report.md
+++ b/packages/backend-plugin-api/api-report.md
@@ -126,12 +126,12 @@ export namespace coreServices {
// @public
export function createBackendModule(
config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig),
-): BackendFeatureFactory;
+): (...params: TOptions) => BackendFeature;
// @public
export function createBackendPlugin(
config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig),
-): BackendFeatureFactory;
+): (...params: TOptions) => BackendFeature;
// @public
export function createExtensionPoint(
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
index bd6be5b75e..e3598dff5a 100644
--- a/packages/backend-plugin-api/src/alpha.ts
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -15,7 +15,7 @@
*/
import { createServiceRef } from './services';
-import { BackendFeature } from './wiring';
+import { BackendFeature, BackendFeatureFactory } from './wiring';
/** @alpha */
export interface FeatureDiscoveryService {
@@ -33,4 +33,4 @@ export const featureDiscoveryServiceRef =
});
export type { ServiceRef } from './services';
-export type { BackendFeature };
+export type { BackendFeature, BackendFeatureFactory };
diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts
index cbc3771b86..ecaccdc6de 100644
--- a/packages/backend-plugin-api/src/wiring/factories.ts
+++ b/packages/backend-plugin-api/src/wiring/factories.ts
@@ -21,6 +21,7 @@ import {
InternalBackendModuleRegistration,
InternalBackendPluginRegistration,
BackendFeatureFactory,
+ BackendFeature,
} from './types';
/**
@@ -86,7 +87,7 @@ export interface BackendPluginConfig {
*/
export function createBackendPlugin(
config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig),
-): BackendFeatureFactory {
+): (...params: TOptions) => BackendFeature {
const configCallback = typeof config === 'function' ? config : () => config;
const factory: BackendFeatureFactory = (...options) => {
@@ -179,7 +180,7 @@ export interface BackendModuleConfig {
*/
export function createBackendModule(
config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig),
-): BackendFeatureFactory {
+): (...params: TOptions) => BackendFeature {
const configCallback = typeof config === 'function' ? config : () => config;
const factory: BackendFeatureFactory = (...options: TOptions) => {
const c = configCallback(...options);
diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md
index 4092a6eb60..2fd22ef9cd 100644
--- a/plugins/adr-backend/api-report.md
+++ b/plugins/adr-backend/api-report.md
@@ -7,7 +7,7 @@
import { AdrDocument } from '@backstage/plugin-adr-common';
import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common';
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CacheClient } from '@backstage/backend-common';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
@@ -45,7 +45,7 @@ export type AdrParserContext = {
};
// @public
-export const adrPlugin: BackendFeatureFactory<[]>;
+export const adrPlugin: () => BackendFeature;
// @public (undocumented)
export type AdrRouterOptions = {
diff --git a/plugins/airbrake-backend/api-report.md b/plugins/airbrake-backend/api-report.md
index d3dd706c29..c410245e31 100644
--- a/plugins/airbrake-backend/api-report.md
+++ b/plugins/airbrake-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -14,7 +14,7 @@ export interface AirbrakeConfig {
}
// @public
-export const airbrakePlugin: BackendFeatureFactory<[]>;
+export const airbrakePlugin: () => BackendFeature;
// @public
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/app-backend/alpha-api-report.md b/plugins/app-backend/alpha-api-report.md
index 32d8cc3605..5fb0546a79 100644
--- a/plugins/app-backend/alpha-api-report.md
+++ b/plugins/app-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const appPlugin: BackendFeatureFactory<[]>;
+export const appPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md
index 6447f03796..a2a43cd6af 100644
--- a/plugins/azure-devops-backend/api-report.md
+++ b/plugins/azure-devops-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Build } from 'azure-devops-node-api/interfaces/BuildInterfaces';
import { BuildDefinitionReference } from 'azure-devops-node-api/interfaces/BuildInterfaces';
import { BuildRun } from '@backstage/plugin-azure-devops-common';
@@ -96,7 +96,7 @@ export class AzureDevOpsApi {
}
// @public
-export const azureDevOpsPlugin: BackendFeatureFactory<[]>;
+export const azureDevOpsPlugin: () => BackendFeature;
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md
index 30fd1e0752..4594228543 100644
--- a/plugins/badges-backend/api-report.md
+++ b/plugins/badges-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
@@ -83,7 +83,7 @@ export type BadgeSpec = {
};
// @public
-export const badgesPlugin: BackendFeatureFactory<[]>;
+export const badgesPlugin: () => BackendFeature;
// @public
export interface BadgesStore {
diff --git a/plugins/bazaar-backend/api-report.md b/plugins/bazaar-backend/api-report.md
index d3fe7987a1..6281530851 100644
--- a/plugins/bazaar-backend/api-report.md
+++ b/plugins/bazaar-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
@@ -11,7 +11,7 @@ import { Logger } from 'winston';
import { PluginDatabaseManager } from '@backstage/backend-common';
// @alpha
-export const bazaarPlugin: BackendFeatureFactory<[]>;
+export const bazaarPlugin: () => BackendFeature;
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise;
diff --git a/plugins/catalog-backend-module-aws/alpha-api-report.md b/plugins/catalog-backend-module-aws/alpha-api-report.md
index 6f4fa2c760..f78f6a802d 100644
--- a/plugins/catalog-backend-module-aws/alpha-api-report.md
+++ b/plugins/catalog-backend-module-aws/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleAwsS3EntityProvider: BackendFeatureFactory<[]>;
+export const catalogModuleAwsS3EntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-azure/alpha-api-report.md b/plugins/catalog-backend-module-azure/alpha-api-report.md
index 833eb3dc59..66551a2856 100644
--- a/plugins/catalog-backend-module-azure/alpha-api-report.md
+++ b/plugins/catalog-backend-module-azure/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleAzureDevOpsEntityProvider: BackendFeatureFactory<[]>;
+export const catalogModuleAzureDevOpsEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
index 0f76de5552..a5d0ffc665 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -3,12 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleBitbucketCloudEntityProvider: BackendFeatureFactory<
- []
->;
+export const catalogModuleBitbucketCloudEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
index 2616e92cba..2cc53a3c16 100644
--- a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
@@ -3,12 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleBitbucketServerEntityProvider: BackendFeatureFactory<
- []
->;
+export const catalogModuleBitbucketServerEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gcp/api-report.md b/plugins/catalog-backend-module-gcp/api-report.md
index 489032b830..6f963ed51d 100644
--- a/plugins/catalog-backend-module-gcp/api-report.md
+++ b/plugins/catalog-backend-module-gcp/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import * as container from '@google-cloud/container';
import { EntityProvider } from '@backstage/plugin-catalog-node';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
import { SchedulerService } from '@backstage/backend-plugin-api';
// @public
-export const catalogModuleGcpGkeEntityProvider: BackendFeatureFactory<[]>;
+export const catalogModuleGcpGkeEntityProvider: () => BackendFeature;
// @public
export class GkeEntityProvider implements EntityProvider {
diff --git a/plugins/catalog-backend-module-gerrit/alpha-api-report.md b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
index b7e00008cf..5aee61f28a 100644
--- a/plugins/catalog-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const catalogModuleGerritEntityProvider: BackendFeatureFactory<[]>;
+export const catalogModuleGerritEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-github/alpha-api-report.md b/plugins/catalog-backend-module-github/alpha-api-report.md
index abc5b4d2a0..0d4e16b4ea 100644
--- a/plugins/catalog-backend-module-github/alpha-api-report.md
+++ b/plugins/catalog-backend-module-github/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleGithubEntityProvider: BackendFeatureFactory<[]>;
+export const catalogModuleGithubEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gitlab/alpha-api-report.md b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
index 51ebbc4ae2..f14b41d6c5 100644
--- a/plugins/catalog-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
@@ -3,12 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModuleGitlabDiscoveryEntityProvider: BackendFeatureFactory<
- []
->;
+export const catalogModuleGitlabDiscoveryEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
index f067a0a6d7..b11ec43cf5 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
@@ -3,21 +3,17 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion';
import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion';
// @alpha
-export const catalogModuleIncrementalIngestionEntityProvider: BackendFeatureFactory<
- [
- options: {
- providers: {
- provider: IncrementalEntityProvider;
- options: IncrementalEntityProviderOptions;
- }[];
- },
- ]
->;
+export const catalogModuleIncrementalIngestionEntityProvider: (options: {
+ providers: {
+ provider: IncrementalEntityProvider;
+ options: IncrementalEntityProviderOptions;
+ }[];
+}) => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
index d8aa5f5816..0fa093a1bc 100644
--- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md
+++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
@@ -3,15 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
// @alpha
-export const catalogModuleMicrosoftGraphOrgEntityProvider: BackendFeatureFactory<
- []
->;
+export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature;
// @alpha
export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions {
diff --git a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
index be38b9fc25..0856fdb836 100644
--- a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
+++ b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const catalogModulePuppetDbEntityProvider: BackendFeatureFactory<[]>;
+export const catalogModulePuppetDbEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-unprocessed/api-report.md b/plugins/catalog-backend-module-unprocessed/api-report.md
index 6f52fdd967..7fd7119276 100644
--- a/plugins/catalog-backend-module-unprocessed/api-report.md
+++ b/plugins/catalog-backend-module-unprocessed/api-report.md
@@ -3,12 +3,12 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { HttpRouterService } from '@backstage/backend-plugin-api';
import { Knex } from 'knex';
// @public
-export const catalogModuleUnprocessedEntities: BackendFeatureFactory<[]>;
+export const catalogModuleUnprocessedEntities: () => BackendFeature;
// @public
export class UnprocessedEntitiesModule {
diff --git a/plugins/catalog-backend/alpha-api-report.md b/plugins/catalog-backend/alpha-api-report.md
index 57a10cbeda..df3e809ade 100644
--- a/plugins/catalog-backend/alpha-api-report.md
+++ b/plugins/catalog-backend/alpha-api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common';
import { Conditions } from '@backstage/plugin-permission-node';
import { Entity } from '@backstage/catalog-model';
@@ -74,7 +74,7 @@ export type CatalogPermissionRule<
> = PermissionRule;
// @alpha
-export const catalogPlugin: BackendFeatureFactory<[]>;
+export const catalogPlugin: () => BackendFeature;
// @alpha
export const createCatalogConditionalDecision: (
diff --git a/plugins/devtools-backend/api-report.md b/plugins/devtools-backend/api-report.md
index dd356951f4..dc51fc8387 100644
--- a/plugins/devtools-backend/api-report.md
+++ b/plugins/devtools-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { ConfigInfo } from '@backstage/plugin-devtools-common';
import { DevToolsInfo } from '@backstage/plugin-devtools-common';
@@ -27,7 +27,7 @@ export class DevToolsBackendApi {
}
// @public
-export const devtoolsPlugin: BackendFeatureFactory<[]>;
+export const devtoolsPlugin: () => BackendFeature;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/entity-feedback-backend/api-report.md b/plugins/entity-feedback-backend/api-report.md
index fddce48592..3e8f90220e 100644
--- a/plugins/entity-feedback-backend/api-report.md
+++ b/plugins/entity-feedback-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { Logger } from 'winston';
@@ -14,7 +14,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common';
export function createRouter(options: RouterOptions): Promise;
// @public
-export const entityFeedbackPlugin: BackendFeatureFactory<[]>;
+export const entityFeedbackPlugin: () => BackendFeature;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/events-backend-module-aws-sqs/alpha-api-report.md b/plugins/events-backend-module-aws-sqs/alpha-api-report.md
index 8f81ff00d1..e48515a414 100644
--- a/plugins/events-backend-module-aws-sqs/alpha-api-report.md
+++ b/plugins/events-backend-module-aws-sqs/alpha-api-report.md
@@ -3,12 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleAwsSqsConsumingEventPublisher: BackendFeatureFactory<
- []
->;
+export const eventsModuleAwsSqsConsumingEventPublisher: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-azure/alpha-api-report.md b/plugins/events-backend-module-azure/alpha-api-report.md
index 680c609c10..1bd568d1df 100644
--- a/plugins/events-backend-module-azure/alpha-api-report.md
+++ b/plugins/events-backend-module-azure/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleAzureDevOpsEventRouter: BackendFeatureFactory<[]>;
+export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
index 52b2cac142..5e63ae36c8 100644
--- a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleBitbucketCloudEventRouter: BackendFeatureFactory<[]>;
+export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gerrit/alpha-api-report.md b/plugins/events-backend-module-gerrit/alpha-api-report.md
index 82588d05ac..d1be54730f 100644
--- a/plugins/events-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/events-backend-module-gerrit/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGerritEventRouter: BackendFeatureFactory<[]>;
+export const eventsModuleGerritEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-github/alpha-api-report.md b/plugins/events-backend-module-github/alpha-api-report.md
index 21bfdbb9d2..c233df8634 100644
--- a/plugins/events-backend-module-github/alpha-api-report.md
+++ b/plugins/events-backend-module-github/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGithubEventRouter: BackendFeatureFactory<[]>;
+export const eventsModuleGithubEventRouter: () => BackendFeature;
// @alpha
-export const eventsModuleGithubWebhook: BackendFeatureFactory<[]>;
+export const eventsModuleGithubWebhook: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gitlab/alpha-api-report.md b/plugins/events-backend-module-gitlab/alpha-api-report.md
index bca947c195..bf61f66a4b 100644
--- a/plugins/events-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/events-backend-module-gitlab/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsModuleGitlabEventRouter: BackendFeatureFactory<[]>;
+export const eventsModuleGitlabEventRouter: () => BackendFeature;
// @alpha
-export const eventsModuleGitlabWebhook: BackendFeatureFactory<[]>;
+export const eventsModuleGitlabWebhook: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend/alpha-api-report.md b/plugins/events-backend/alpha-api-report.md
index 72d4bce4b2..3e32f769c1 100644
--- a/plugins/events-backend/alpha-api-report.md
+++ b/plugins/events-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const eventsPlugin: BackendFeatureFactory<[]>;
+export const eventsPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/example-todo-list-backend/api-report.md b/plugins/example-todo-list-backend/api-report.md
index 80b86c4e4d..319fbbf226 100644
--- a/plugins/example-todo-list-backend/api-report.md
+++ b/plugins/example-todo-list-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const exampleTodoListPlugin: BackendFeatureFactory<[]>;
+export const exampleTodoListPlugin: () => BackendFeature;
// @public
export interface RouterOptions {
diff --git a/plugins/kafka-backend/api-report.md b/plugins/kafka-backend/api-report.md
index 176c961cd4..a748a543d9 100644
--- a/plugins/kafka-backend/api-report.md
+++ b/plugins/kafka-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const kafkaPlugin: BackendFeatureFactory<[]>;
+export const kafkaPlugin: () => BackendFeature;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/kubernetes-backend/alpha-api-report.md b/plugins/kubernetes-backend/alpha-api-report.md
index 77a300d344..f95c1414f3 100644
--- a/plugins/kubernetes-backend/alpha-api-report.md
+++ b/plugins/kubernetes-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const kubernetesPlugin: BackendFeatureFactory<[]>;
+export const kubernetesPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/lighthouse-backend/api-report.md b/plugins/lighthouse-backend/api-report.md
index f504ce70c9..5d9d948cf4 100644
--- a/plugins/lighthouse-backend/api-report.md
+++ b/plugins/lighthouse-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Logger } from 'winston';
@@ -30,7 +30,7 @@ export function createScheduler(
): Promise;
// @public
-export const lighthousePlugin: BackendFeatureFactory<[]>;
+export const lighthousePlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md
index 995b54da62..aac978e426 100644
--- a/plugins/linguist-backend/api-report.md
+++ b/plugins/linguist-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogProcessor } from '@backstage/plugin-catalog-node';
import { CatalogProcessorCache } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
@@ -36,9 +36,7 @@ export interface LinguistBackendApi {
}
// @public
-export const linguistPlugin: BackendFeatureFactory<
- [options: LinguistPluginOptions]
->;
+export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature;
// @public
export interface LinguistPluginOptions {
diff --git a/plugins/periskop-backend/api-report.md b/plugins/periskop-backend/api-report.md
index e548a70a75..7906bc4785 100644
--- a/plugins/periskop-backend/api-report.md
+++ b/plugins/periskop-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -12,7 +12,7 @@ import { Logger } from 'winston';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const periskopPlugin: BackendFeatureFactory<[]>;
+export const periskopPlugin: () => BackendFeature;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md
index 5068992c71..926691930b 100644
--- a/plugins/permission-backend/alpha-api-report.md
+++ b/plugins/permission-backend/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const permissionModuleAllowAllPolicy: BackendFeatureFactory<[]>;
+export const permissionModuleAllowAllPolicy: () => BackendFeature;
// @alpha
-export const permissionPlugin: BackendFeatureFactory<[]>;
+export const permissionPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/proxy-backend/api-report.md b/plugins/proxy-backend/api-report.md
index 7960c9658c..9c5cf5f9ef 100644
--- a/plugins/proxy-backend/api-report.md
+++ b/plugins/proxy-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import express from 'express';
import { Logger } from 'winston';
@@ -13,7 +13,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common';
export function createRouter(options: RouterOptions): Promise;
// @alpha
-export const proxyPlugin: BackendFeatureFactory<[]>;
+export const proxyPlugin: () => BackendFeature;
// @public (undocumented)
export interface RouterOptions {
diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md
index f4174697b2..363fcafd17 100644
--- a/plugins/scaffolder-backend/alpha-api-report.md
+++ b/plugins/scaffolder-backend/alpha-api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common';
import { Conditions } from '@backstage/plugin-permission-node';
import { JsonObject } from '@backstage/types';
@@ -20,7 +20,7 @@ import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend';
import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common';
// @alpha
-export const catalogModuleTemplateKind: BackendFeatureFactory<[]>;
+export const catalogModuleTemplateKind: () => BackendFeature;
// @alpha (undocumented)
export const createScaffolderActionConditionalDecision: (
@@ -90,9 +90,9 @@ export const scaffolderActionConditions: Conditions<{
}>;
// @alpha
-export const scaffolderPlugin: BackendFeatureFactory<
- [options?: ScaffolderPluginOptions | undefined]
->;
+export const scaffolderPlugin: (
+ options?: ScaffolderPluginOptions | undefined,
+) => BackendFeature;
// @alpha
export type ScaffolderPluginOptions = {
diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md
index 02a2ea2266..7c6e91b6a1 100644
--- a/plugins/search-backend-module-catalog/alpha-api-report.md
+++ b/plugins/search-backend-module-catalog/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
// @alpha
-export const searchModuleCatalogCollator: BackendFeatureFactory<
- [options?: SearchModuleCatalogCollatorOptions | undefined]
->;
+export const searchModuleCatalogCollator: (
+ options?: SearchModuleCatalogCollatorOptions | undefined,
+) => BackendFeature;
// @alpha
export type SearchModuleCatalogCollatorOptions = Omit<
diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md
index 254771b484..91007c20de 100644
--- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md
+++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { ElasticSearchCustomIndexTemplate } from '@backstage/plugin-search-backend-module-elasticsearch';
import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch';
// @alpha
-export const searchModuleElasticsearchEngine: BackendFeatureFactory<
- [options?: SearchModuleElasticsearchEngineOptions | undefined]
->;
+export const searchModuleElasticsearchEngine: (
+ options?: SearchModuleElasticsearchEngineOptions | undefined,
+) => BackendFeature;
// @alpha
export type SearchModuleElasticsearchEngineOptions = {
diff --git a/plugins/search-backend-module-explore/alpha-api-report.md b/plugins/search-backend-module-explore/alpha-api-report.md
index f8053601b3..7b0f2658d6 100644
--- a/plugins/search-backend-module-explore/alpha-api-report.md
+++ b/plugins/search-backend-module-explore/alpha-api-report.md
@@ -3,13 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
// @alpha
-export const searchModuleExploreCollator: BackendFeatureFactory<
- [options?: SearchModuleExploreCollatorOptions | undefined]
->;
+export const searchModuleExploreCollator: (
+ options?: SearchModuleExploreCollatorOptions | undefined,
+) => BackendFeature;
// @alpha
export type SearchModuleExploreCollatorOptions = {
diff --git a/plugins/search-backend-module-pg/alpha-api-report.md b/plugins/search-backend-module-pg/alpha-api-report.md
index d41010a594..eaee78e944 100644
--- a/plugins/search-backend-module-pg/alpha-api-report.md
+++ b/plugins/search-backend-module-pg/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const searchModulePostgresEngine: BackendFeatureFactory<[]>;
+export const searchModulePostgresEngine: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/search-backend-module-techdocs/alpha-api-report.md b/plugins/search-backend-module-techdocs/alpha-api-report.md
index 4f7515dac5..0eac010b4c 100644
--- a/plugins/search-backend-module-techdocs/alpha-api-report.md
+++ b/plugins/search-backend-module-techdocs/alpha-api-report.md
@@ -3,14 +3,14 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { TechDocsCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-techdocs';
// @alpha
-export const searchModuleTechDocsCollator: BackendFeatureFactory<
- [options?: SearchModuleTechDocsCollatorOptions | undefined]
->;
+export const searchModuleTechDocsCollator: (
+ options?: SearchModuleTechDocsCollatorOptions | undefined,
+) => BackendFeature;
// @alpha
export type SearchModuleTechDocsCollatorOptions = Omit<
diff --git a/plugins/search-backend/alpha-api-report.md b/plugins/search-backend/alpha-api-report.md
index 9d620efe0e..6ee94a0e29 100644
--- a/plugins/search-backend/alpha-api-report.md
+++ b/plugins/search-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const searchPlugin: BackendFeatureFactory<[]>;
+export const searchPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md
index 6de1a7d209..16db84c216 100644
--- a/plugins/techdocs-backend/alpha-api-report.md
+++ b/plugins/techdocs-backend/alpha-api-report.md
@@ -3,10 +3,10 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const techdocsPlugin: BackendFeatureFactory<[]>;
+export const techdocsPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/todo-backend/api-report.md b/plugins/todo-backend/api-report.md
index a3703eaaab..6db1e012e9 100644
--- a/plugins/todo-backend/api-report.md
+++ b/plugins/todo-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { CompoundEntityRef } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
@@ -91,7 +91,7 @@ export type TodoParserResult = {
};
// @public
-export const todoPlugin: BackendFeatureFactory<[]>;
+export const todoPlugin: () => BackendFeature;
// @public (undocumented)
export interface TodoReader {
diff --git a/plugins/user-settings-backend/api-report.md b/plugins/user-settings-backend/api-report.md
index 32722bbf2d..b015915723 100644
--- a/plugins/user-settings-backend/api-report.md
+++ b/plugins/user-settings-backend/api-report.md
@@ -3,7 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { BackendFeatureFactory } from '@backstage/backend-plugin-api';
+import { BackendFeature } from '@backstage/backend-plugin-api';
import express from 'express';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { PluginDatabaseManager } from '@backstage/backend-common';
@@ -20,7 +20,7 @@ export interface RouterOptions {
}
// @alpha
-export const userSettingsPlugin: BackendFeatureFactory<[]>;
+export const userSettingsPlugin: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
From a58fc22210ac0df11e47edb269a681c372f08648 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 8 Aug 2023 13:47:36 +0200
Subject: [PATCH 090/372] avoid exporting BackendFeatureFactory
Signed-off-by: Vincenzo Scamporlino
---
.../src/alpha/featureDiscoveryServiceFactory.ts | 6 ++----
packages/backend-plugin-api/alpha-api-report.md | 10 ----------
packages/backend-plugin-api/api-report.md | 10 ----------
packages/backend-plugin-api/src/alpha.ts | 4 ++--
packages/backend-plugin-api/src/wiring/index.ts | 1 -
packages/backend-plugin-api/src/wiring/types.ts | 2 +-
6 files changed, 5 insertions(+), 28 deletions(-)
diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
index 7062448eb1..f9ee7edc5f 100644
--- a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
+++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts
@@ -16,7 +16,6 @@
import {
BackendFeature,
- BackendFeatureFactory,
RootConfigService,
coreServices,
createServiceFactory,
@@ -121,11 +120,10 @@ function isBackendFeature(value: unknown): value is BackendFeature {
function isBackendFeatureFactory(
value: unknown,
-): value is BackendFeatureFactory {
+): value is () => BackendFeature {
return (
!!value &&
typeof value === 'function' &&
- (value as BackendFeatureFactory).$$type ===
- '@backstage/BackendFeatureFactory'
+ (value as any).$$type === '@backstage/BackendFeatureFactory'
);
}
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
index 29f78ed9d1..d76d7e4deb 100644
--- a/packages/backend-plugin-api/alpha-api-report.md
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -9,16 +9,6 @@ export interface BackendFeature {
$$type: '@backstage/BackendFeature';
}
-// @public (undocumented)
-export interface BackendFeatureFactory<
- TOptions extends [options?: object] = [],
-> {
- // (undocumented)
- $$type: '@backstage/BackendFeatureFactory';
- // (undocumented)
- (...options: TOptions): BackendFeature;
-}
-
// @alpha (undocumented)
export interface FeatureDiscoveryService {
// (undocumented)
diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md
index dc75c09b18..a1ae6284c6 100644
--- a/packages/backend-plugin-api/api-report.md
+++ b/packages/backend-plugin-api/api-report.md
@@ -21,16 +21,6 @@ export interface BackendFeature {
$$type: '@backstage/BackendFeature';
}
-// @public (undocumented)
-export interface BackendFeatureFactory<
- TOptions extends [options?: object] = [],
-> {
- // (undocumented)
- $$type: '@backstage/BackendFeatureFactory';
- // (undocumented)
- (...options: TOptions): BackendFeature;
-}
-
// @public
export interface BackendModuleConfig {
moduleId: string;
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
index e3598dff5a..bd6be5b75e 100644
--- a/packages/backend-plugin-api/src/alpha.ts
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -15,7 +15,7 @@
*/
import { createServiceRef } from './services';
-import { BackendFeature, BackendFeatureFactory } from './wiring';
+import { BackendFeature } from './wiring';
/** @alpha */
export interface FeatureDiscoveryService {
@@ -33,4 +33,4 @@ export const featureDiscoveryServiceRef =
});
export type { ServiceRef } from './services';
-export type { BackendFeature, BackendFeatureFactory };
+export type { BackendFeature };
diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts
index 0b7104374a..9cb767b8ac 100644
--- a/packages/backend-plugin-api/src/wiring/index.ts
+++ b/packages/backend-plugin-api/src/wiring/index.ts
@@ -28,6 +28,5 @@ export type {
BackendModuleRegistrationPoints,
BackendPluginRegistrationPoints,
BackendFeature,
- BackendFeatureFactory,
ExtensionPoint,
} from './types';
diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts
index b9b4f3ff10..028c2b87da 100644
--- a/packages/backend-plugin-api/src/wiring/types.ts
+++ b/packages/backend-plugin-api/src/wiring/types.ts
@@ -67,7 +67,7 @@ export interface BackendModuleRegistrationPoints {
}): void;
}
-/** @public */
+/** @internal */
export interface BackendFeatureFactory<
TOptions extends [options?: object] = [],
> {
From dfb01beddae77daa15059720d3ca67b8a91d45d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?=
Date: Tue, 8 Aug 2023 15:00:45 +0200
Subject: [PATCH 091/372] import non-alpha imports from the main package
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fredrik Adelöw
---
.../backend-plugin-api/alpha-api-report.md | 19 ++-----------------
packages/backend-plugin-api/src/alpha.ts | 9 ++++-----
2 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md
index d76d7e4deb..81b378a671 100644
--- a/packages/backend-plugin-api/alpha-api-report.md
+++ b/packages/backend-plugin-api/alpha-api-report.md
@@ -3,11 +3,8 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-// @public (undocumented)
-export interface BackendFeature {
- // (undocumented)
- $$type: '@backstage/BackendFeature';
-}
+import { BackendFeature } from '@backstage/backend-plugin-api';
+import { ServiceRef } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
export interface FeatureDiscoveryService {
@@ -23,17 +20,5 @@ export const featureDiscoveryServiceRef: ServiceRef<
'root'
>;
-// @public
-export type ServiceRef<
- TService,
- TScope extends 'root' | 'plugin' = 'root' | 'plugin',
-> = {
- id: string;
- scope: TScope;
- T: TService;
- toString(): string;
- $$type: '@backstage/ServiceRef';
-};
-
// (No @packageDocumentation comment for this package)
```
diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts
index bd6be5b75e..baee739f49 100644
--- a/packages/backend-plugin-api/src/alpha.ts
+++ b/packages/backend-plugin-api/src/alpha.ts
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-import { createServiceRef } from './services';
-import { BackendFeature } from './wiring';
+import {
+ BackendFeature,
+ createServiceRef,
+} from '@backstage/backend-plugin-api';
/** @alpha */
export interface FeatureDiscoveryService {
@@ -31,6 +33,3 @@ export const featureDiscoveryServiceRef =
id: 'core.featureDiscovery',
scope: 'root',
});
-
-export type { ServiceRef } from './services';
-export type { BackendFeature };
From 74f77f151a969857eb85def90c6eeabcdb3ad109 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 8 Aug 2023 14:07:10 +0000
Subject: [PATCH 092/372] Version Packages (next)
---
.changeset/create-app-1691503547.md | 5 +
.changeset/pre.json | 25 +-
docs/releases/v1.17.0-next.2-changelog.md | 1430 +++++++++++++++++
package.json | 2 +-
packages/app/CHANGELOG.md | 63 +
packages/app/package.json | 2 +-
packages/backend-app-api/CHANGELOG.md | 14 +
packages/backend-app-api/package.json | 2 +-
packages/backend-common/CHANGELOG.md | 9 +
packages/backend-common/package.json | 2 +-
packages/backend-defaults/CHANGELOG.md | 9 +
packages/backend-defaults/package.json | 2 +-
packages/backend-next/CHANGELOG.md | 32 +
packages/backend-next/package.json | 2 +-
packages/backend-plugin-api/CHANGELOG.md | 9 +
packages/backend-plugin-api/package.json | 2 +-
packages/backend-tasks/CHANGELOG.md | 8 +
packages/backend-tasks/package.json | 2 +-
packages/backend-test-utils/CHANGELOG.md | 10 +
packages/backend-test-utils/package.json | 2 +-
packages/backend/CHANGELOG.md | 49 +
packages/backend/package.json | 2 +-
packages/create-app/CHANGELOG.md | 6 +
packages/create-app/package.json | 2 +-
packages/dev-utils/CHANGELOG.md | 8 +
packages/dev-utils/package.json | 2 +-
packages/e2e-test/CHANGELOG.md | 7 +
packages/e2e-test/package.json | 2 +-
.../techdocs-cli-embedded-app/CHANGELOG.md | 10 +
.../techdocs-cli-embedded-app/package.json | 2 +-
packages/techdocs-cli/CHANGELOG.md | 8 +
packages/techdocs-cli/package.json | 2 +-
plugins/adr-backend/CHANGELOG.md | 8 +
plugins/adr-backend/package.json | 2 +-
plugins/adr/CHANGELOG.md | 8 +
plugins/adr/package.json | 2 +-
plugins/airbrake-backend/CHANGELOG.md | 8 +
plugins/airbrake-backend/package.json | 2 +-
plugins/airbrake/CHANGELOG.md | 8 +
plugins/airbrake/package.json | 2 +-
plugins/allure/CHANGELOG.md | 7 +
plugins/allure/package.json | 2 +-
plugins/api-docs/CHANGELOG.md | 8 +
plugins/api-docs/package.json | 2 +-
plugins/app-backend/CHANGELOG.md | 11 +
plugins/app-backend/package.json | 2 +-
plugins/app-node/CHANGELOG.md | 12 +
plugins/app-node/package.json | 2 +-
plugins/auth-backend/CHANGELOG.md | 10 +
plugins/auth-backend/package.json | 2 +-
plugins/auth-node/CHANGELOG.md | 7 +
plugins/auth-node/package.json | 2 +-
plugins/azure-devops-backend/CHANGELOG.md | 8 +
plugins/azure-devops-backend/package.json | 2 +-
plugins/azure-devops/CHANGELOG.md | 7 +
plugins/azure-devops/package.json | 2 +-
plugins/azure-sites-backend/CHANGELOG.md | 7 +
plugins/azure-sites-backend/package.json | 2 +-
plugins/azure-sites/CHANGELOG.md | 7 +
plugins/azure-sites/package.json | 2 +-
plugins/badges-backend/CHANGELOG.md | 9 +
plugins/badges-backend/package.json | 2 +-
plugins/badges/CHANGELOG.md | 7 +
plugins/badges/package.json | 2 +-
plugins/bazaar-backend/CHANGELOG.md | 9 +
plugins/bazaar-backend/package.json | 2 +-
plugins/bazaar/CHANGELOG.md | 9 +
plugins/bazaar/package.json | 2 +-
plugins/bitrise/CHANGELOG.md | 7 +
plugins/bitrise/package.json | 2 +-
.../catalog-backend-module-aws/CHANGELOG.md | 10 +
.../catalog-backend-module-aws/package.json | 2 +-
.../catalog-backend-module-azure/CHANGELOG.md | 10 +
.../catalog-backend-module-azure/package.json | 2 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../catalog-backend-module-gcp/CHANGELOG.md | 10 +
.../catalog-backend-module-gcp/package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
.../CHANGELOG.md | 12 +
.../package.json | 2 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
.../CHANGELOG.md | 12 +
.../package.json | 2 +-
.../catalog-backend-module-ldap/CHANGELOG.md | 8 +
.../catalog-backend-module-ldap/package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
.../CHANGELOG.md | 9 +
.../package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
plugins/catalog-backend/CHANGELOG.md | 18 +
plugins/catalog-backend/package.json | 2 +-
plugins/catalog-customized/CHANGELOG.md | 8 +
plugins/catalog-customized/package.json | 2 +-
plugins/catalog-graph/CHANGELOG.md | 8 +
plugins/catalog-graph/package.json | 2 +-
plugins/catalog-import/CHANGELOG.md | 8 +
plugins/catalog-import/package.json | 2 +-
plugins/catalog-node/CHANGELOG.md | 7 +
plugins/catalog-node/package.json | 2 +-
plugins/catalog-react/CHANGELOG.md | 6 +
plugins/catalog-react/package.json | 2 +-
plugins/catalog/CHANGELOG.md | 8 +
plugins/catalog/package.json | 2 +-
.../CHANGELOG.md | 7 +
.../package.json | 2 +-
plugins/cicd-statistics/CHANGELOG.md | 7 +
plugins/cicd-statistics/package.json | 2 +-
plugins/circleci/CHANGELOG.md | 7 +
plugins/circleci/package.json | 2 +-
plugins/cloudbuild/CHANGELOG.md | 7 +
plugins/cloudbuild/package.json | 2 +-
plugins/code-climate/CHANGELOG.md | 7 +
plugins/code-climate/package.json | 2 +-
plugins/code-coverage-backend/CHANGELOG.md | 7 +
plugins/code-coverage-backend/package.json | 2 +-
plugins/code-coverage/CHANGELOG.md | 7 +
plugins/code-coverage/package.json | 2 +-
plugins/cost-insights/CHANGELOG.md | 7 +
plugins/cost-insights/package.json | 2 +-
plugins/devtools-backend/CHANGELOG.md | 11 +
plugins/devtools-backend/package.json | 2 +-
plugins/dynatrace/CHANGELOG.md | 7 +
plugins/dynatrace/package.json | 2 +-
plugins/entity-feedback-backend/CHANGELOG.md | 9 +
plugins/entity-feedback-backend/package.json | 2 +-
plugins/entity-feedback/CHANGELOG.md | 7 +
plugins/entity-feedback/package.json | 2 +-
plugins/entity-validation/CHANGELOG.md | 7 +
plugins/entity-validation/package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
.../events-backend-module-azure/CHANGELOG.md | 8 +
.../events-backend-module-azure/package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../events-backend-module-gerrit/CHANGELOG.md | 8 +
.../events-backend-module-gerrit/package.json | 2 +-
.../events-backend-module-github/CHANGELOG.md | 8 +
.../events-backend-module-github/package.json | 2 +-
.../events-backend-module-gitlab/CHANGELOG.md | 8 +
.../events-backend-module-gitlab/package.json | 2 +-
.../events-backend-test-utils/CHANGELOG.md | 7 +
.../events-backend-test-utils/package.json | 2 +-
plugins/events-backend/CHANGELOG.md | 9 +
plugins/events-backend/package.json | 2 +-
plugins/events-node/CHANGELOG.md | 7 +
plugins/events-node/package.json | 2 +-
.../example-todo-list-backend/CHANGELOG.md | 9 +
.../example-todo-list-backend/package.json | 2 +-
plugins/explore-backend/CHANGELOG.md | 9 +
plugins/explore-backend/package.json | 2 +-
plugins/explore/CHANGELOG.md | 8 +
plugins/explore/package.json | 2 +-
plugins/firehydrant/CHANGELOG.md | 7 +
plugins/firehydrant/package.json | 2 +-
plugins/fossa/CHANGELOG.md | 7 +
plugins/fossa/package.json | 2 +-
plugins/github-actions/CHANGELOG.md | 8 +
plugins/github-actions/package.json | 2 +-
plugins/github-deployments/CHANGELOG.md | 8 +
plugins/github-deployments/package.json | 2 +-
plugins/github-issues/CHANGELOG.md | 7 +
plugins/github-issues/package.json | 2 +-
.../github-pull-requests-board/CHANGELOG.md | 7 +
.../github-pull-requests-board/package.json | 2 +-
plugins/gocd/CHANGELOG.md | 7 +
plugins/gocd/package.json | 2 +-
plugins/graphql-backend/CHANGELOG.md | 7 +
plugins/graphql-backend/package.json | 2 +-
plugins/graphql-voyager/CHANGELOG.md | 6 +
plugins/graphql-voyager/package.json | 2 +-
plugins/home/CHANGELOG.md | 8 +
plugins/home/package.json | 2 +-
plugins/ilert/CHANGELOG.md | 7 +
plugins/ilert/package.json | 2 +-
plugins/jenkins-backend/CHANGELOG.md | 9 +
plugins/jenkins-backend/package.json | 2 +-
plugins/jenkins/CHANGELOG.md | 7 +
plugins/jenkins/package.json | 2 +-
plugins/kafka-backend/CHANGELOG.md | 8 +
plugins/kafka-backend/package.json | 2 +-
plugins/kafka/CHANGELOG.md | 7 +
plugins/kafka/package.json | 2 +-
plugins/kubernetes-backend/CHANGELOG.md | 11 +
plugins/kubernetes-backend/package.json | 2 +-
plugins/kubernetes/CHANGELOG.md | 7 +
plugins/kubernetes/package.json | 2 +-
plugins/lighthouse-backend/CHANGELOG.md | 10 +
plugins/lighthouse-backend/package.json | 2 +-
plugins/lighthouse/CHANGELOG.md | 7 +
plugins/lighthouse/package.json | 2 +-
plugins/linguist-backend/CHANGELOG.md | 16 +
plugins/linguist-backend/package.json | 2 +-
plugins/linguist-common/CHANGELOG.md | 6 +
plugins/linguist-common/package.json | 2 +-
plugins/linguist/CHANGELOG.md | 8 +
plugins/linguist/package.json | 2 +-
plugins/newrelic-dashboard/CHANGELOG.md | 7 +
plugins/newrelic-dashboard/package.json | 2 +-
plugins/nomad-backend/CHANGELOG.md | 7 +
plugins/nomad-backend/package.json | 2 +-
plugins/nomad/CHANGELOG.md | 7 +
plugins/nomad/package.json | 2 +-
plugins/octopus-deploy/CHANGELOG.md | 7 +
plugins/octopus-deploy/package.json | 2 +-
plugins/org-react/CHANGELOG.md | 7 +
plugins/org-react/package.json | 2 +-
plugins/org/CHANGELOG.md | 7 +
plugins/org/package.json | 2 +-
plugins/pagerduty/CHANGELOG.md | 8 +
plugins/pagerduty/package.json | 2 +-
plugins/periskop-backend/CHANGELOG.md | 8 +
plugins/periskop-backend/package.json | 2 +-
plugins/periskop/CHANGELOG.md | 7 +
plugins/periskop/package.json | 2 +-
plugins/permission-backend/CHANGELOG.md | 10 +
plugins/permission-backend/package.json | 2 +-
plugins/permission-node/CHANGELOG.md | 9 +
plugins/permission-node/package.json | 2 +-
plugins/playlist-backend/CHANGELOG.md | 9 +
plugins/playlist-backend/package.json | 2 +-
plugins/playlist/CHANGELOG.md | 7 +
plugins/playlist/package.json | 2 +-
plugins/proxy-backend/CHANGELOG.md | 12 +
plugins/proxy-backend/package.json | 2 +-
plugins/puppetdb/CHANGELOG.md | 7 +
plugins/puppetdb/package.json | 2 +-
plugins/rollbar-backend/CHANGELOG.md | 7 +
plugins/rollbar-backend/package.json | 2 +-
plugins/rollbar/CHANGELOG.md | 7 +
plugins/rollbar/package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../CHANGELOG.md | 7 +
.../package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../CHANGELOG.md | 7 +
.../package.json | 2 +-
.../CHANGELOG.md | 7 +
.../package.json | 2 +-
plugins/scaffolder-backend/CHANGELOG.md | 16 +
plugins/scaffolder-backend/package.json | 2 +-
plugins/scaffolder-node/CHANGELOG.md | 9 +
plugins/scaffolder-node/package.json | 2 +-
plugins/scaffolder-react/CHANGELOG.md | 7 +
plugins/scaffolder-react/package.json | 2 +-
plugins/scaffolder/CHANGELOG.md | 9 +
plugins/scaffolder/package.json | 2 +-
.../CHANGELOG.md | 12 +
.../package.json | 2 +-
.../CHANGELOG.md | 9 +
.../package.json | 2 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
plugins/search-backend-module-pg/CHANGELOG.md | 9 +
plugins/search-backend-module-pg/package.json | 2 +-
.../CHANGELOG.md | 13 +
.../package.json | 2 +-
plugins/search-backend-node/CHANGELOG.md | 9 +
plugins/search-backend-node/package.json | 2 +-
plugins/search-backend/CHANGELOG.md | 11 +
plugins/search-backend/package.json | 2 +-
plugins/search/CHANGELOG.md | 7 +
plugins/search/package.json | 2 +-
plugins/sentry/CHANGELOG.md | 7 +
plugins/sentry/package.json | 2 +-
plugins/sonarqube-backend/CHANGELOG.md | 7 +
plugins/sonarqube-backend/package.json | 2 +-
plugins/sonarqube/CHANGELOG.md | 7 +
plugins/sonarqube/package.json | 2 +-
plugins/splunk-on-call/CHANGELOG.md | 7 +
plugins/splunk-on-call/package.json | 2 +-
plugins/stack-overflow-backend/CHANGELOG.md | 7 +
plugins/stack-overflow-backend/package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
plugins/tech-insights-backend/CHANGELOG.md | 9 +
plugins/tech-insights-backend/package.json | 2 +-
plugins/tech-insights-node/CHANGELOG.md | 8 +
plugins/tech-insights-node/package.json | 2 +-
plugins/tech-insights/CHANGELOG.md | 7 +
plugins/tech-insights/package.json | 2 +-
.../techdocs-addons-test-utils/CHANGELOG.md | 9 +
.../techdocs-addons-test-utils/package.json | 2 +-
plugins/techdocs-backend/CHANGELOG.md | 10 +
plugins/techdocs-backend/package.json | 2 +-
plugins/techdocs-node/CHANGELOG.md | 7 +
plugins/techdocs-node/package.json | 2 +-
plugins/techdocs/CHANGELOG.md | 8 +
plugins/techdocs/package.json | 2 +-
plugins/todo-backend/CHANGELOG.md | 9 +
plugins/todo-backend/package.json | 2 +-
plugins/todo/CHANGELOG.md | 7 +
plugins/todo/package.json | 2 +-
plugins/user-settings-backend/CHANGELOG.md | 9 +
plugins/user-settings-backend/package.json | 2 +-
plugins/user-settings/CHANGELOG.md | 7 +
plugins/user-settings/package.json | 2 +-
plugins/vault-backend/CHANGELOG.md | 8 +
plugins/vault-backend/package.json | 2 +-
plugins/vault/CHANGELOG.md | 7 +
plugins/vault/package.json | 2 +-
316 files changed, 3046 insertions(+), 158 deletions(-)
create mode 100644 .changeset/create-app-1691503547.md
create mode 100644 docs/releases/v1.17.0-next.2-changelog.md
create mode 100644 plugins/app-node/CHANGELOG.md
diff --git a/.changeset/create-app-1691503547.md b/.changeset/create-app-1691503547.md
new file mode 100644
index 0000000000..b50d431d4b
--- /dev/null
+++ b/.changeset/create-app-1691503547.md
@@ -0,0 +1,5 @@
+---
+'@backstage/create-app': patch
+---
+
+Bumped create-app version.
diff --git a/.changeset/pre.json b/.changeset/pre.json
index 605f1ea771..64c8890ee2 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -230,26 +230,39 @@
"@backstage/plugin-vault-backend": "0.3.3",
"@backstage/plugin-xcmetrics": "0.2.40",
"@backstage/plugin-analytics-module-newrelic-browser": "0.0.0",
- "@backstage/plugin-catalog-backend-module-gcp": "0.0.0"
+ "@backstage/plugin-catalog-backend-module-gcp": "0.0.0",
+ "@backstage/plugin-app-node": "0.0.0"
},
"changesets": [
"analytics-millenial-whoop",
"angry-beers-relate",
+ "beige-files-reflect",
+ "brown-taxis-develop",
"chatty-foxes-buy",
"chatty-seahorses-juggle",
"chilly-keys-count",
"cold-numbers-sleep",
"create-app-1690284535",
"create-app-1690892926",
+ "create-app-1691503547",
+ "cuddly-colts-repeat",
"dirty-chefs-listen",
+ "fluffy-pens-prove",
+ "funny-dancers-deliver",
+ "gold-steaks-thank",
"gorgeous-months-doubt",
+ "hot-cats-rush",
"hungry-shrimps-care",
"khaki-flies-draw",
"kind-cougars-allow",
+ "large-badgers-switch",
"large-experts-poke",
"large-vans-cross",
+ "lazy-pugs-wash",
+ "little-penguins-build",
"loud-garlics-press",
"mean-squids-relax",
+ "metal-buttons-search",
"mighty-lions-search-2",
"mighty-lions-search-3",
"mighty-lions-search",
@@ -261,21 +274,31 @@
"quiet-starfishes-kick",
"rare-pens-exist",
"rich-zoos-occur",
+ "rotten-dolls-sing",
+ "rotten-rabbits-move",
"rude-feet-sparkle",
"search-donuts-wash",
"selfish-coats-shout",
"serious-bats-repair",
+ "serious-papayas-shout",
+ "serious-singers-vanish",
+ "seven-cougars-smash",
+ "sharp-months-think",
"slimy-kids-jam",
"smart-pandas-applaud",
+ "sour-hats-kick",
"stale-wombats-talk",
+ "strange-shrimps-mix",
"strong-bobcats-unite",
"stupid-berries-run",
+ "ten-lies-cheat",
"ten-otters-appear",
"tender-fireants-cheer",
"thin-yaks-hang",
"tidy-cobras-scream",
"tough-dolphins-care",
"tough-lies-float",
+ "unlucky-bags-pump",
"wild-timers-sparkle"
]
}
diff --git a/docs/releases/v1.17.0-next.2-changelog.md b/docs/releases/v1.17.0-next.2-changelog.md
new file mode 100644
index 0000000000..d1da6fa2be
--- /dev/null
+++ b/docs/releases/v1.17.0-next.2-changelog.md
@@ -0,0 +1,1430 @@
+# Release v1.17.0-next.2
+
+## @backstage/plugin-app-node@0.1.0-next.0
+
+### Minor Changes
+
+- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+
+## @backstage/plugin-catalog-backend@1.12.0-next.2
+
+### Minor Changes
+
+- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor`
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-linguist-backend@0.4.0-next.2
+
+### Minor Changes
+
+- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-proxy-backend@0.3.0-next.2
+
+### Minor Changes
+
+- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/backend-app-api@0.5.0-next.2
+
+### Patch Changes
+
+- e65c4896f755: Do not throw in backend.stop, if start failed
+- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
+## @backstage/backend-common@0.19.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
+## @backstage/backend-defaults@0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/backend-plugin-api@0.6.0-next.2
+
+### Patch Changes
+
+- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/backend-tasks@0.5.5-next.2
+
+### Patch Changes
+
+- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/backend-test-utils@0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/create-app@0.5.4-next.2
+
+### Patch Changes
+
+- Bumped create-app version.
+
+## @backstage/dev-utils@1.0.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @techdocs/cli@1.4.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
+## @backstage/plugin-adr@0.6.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-adr-backend@0.3.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-airbrake@0.3.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/dev-utils@1.0.18-next.2
+
+## @backstage/plugin-airbrake-backend@0.2.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-allure@0.1.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-api-docs@0.9.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+
+## @backstage/plugin-app-backend@0.3.48-next.2
+
+### Patch Changes
+
+- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options.
+- Updated dependencies
+ - @backstage/plugin-app-node@0.1.0-next.0
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
+## @backstage/plugin-auth-backend@0.18.6-next.2
+
+### Patch Changes
+
+- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors
+- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config.
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-auth-node@0.2.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-azure-devops@0.3.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-azure-devops-backend@0.3.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-azure-sites@0.1.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-azure-sites-backend@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-badges@0.2.45-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-badges-backend@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-bazaar@0.2.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/cli@0.22.10-next.1
+
+## @backstage/plugin-bazaar-backend@0.2.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-bitrise@0.1.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-catalog@1.12.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-catalog-backend-module-aws@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-azure@0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-bitbucket@0.2.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-gcp@0.1.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-gerrit@0.1.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-github@0.3.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-catalog-backend-module-gitlab@0.2.4-next.2
+
+### Patch Changes
+
+- 2fe1f5973ff7: Filter Gitlab archived projects through APIs
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-catalog-backend-module-ldap@0.5.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-msgraph@0.5.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-openapi@0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-puppetdb@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-catalog-graph@0.2.33-next.2
+
+### Patch Changes
+
+- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard.
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-catalog-import@0.9.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-catalog-node@1.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+
+## @backstage/plugin-catalog-react@1.8.1-next.1
+
+### Patch Changes
+
+- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer
+
+## @backstage/plugin-cicd-statistics@0.1.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-cicd-statistics-module-gitlab@0.1.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-cicd-statistics@0.1.23-next.1
+
+## @backstage/plugin-circleci@0.3.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-cloudbuild@0.3.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-code-climate@0.1.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-code-coverage@0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-code-coverage-backend@0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-cost-insights@0.12.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-devtools-backend@0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
+## @backstage/plugin-dynatrace@7.0.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-entity-feedback@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-entity-feedback-backend@0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-entity-validation@0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-events-backend@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-aws-sqs@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-azure@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-gerrit@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-github@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-module-gitlab@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-backend-test-utils@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.9-next.2
+
+## @backstage/plugin-events-node@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+
+## @backstage/plugin-explore@0.4.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-explore-react@0.0.30
+
+## @backstage/plugin-explore-backend@0.0.10-next.2
+
+### Patch Changes
+
+- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-explore@0.1.4-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-firehydrant@0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-fossa@0.2.53-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-github-actions@0.6.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-github-deployments@0.1.52-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-github-issues@0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-github-pull-requests-board@0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-gocd@0.1.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-graphql-backend@0.1.38-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-graphql-voyager@0.1.6-next.2
+
+### Patch Changes
+
+- bb1e1c2b26cc: Fix typo in install instructions.
+
+## @backstage/plugin-home@0.5.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-home-react@0.1.2-next.0
+
+## @backstage/plugin-ilert@0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-jenkins@0.8.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-jenkins-backend@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-kafka@0.3.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-kafka-backend@0.2.41-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-kubernetes@0.9.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-kubernetes-backend@0.11.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-lighthouse@0.4.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-lighthouse-backend@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-linguist@0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-linguist-common@0.1.1-next.1
+
+### Patch Changes
+
+- d440f1dd0e72: Exported new LanguageType type alias
+
+## @backstage/plugin-newrelic-dashboard@0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-nomad@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-nomad-backend@0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-octopus-deploy@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-org@0.6.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-org-react@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-pagerduty@0.6.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-home-react@0.1.2-next.0
+
+## @backstage/plugin-periskop@0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-periskop-backend@0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-permission-backend@0.5.23-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-permission-node@0.7.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-playlist@0.1.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-playlist-backend@0.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-puppetdb@0.1.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-rollbar@0.4.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-rollbar-backend@0.1.45-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-scaffolder@1.14.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-scaffolder-react@1.5.2-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-scaffolder-backend@1.15.2-next.2
+
+### Patch Changes
+
+- 33c76caef72a: Added examples for the fs:delete and fs:rename actions
+- 0b1d775be05b: Adds examples to a few scaffolder actions.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.24-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
+## @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-scaffolder-backend-module-sentry@0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
+## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
+## @backstage/plugin-scaffolder-node@0.1.6-next.2
+
+### Patch Changes
+
+- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-scaffolder-react@1.5.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-search@1.3.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-search-backend@1.4.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-search-backend-module-catalog@0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
+## @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
+## @backstage/plugin-search-backend-module-explore@0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
+## @backstage/plugin-search-backend-module-pg@0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
+## @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
+## @backstage/plugin-search-backend-node@1.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-sentry@0.5.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-sonarqube@0.7.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-sonarqube-backend@0.2.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-splunk-on-call@0.4.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-stack-overflow-backend@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-tech-insights@0.3.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-tech-insights-backend@0.5.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+
+## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+
+## @backstage/plugin-tech-insights-node@0.4.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-techdocs@1.6.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-techdocs-addons-test-utils@1.0.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/integration-react@1.1.16-next.1
+
+## @backstage/plugin-techdocs-backend@1.6.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
+## @backstage/plugin-techdocs-node@1.7.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
+## @backstage/plugin-todo@0.2.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-todo-backend@0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
+## @backstage/plugin-user-settings@0.7.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-user-settings-backend@0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## @backstage/plugin-vault@0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
+## @backstage/plugin-vault-backend@0.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
+## example-app@0.2.86-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-graph@0.2.33-next.2
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-linguist@0.1.6-next.2
+ - @backstage/plugin-adr@0.6.4-next.2
+ - @backstage/plugin-airbrake@0.3.21-next.2
+ - @backstage/plugin-api-docs@0.9.7-next.2
+ - @backstage/plugin-azure-devops@0.3.3-next.1
+ - @backstage/plugin-azure-sites@0.1.10-next.1
+ - @backstage/plugin-badges@0.2.45-next.1
+ - @internal/plugin-catalog-customized@0.0.13-next.2
+ - @backstage/plugin-catalog-import@0.9.11-next.2
+ - @backstage/plugin-circleci@0.3.21-next.1
+ - @backstage/plugin-cloudbuild@0.3.21-next.1
+ - @backstage/plugin-code-coverage@0.2.14-next.2
+ - @backstage/plugin-cost-insights@0.12.10-next.1
+ - @backstage/plugin-dynatrace@7.0.1-next.2
+ - @backstage/plugin-entity-feedback@0.2.4-next.2
+ - @backstage/plugin-explore@0.4.7-next.1
+ - @backstage/plugin-github-actions@0.6.2-next.2
+ - @backstage/plugin-gocd@0.1.27-next.1
+ - @backstage/plugin-home@0.5.5-next.1
+ - @backstage/plugin-jenkins@0.8.3-next.2
+ - @backstage/plugin-kafka@0.3.21-next.2
+ - @backstage/plugin-kubernetes@0.9.4-next.1
+ - @backstage/plugin-lighthouse@0.4.6-next.1
+ - @backstage/plugin-newrelic-dashboard@0.2.14-next.2
+ - @backstage/plugin-nomad@0.1.2-next.2
+ - @backstage/plugin-octopus-deploy@0.2.3-next.2
+ - @backstage/plugin-org@0.6.11-next.2
+ - @backstage/plugin-pagerduty@0.6.2-next.1
+ - @backstage/plugin-playlist@0.1.13-next.2
+ - @backstage/plugin-puppetdb@0.1.4-next.1
+ - @backstage/plugin-rollbar@0.4.21-next.1
+ - @backstage/plugin-scaffolder@1.14.2-next.2
+ - @backstage/plugin-scaffolder-react@1.5.2-next.1
+ - @backstage/plugin-search@1.3.4-next.1
+ - @backstage/plugin-sentry@0.5.6-next.1
+ - @backstage/plugin-tech-insights@0.3.13-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/plugin-todo@0.2.23-next.1
+ - @backstage/plugin-user-settings@0.7.6-next.1
+ - @backstage/cli@0.22.10-next.1
+ - @backstage/integration-react@1.1.16-next.1
+ - @backstage/plugin-apache-airflow@0.2.14-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.2-next.0
+ - @backstage/plugin-devtools@0.1.3-next.1
+ - @backstage/plugin-gcalendar@0.3.17-next.1
+ - @backstage/plugin-gcp-projects@0.3.40-next.0
+ - @backstage/plugin-graphiql@0.2.53-next.0
+ - @backstage/plugin-microsoft-calendar@0.1.6-next.1
+ - @backstage/plugin-newrelic@0.3.39-next.0
+ - @backstage/plugin-shortcuts@0.3.13-next.1
+ - @backstage/plugin-stack-overflow@0.1.19-next.1
+ - @backstage/plugin-stackstorm@0.1.5-next.0
+ - @backstage/plugin-tech-radar@0.6.7-next.0
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.16-next.1
+
+## example-backend@0.2.86-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-backend@0.18.6-next.2
+ - @backstage/plugin-scaffolder-backend@1.15.2-next.2
+ - @backstage/plugin-explore-backend@0.0.10-next.2
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/plugin-proxy-backend@0.3.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-app-backend@0.3.48-next.2
+ - @backstage/plugin-linguist-backend@0.4.0-next.2
+ - @backstage/plugin-techdocs-backend@1.6.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - example-app@0.2.86-next.2
+ - @backstage/plugin-adr-backend@0.3.6-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.27-next.2
+ - @backstage/plugin-badges-backend@0.2.3-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-devtools-backend@0.1.3-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.6-next.2
+ - @backstage/plugin-events-backend@0.2.9-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+ - @backstage/plugin-kafka-backend@0.2.41-next.2
+ - @backstage/plugin-kubernetes-backend@0.11.3-next.2
+ - @backstage/plugin-lighthouse-backend@0.2.4-next.2
+ - @backstage/plugin-permission-backend@0.5.23-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend@1.4.0-next.2
+ - @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2
+ - @backstage/plugin-search-backend-module-pg@0.5.9-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-todo-backend@0.2.0-next.2
+ - @backstage/plugin-tech-insights-backend@0.5.14-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+ - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/plugin-azure-sites-backend@0.1.10-next.2
+ - @backstage/plugin-code-coverage-backend@0.2.14-next.2
+ - @backstage/plugin-graphql-backend@0.1.38-next.2
+ - @backstage/plugin-jenkins-backend@0.2.3-next.2
+ - @backstage/plugin-nomad-backend@0.1.2-next.2
+ - @backstage/plugin-playlist-backend@0.3.4-next.2
+ - @backstage/plugin-rollbar-backend@0.1.45-next.2
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2
+
+## example-backend-next@0.0.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2
+ - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2
+ - @backstage/plugin-search-backend-module-explore@0.1.4-next.2
+ - @backstage/plugin-scaffolder-backend@1.15.2-next.2
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-proxy-backend@0.3.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-app-backend@0.3.48-next.2
+ - @backstage/plugin-linguist-backend@0.4.0-next.2
+ - @backstage/plugin-techdocs-backend@1.6.5-next.2
+ - @backstage/backend-defaults@0.2.0-next.2
+ - @backstage/plugin-adr-backend@0.3.6-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.27-next.2
+ - @backstage/plugin-badges-backend@0.2.3-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2
+ - @backstage/plugin-devtools-backend@0.1.3-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.6-next.2
+ - @backstage/plugin-kubernetes-backend@0.11.3-next.2
+ - @backstage/plugin-lighthouse-backend@0.2.4-next.2
+ - @backstage/plugin-permission-backend@0.5.23-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend@1.4.0-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-todo-backend@0.2.0-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
+## e2e-test@0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.5.4-next.2
+
+## techdocs-cli-embedded-app@0.2.85-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/cli@0.22.10-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
+## @internal/plugin-catalog-customized@0.0.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+
+## @internal/plugin-todo-list-backend@1.0.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
diff --git a/package.json b/package.json
index abaaec252c..e9813d113d 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"@types/react": "^17",
"@types/react-dom": "^17"
},
- "version": "1.17.0-next.1",
+ "version": "1.17.0-next.2",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3"
diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md
index c1886c92d5..12e3dada41 100644
--- a/packages/app/CHANGELOG.md
+++ b/packages/app/CHANGELOG.md
@@ -1,5 +1,68 @@
# example-app
+## 0.2.86-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-graph@0.2.33-next.2
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-linguist@0.1.6-next.2
+ - @backstage/plugin-adr@0.6.4-next.2
+ - @backstage/plugin-airbrake@0.3.21-next.2
+ - @backstage/plugin-api-docs@0.9.7-next.2
+ - @backstage/plugin-azure-devops@0.3.3-next.1
+ - @backstage/plugin-azure-sites@0.1.10-next.1
+ - @backstage/plugin-badges@0.2.45-next.1
+ - @internal/plugin-catalog-customized@0.0.13-next.2
+ - @backstage/plugin-catalog-import@0.9.11-next.2
+ - @backstage/plugin-circleci@0.3.21-next.1
+ - @backstage/plugin-cloudbuild@0.3.21-next.1
+ - @backstage/plugin-code-coverage@0.2.14-next.2
+ - @backstage/plugin-cost-insights@0.12.10-next.1
+ - @backstage/plugin-dynatrace@7.0.1-next.2
+ - @backstage/plugin-entity-feedback@0.2.4-next.2
+ - @backstage/plugin-explore@0.4.7-next.1
+ - @backstage/plugin-github-actions@0.6.2-next.2
+ - @backstage/plugin-gocd@0.1.27-next.1
+ - @backstage/plugin-home@0.5.5-next.1
+ - @backstage/plugin-jenkins@0.8.3-next.2
+ - @backstage/plugin-kafka@0.3.21-next.2
+ - @backstage/plugin-kubernetes@0.9.4-next.1
+ - @backstage/plugin-lighthouse@0.4.6-next.1
+ - @backstage/plugin-newrelic-dashboard@0.2.14-next.2
+ - @backstage/plugin-nomad@0.1.2-next.2
+ - @backstage/plugin-octopus-deploy@0.2.3-next.2
+ - @backstage/plugin-org@0.6.11-next.2
+ - @backstage/plugin-pagerduty@0.6.2-next.1
+ - @backstage/plugin-playlist@0.1.13-next.2
+ - @backstage/plugin-puppetdb@0.1.4-next.1
+ - @backstage/plugin-rollbar@0.4.21-next.1
+ - @backstage/plugin-scaffolder@1.14.2-next.2
+ - @backstage/plugin-scaffolder-react@1.5.2-next.1
+ - @backstage/plugin-search@1.3.4-next.1
+ - @backstage/plugin-sentry@0.5.6-next.1
+ - @backstage/plugin-tech-insights@0.3.13-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/plugin-todo@0.2.23-next.1
+ - @backstage/plugin-user-settings@0.7.6-next.1
+ - @backstage/cli@0.22.10-next.1
+ - @backstage/integration-react@1.1.16-next.1
+ - @backstage/plugin-apache-airflow@0.2.14-next.1
+ - @backstage/plugin-catalog-unprocessed-entities@0.1.2-next.0
+ - @backstage/plugin-devtools@0.1.3-next.1
+ - @backstage/plugin-gcalendar@0.3.17-next.1
+ - @backstage/plugin-gcp-projects@0.3.40-next.0
+ - @backstage/plugin-graphiql@0.2.53-next.0
+ - @backstage/plugin-microsoft-calendar@0.1.6-next.1
+ - @backstage/plugin-newrelic@0.3.39-next.0
+ - @backstage/plugin-shortcuts@0.3.13-next.1
+ - @backstage/plugin-stack-overflow@0.1.19-next.1
+ - @backstage/plugin-stackstorm@0.1.5-next.0
+ - @backstage/plugin-tech-radar@0.6.7-next.0
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.16-next.1
+
## 0.2.86-next.1
### Patch Changes
diff --git a/packages/app/package.json b/packages/app/package.json
index f33a5645b9..0528f33c68 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -1,6 +1,6 @@
{
"name": "example-app",
- "version": "0.2.86-next.1",
+ "version": "0.2.86-next.2",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md
index cbfbfef468..dd474ba143 100644
--- a/packages/backend-app-api/CHANGELOG.md
+++ b/packages/backend-app-api/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/backend-app-api
+## 0.5.0-next.2
+
+### Patch Changes
+
+- e65c4896f755: Do not throw in backend.stop, if start failed
+- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
## 0.5.0-next.1
### Minor Changes
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index d1f3f8ac43..c1f9d30f92 100644
--- a/packages/backend-app-api/package.json
+++ b/packages/backend-app-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-app-api",
"description": "Core API used by Backstage backend apps",
- "version": "0.5.0-next.1",
+ "version": "0.5.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md
index f0c6d75478..c11acc0966 100644
--- a/packages/backend-common/CHANGELOG.md
+++ b/packages/backend-common/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/backend-common
+## 0.19.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
## 0.19.2-next.1
### Patch Changes
diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json
index e18369b7e7..c8cb426eb3 100644
--- a/packages/backend-common/package.json
+++ b/packages/backend-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
- "version": "0.19.2-next.1",
+ "version": "0.19.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md
index 089f80d745..ceb931df2a 100644
--- a/packages/backend-defaults/CHANGELOG.md
+++ b/packages/backend-defaults/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/backend-defaults
+## 0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.0-next.1
### Minor Changes
diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json
index 5a89bb51f0..84e1d5c665 100644
--- a/packages/backend-defaults/package.json
+++ b/packages/backend-defaults/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-defaults",
"description": "Backend defaults used by Backstage backend apps",
- "version": "0.2.0-next.1",
+ "version": "0.2.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md
index a5eb6fe466..df26f26f50 100644
--- a/packages/backend-next/CHANGELOG.md
+++ b/packages/backend-next/CHANGELOG.md
@@ -1,5 +1,37 @@
# example-backend-next
+## 0.0.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2
+ - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2
+ - @backstage/plugin-search-backend-module-explore@0.1.4-next.2
+ - @backstage/plugin-scaffolder-backend@1.15.2-next.2
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-proxy-backend@0.3.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-app-backend@0.3.48-next.2
+ - @backstage/plugin-linguist-backend@0.4.0-next.2
+ - @backstage/plugin-techdocs-backend@1.6.5-next.2
+ - @backstage/backend-defaults@0.2.0-next.2
+ - @backstage/plugin-adr-backend@0.3.6-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.27-next.2
+ - @backstage/plugin-badges-backend@0.2.3-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2
+ - @backstage/plugin-devtools-backend@0.1.3-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.6-next.2
+ - @backstage/plugin-kubernetes-backend@0.11.3-next.2
+ - @backstage/plugin-lighthouse-backend@0.2.4-next.2
+ - @backstage/plugin-permission-backend@0.5.23-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend@1.4.0-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-todo-backend@0.2.0-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.0.14-next.1
### Patch Changes
diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json
index f36f90998b..8548294398 100644
--- a/packages/backend-next/package.json
+++ b/packages/backend-next/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend-next",
- "version": "0.0.14-next.1",
+ "version": "0.0.14-next.2",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md
index 510797672c..4e64cca8ee 100644
--- a/packages/backend-plugin-api/CHANGELOG.md
+++ b/packages/backend-plugin-api/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/backend-plugin-api
+## 0.6.0-next.2
+
+### Patch Changes
+
+- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.6.0-next.1
### Minor Changes
diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json
index 555c60c8e4..86eb1135f4 100644
--- a/packages/backend-plugin-api/package.json
+++ b/packages/backend-plugin-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-plugin-api",
"description": "Core API used by Backstage backend plugins",
- "version": "0.6.0-next.1",
+ "version": "0.6.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md
index 05e51c661c..f2f558f084 100644
--- a/packages/backend-tasks/CHANGELOG.md
+++ b/packages/backend-tasks/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/backend-tasks
+## 0.5.5-next.2
+
+### Patch Changes
+
+- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.5.5-next.1
### Patch Changes
diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json
index 9dd2c9e557..aaba56f48e 100644
--- a/packages/backend-tasks/package.json
+++ b/packages/backend-tasks/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-tasks",
"description": "Common distributed task management library for Backstage backends",
- "version": "0.5.5-next.1",
+ "version": "0.5.5-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md
index 78a8e7cd6d..7cff4e8f6b 100644
--- a/packages/backend-test-utils/CHANGELOG.md
+++ b/packages/backend-test-utils/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/backend-test-utils
+## 0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.5.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.2.0-next.1
### Minor Changes
diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json
index beebf06624..9f59962a8a 100644
--- a/packages/backend-test-utils/package.json
+++ b/packages/backend-test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-test-utils",
"description": "Test helpers library for Backstage backends",
- "version": "0.2.0-next.1",
+ "version": "0.2.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md
index 84c802ae58..14ad991533 100644
--- a/packages/backend/CHANGELOG.md
+++ b/packages/backend/CHANGELOG.md
@@ -1,5 +1,54 @@
# example-backend
+## 0.2.86-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-backend@0.18.6-next.2
+ - @backstage/plugin-scaffolder-backend@1.15.2-next.2
+ - @backstage/plugin-explore-backend@0.0.10-next.2
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/plugin-proxy-backend@0.3.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-app-backend@0.3.48-next.2
+ - @backstage/plugin-linguist-backend@0.4.0-next.2
+ - @backstage/plugin-techdocs-backend@1.6.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - example-app@0.2.86-next.2
+ - @backstage/plugin-adr-backend@0.3.6-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.27-next.2
+ - @backstage/plugin-badges-backend@0.2.3-next.2
+ - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-devtools-backend@0.1.3-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.6-next.2
+ - @backstage/plugin-events-backend@0.2.9-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+ - @backstage/plugin-kafka-backend@0.2.41-next.2
+ - @backstage/plugin-kubernetes-backend@0.11.3-next.2
+ - @backstage/plugin-lighthouse-backend@0.2.4-next.2
+ - @backstage/plugin-permission-backend@0.5.23-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend@1.4.0-next.2
+ - @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2
+ - @backstage/plugin-search-backend-module-pg@0.5.9-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-todo-backend@0.2.0-next.2
+ - @backstage/plugin-tech-insights-backend@0.5.14-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+ - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/plugin-azure-sites-backend@0.1.10-next.2
+ - @backstage/plugin-code-coverage-backend@0.2.14-next.2
+ - @backstage/plugin-graphql-backend@0.1.38-next.2
+ - @backstage/plugin-jenkins-backend@0.2.3-next.2
+ - @backstage/plugin-nomad-backend@0.1.2-next.2
+ - @backstage/plugin-playlist-backend@0.3.4-next.2
+ - @backstage/plugin-rollbar-backend@0.1.45-next.2
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2
+
## 0.2.86-next.1
### Patch Changes
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 4f5b896d27..965da35ee3 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend",
- "version": "0.2.86-next.1",
+ "version": "0.2.86-next.2",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md
index eb2f048d62..978911ed3e 100644
--- a/packages/create-app/CHANGELOG.md
+++ b/packages/create-app/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/create-app
+## 0.5.4-next.2
+
+### Patch Changes
+
+- Bumped create-app version.
+
## 0.5.4-next.1
### Patch Changes
diff --git a/packages/create-app/package.json b/packages/create-app/package.json
index de1a9791ae..62d455b7db 100644
--- a/packages/create-app/package.json
+++ b/packages/create-app/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "A CLI that helps you create your own Backstage app",
- "version": "0.5.4-next.1",
+ "version": "0.5.4-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md
index 132f330d8f..cc1b274d98 100644
--- a/packages/dev-utils/CHANGELOG.md
+++ b/packages/dev-utils/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/dev-utils
+## 1.0.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 1.0.18-next.1
### Patch Changes
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index 730d8ffe4e..b5cc72bfcd 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/dev-utils",
"description": "Utilities for developing Backstage plugins.",
- "version": "1.0.18-next.1",
+ "version": "1.0.18-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md
index a334051aae..5b3930f0af 100644
--- a/packages/e2e-test/CHANGELOG.md
+++ b/packages/e2e-test/CHANGELOG.md
@@ -1,5 +1,12 @@
# e2e-test
+## 0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.5.4-next.2
+
## 0.2.6-next.1
### Patch Changes
diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json
index 3708f1bae4..64ee370d8a 100644
--- a/packages/e2e-test/package.json
+++ b/packages/e2e-test/package.json
@@ -1,7 +1,7 @@
{
"name": "e2e-test",
"description": "E2E test for verifying Backstage packages",
- "version": "0.2.6-next.1",
+ "version": "0.2.6-next.2",
"private": true,
"backstage": {
"role": "cli"
diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md
index 915d54fec3..8e1d2bcaa8 100644
--- a/packages/techdocs-cli-embedded-app/CHANGELOG.md
+++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md
@@ -1,5 +1,15 @@
# techdocs-cli-embedded-app
+## 0.2.85-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/cli@0.22.10-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 0.2.85-next.1
### Patch Changes
diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json
index d980d2ab6c..8a8675f3e8 100644
--- a/packages/techdocs-cli-embedded-app/package.json
+++ b/packages/techdocs-cli-embedded-app/package.json
@@ -1,6 +1,6 @@
{
"name": "techdocs-cli-embedded-app",
- "version": "0.2.85-next.1",
+ "version": "0.2.85-next.2",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md
index ec0678b2d6..e41e16b4d3 100644
--- a/packages/techdocs-cli/CHANGELOG.md
+++ b/packages/techdocs-cli/CHANGELOG.md
@@ -1,5 +1,13 @@
# @techdocs/cli
+## 1.4.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
## 1.4.5-next.1
### Patch Changes
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index 82ba61e0f6..5968deddfb 100644
--- a/packages/techdocs-cli/package.json
+++ b/packages/techdocs-cli/package.json
@@ -1,7 +1,7 @@
{
"name": "@techdocs/cli",
"description": "Utility CLI for managing TechDocs sites in Backstage.",
- "version": "1.4.5-next.1",
+ "version": "1.4.5-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md
index 07b40ac349..574d649a67 100644
--- a/plugins/adr-backend/CHANGELOG.md
+++ b/plugins/adr-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-adr-backend
+## 0.3.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.3.6-next.1
### Patch Changes
diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json
index 0caa9563d8..9af7a1e617 100644
--- a/plugins/adr-backend/package.json
+++ b/plugins/adr-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr-backend",
- "version": "0.3.6-next.1",
+ "version": "0.3.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md
index 57f888eaa7..976b9ef238 100644
--- a/plugins/adr/CHANGELOG.md
+++ b/plugins/adr/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-adr
+## 0.6.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 0.6.4-next.1
### Patch Changes
diff --git a/plugins/adr/package.json b/plugins/adr/package.json
index 84d5080a4a..c280e87bc9 100644
--- a/plugins/adr/package.json
+++ b/plugins/adr/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr",
- "version": "0.6.4-next.1",
+ "version": "0.6.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md
index 3892e5563b..c283d99987 100644
--- a/plugins/airbrake-backend/CHANGELOG.md
+++ b/plugins/airbrake-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-airbrake-backend
+## 0.2.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.21-next.1
### Patch Changes
diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json
index f3ff319d65..17ddf81297 100644
--- a/plugins/airbrake-backend/package.json
+++ b/plugins/airbrake-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake-backend",
- "version": "0.2.21-next.1",
+ "version": "0.2.21-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md
index 5ef51bc443..ca3c39d275 100644
--- a/plugins/airbrake/CHANGELOG.md
+++ b/plugins/airbrake/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-airbrake
+## 0.3.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/dev-utils@1.0.18-next.2
+
## 0.3.21-next.1
### Patch Changes
diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json
index 72f3bc6094..1cbefe43b7 100644
--- a/plugins/airbrake/package.json
+++ b/plugins/airbrake/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake",
- "version": "0.3.21-next.1",
+ "version": "0.3.21-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md
index 8bbf800b78..b53cd64d52 100644
--- a/plugins/allure/CHANGELOG.md
+++ b/plugins/allure/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-allure
+## 0.1.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.37-next.1
### Patch Changes
diff --git a/plugins/allure/package.json b/plugins/allure/package.json
index 730347cf8c..71458aa0f1 100644
--- a/plugins/allure/package.json
+++ b/plugins/allure/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-allure",
"description": "A Backstage plugin that integrates with Allure",
- "version": "0.1.37-next.1",
+ "version": "0.1.37-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md
index 7ed022f59e..d7d002739a 100644
--- a/plugins/api-docs/CHANGELOG.md
+++ b/plugins/api-docs/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-api-docs
+## 0.9.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+
## 0.9.7-next.1
### Patch Changes
diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json
index 8d67619aa9..43af4da872 100644
--- a/plugins/api-docs/package.json
+++ b/plugins/api-docs/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-api-docs",
"description": "A Backstage plugin that helps represent API entities in the frontend",
- "version": "0.9.7-next.1",
+ "version": "0.9.7-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md
index a92677ab41..eb570e4153 100644
--- a/plugins/app-backend/CHANGELOG.md
+++ b/plugins/app-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-app-backend
+## 0.3.48-next.2
+
+### Patch Changes
+
+- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options.
+- Updated dependencies
+ - @backstage/plugin-app-node@0.1.0-next.0
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
## 0.3.48-next.1
### Patch Changes
diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json
index be1b6b3a80..0000cfdcb1 100644
--- a/plugins/app-backend/package.json
+++ b/plugins/app-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-app-backend",
"description": "A Backstage backend plugin that serves the Backstage frontend app",
- "version": "0.3.48-next.1",
+ "version": "0.3.48-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md
new file mode 100644
index 0000000000..cd67ddf91d
--- /dev/null
+++ b/plugins/app-node/CHANGELOG.md
@@ -0,0 +1,12 @@
+# @backstage/plugin-app-node
+
+## 0.1.0-next.0
+
+### Minor Changes
+
+- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json
index c971bdb628..106b3bdb01 100644
--- a/plugins/app-node/package.json
+++ b/plugins/app-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-app-node",
"description": "Node.js library for the app plugin",
- "version": "0.0.0",
+ "version": "0.1.0-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md
index 478570bb31..c8900b6df6 100644
--- a/plugins/auth-backend/CHANGELOG.md
+++ b/plugins/auth-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-auth-backend
+## 0.18.6-next.2
+
+### Patch Changes
+
+- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors
+- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config.
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.18.6-next.1
### Patch Changes
diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json
index 2a3b80de6a..1ad8d6c0c0 100644
--- a/plugins/auth-backend/package.json
+++ b/plugins/auth-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-auth-backend",
"description": "A Backstage backend plugin that handles authentication",
- "version": "0.18.6-next.1",
+ "version": "0.18.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md
index f19e99feab..9cfd5c28d9 100644
--- a/plugins/auth-node/CHANGELOG.md
+++ b/plugins/auth-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-auth-node
+## 0.2.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.17-next.1
### Patch Changes
diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json
index ab98ce1e7f..f57ff4e2fb 100644
--- a/plugins/auth-node/package.json
+++ b/plugins/auth-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-auth-node",
- "version": "0.2.17-next.1",
+ "version": "0.2.17-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md
index c961856b7b..0cd3b2eed5 100644
--- a/plugins/azure-devops-backend/CHANGELOG.md
+++ b/plugins/azure-devops-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-azure-devops-backend
+## 0.3.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.3.27-next.1
### Patch Changes
diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json
index 857b1643b3..2702d38539 100644
--- a/plugins/azure-devops-backend/package.json
+++ b/plugins/azure-devops-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-backend",
- "version": "0.3.27-next.1",
+ "version": "0.3.27-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md
index 1b405ad870..46583f66b2 100644
--- a/plugins/azure-devops/CHANGELOG.md
+++ b/plugins/azure-devops/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-azure-devops
+## 0.3.3-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.3.3-next.0
### Patch Changes
diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json
index daaedae825..abc08d6c65 100644
--- a/plugins/azure-devops/package.json
+++ b/plugins/azure-devops/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops",
- "version": "0.3.3-next.0",
+ "version": "0.3.3-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md
index 4a025ba54e..4ce541ce02 100644
--- a/plugins/azure-sites-backend/CHANGELOG.md
+++ b/plugins/azure-sites-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-azure-sites-backend
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json
index 93cdffe8a5..178a207071 100644
--- a/plugins/azure-sites-backend/package.json
+++ b/plugins/azure-sites-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-sites-backend",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md
index 636c69c76a..4faef98d4f 100644
--- a/plugins/azure-sites/CHANGELOG.md
+++ b/plugins/azure-sites/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-azure-sites
+## 0.1.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.10-next.0
### Patch Changes
diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json
index 82b1bd1041..35b1bf365d 100644
--- a/plugins/azure-sites/package.json
+++ b/plugins/azure-sites/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-sites",
- "version": "0.1.10-next.0",
+ "version": "0.1.10-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md
index 4645a45090..531cf25310 100644
--- a/plugins/badges-backend/CHANGELOG.md
+++ b/plugins/badges-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-badges-backend
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json
index f68854b9f6..a3f822ef95 100644
--- a/plugins/badges-backend/package.json
+++ b/plugins/badges-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges-backend",
"description": "A Backstage backend plugin that generates README badges for your entities",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md
index 5d7527fba4..970344653a 100644
--- a/plugins/badges/CHANGELOG.md
+++ b/plugins/badges/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-badges
+## 0.2.45-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.45-next.0
### Patch Changes
diff --git a/plugins/badges/package.json b/plugins/badges/package.json
index 79add2944c..dc288eb4d0 100644
--- a/plugins/badges/package.json
+++ b/plugins/badges/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges",
"description": "A Backstage plugin that generates README badges for your entities",
- "version": "0.2.45-next.0",
+ "version": "0.2.45-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md
index f505eb9b81..70b9ea1a21 100644
--- a/plugins/bazaar-backend/CHANGELOG.md
+++ b/plugins/bazaar-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-bazaar-backend
+## 0.2.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.2.11-next.1
### Patch Changes
diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json
index 6532c6c291..5dacefc140 100644
--- a/plugins/bazaar-backend/package.json
+++ b/plugins/bazaar-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar-backend",
- "version": "0.2.11-next.1",
+ "version": "0.2.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md
index b9e8e4001e..519b5aa753 100644
--- a/plugins/bazaar/CHANGELOG.md
+++ b/plugins/bazaar/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-bazaar
+## 0.2.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/cli@0.22.10-next.1
+
## 0.2.12-next.1
### Patch Changes
diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json
index d0f26d68f0..252c1c037f 100644
--- a/plugins/bazaar/package.json
+++ b/plugins/bazaar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar",
- "version": "0.2.12-next.1",
+ "version": "0.2.12-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md
index 51a286ff26..bb1cf3b072 100644
--- a/plugins/bitrise/CHANGELOG.md
+++ b/plugins/bitrise/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-bitrise
+## 0.1.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.48-next.1
### Patch Changes
diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json
index 1ee1d7efbe..f499ec6dd5 100644
--- a/plugins/bitrise/package.json
+++ b/plugins/bitrise/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-bitrise",
"description": "A Backstage plugin that integrates towards Bitrise",
- "version": "0.1.48-next.1",
+ "version": "0.1.48-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md
index 09d7823993..49df1ca628 100644
--- a/plugins/catalog-backend-module-aws/CHANGELOG.md
+++ b/plugins/catalog-backend-module-aws/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-aws
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json
index bd5377fb67..c470b30e70 100644
--- a/plugins/catalog-backend-module-aws/package.json
+++ b/plugins/catalog-backend-module-aws/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-aws",
"description": "A Backstage catalog backend module that helps integrate towards AWS",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md
index bf2ce7bb76..48bd1452d5 100644
--- a/plugins/catalog-backend-module-azure/CHANGELOG.md
+++ b/plugins/catalog-backend-module-azure/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-azure
+## 0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.19-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json
index fe9cb9a7cc..9c91403165 100644
--- a/plugins/catalog-backend-module-azure/package.json
+++ b/plugins/catalog-backend-module-azure/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-azure",
"description": "A Backstage catalog backend module that helps integrate towards Azure",
- "version": "0.1.19-next.1",
+ "version": "0.1.19-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
index 593e1fd2a1..2aceb188be 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-backend-module-bitbucket-cloud
+## 0.1.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.15-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json
index 30875be251..6806ce1184 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/package.json
+++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud",
- "version": "0.1.15-next.1",
+ "version": "0.1.15-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
index 52920ff815..feb0a2f984 100644
--- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-bitbucket-server
+## 0.1.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.13-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json
index ac28eecc36..cd1d19cd90 100644
--- a/plugins/catalog-backend-module-bitbucket-server/package.json
+++ b/plugins/catalog-backend-module-bitbucket-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket-server",
- "version": "0.1.13-next.1",
+ "version": "0.1.13-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
index 5b1e75e86d..d7b456e3ee 100644
--- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-backend-module-bitbucket
+## 0.2.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.2.15-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json
index 53d80eb89e..fb641a5af9 100644
--- a/plugins/catalog-backend-module-bitbucket/package.json
+++ b/plugins/catalog-backend-module-bitbucket/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket",
- "version": "0.2.15-next.1",
+ "version": "0.2.15-next.2",
"deprecated": true,
"main": "src/index.ts",
"types": "src/index.ts",
diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md
index 7fd00d048d..3885e371a2 100644
--- a/plugins/catalog-backend-module-gcp/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-gcp
+## 0.1.0-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.0-next.0
### Minor Changes
diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json
index 7ddb7d7b97..24f7dd0a25 100644
--- a/plugins/catalog-backend-module-gcp/package.json
+++ b/plugins/catalog-backend-module-gcp/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-gcp",
"description": "A Backstage catalog backend module that helps integrate towards GCP",
- "version": "0.1.0-next.0",
+ "version": "0.1.0-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
index 3f7d7a8dd3..54ed3b5a02 100644
--- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-gerrit
+## 0.1.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.16-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json
index f9566da0e2..f0cafe2c9e 100644
--- a/plugins/catalog-backend-module-gerrit/package.json
+++ b/plugins/catalog-backend-module-gerrit/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend-module-gerrit",
- "version": "0.1.16-next.1",
+ "version": "0.1.16-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md
index af93dd5419..fbee4b92d6 100644
--- a/plugins/catalog-backend-module-github/CHANGELOG.md
+++ b/plugins/catalog-backend-module-github/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-catalog-backend-module-github
+## 0.3.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.3.3-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json
index b05630862c..08214b0342 100644
--- a/plugins/catalog-backend-module-github/package.json
+++ b/plugins/catalog-backend-module-github/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-github",
"description": "A Backstage catalog backend module that helps integrate towards GitHub",
- "version": "0.3.3-next.1",
+ "version": "0.3.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
index d92ddbce43..a1f7d0265e 100644
--- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-backend-module-gitlab
+## 0.2.4-next.2
+
+### Patch Changes
+
+- 2fe1f5973ff7: Filter Gitlab archived projects through APIs
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json
index 1465b430ae..08f4d8b897 100644
--- a/plugins/catalog-backend-module-gitlab/package.json
+++ b/plugins/catalog-backend-module-gitlab/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-gitlab",
"description": "A Backstage catalog backend module that helps integrate towards GitLab",
- "version": "0.2.4-next.1",
+ "version": "0.2.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
index 0cc4dc584d..3e33f19f54 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-catalog-backend-module-incremental-ingestion
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.4.1-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json
index d4cae08da0..aa664151d8 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/package.json
+++ b/plugins/catalog-backend-module-incremental-ingestion/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-incremental-ingestion",
"description": "An entity provider for streaming large asset sources into the catalog",
- "version": "0.4.1-next.1",
+ "version": "0.4.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md
index 9cb5788b30..bb411cc81d 100644
--- a/plugins/catalog-backend-module-ldap/CHANGELOG.md
+++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-backend-module-ldap
+## 0.5.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.5.15-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json
index 8a963923ff..a9cf8c6079 100644
--- a/plugins/catalog-backend-module-ldap/package.json
+++ b/plugins/catalog-backend-module-ldap/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-ldap",
"description": "A Backstage catalog backend module that helps integrate towards LDAP",
- "version": "0.5.15-next.1",
+ "version": "0.5.15-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
index f2e0173a13..c37c228dc4 100644
--- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md
+++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-msgraph
+## 0.5.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.5.7-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json
index 002531f141..e5a61ae54d 100644
--- a/plugins/catalog-backend-module-msgraph/package.json
+++ b/plugins/catalog-backend-module-msgraph/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-msgraph",
"description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph",
- "version": "0.5.7-next.1",
+ "version": "0.5.7-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md
index 1e63a1193d..c9cbc11199 100644
--- a/plugins/catalog-backend-module-openapi/CHANGELOG.md
+++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-catalog-backend-module-openapi
+## 0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json
index 13f0305cae..8fbe3840c5 100644
--- a/plugins/catalog-backend-module-openapi/package.json
+++ b/plugins/catalog-backend-module-openapi/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-openapi",
"description": "A Backstage catalog backend module that helps with OpenAPI specifications",
- "version": "0.1.14-next.1",
+ "version": "0.1.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
index 8d86cc9c2f..6fab80842e 100644
--- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
+++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-puppetdb
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json
index d17b788737..938ea30f24 100644
--- a/plugins/catalog-backend-module-puppetdb/package.json
+++ b/plugins/catalog-backend-module-puppetdb/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-puppetdb",
"description": "A Backstage catalog backend module that helps integrate towards PuppetDB",
- "version": "0.1.5-next.1",
+ "version": "0.1.5-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md
index 0e4ac7a0e2..c54fd24a21 100644
--- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md
+++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-backend-module-unprocessed
+## 0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.2.0-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json
index 6052015439..429f778677 100644
--- a/plugins/catalog-backend-module-unprocessed/package.json
+++ b/plugins/catalog-backend-module-unprocessed/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-unprocessed",
"description": "Backstage Catalog module to view unprocessed entities",
- "version": "0.2.0-next.1",
+ "version": "0.2.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md
index cedbc1ed08..83a15e0d83 100644
--- a/plugins/catalog-backend/CHANGELOG.md
+++ b/plugins/catalog-backend/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-catalog-backend
+## 1.12.0-next.2
+
+### Minor Changes
+
+- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor`
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 1.12.0-next.1
### Minor Changes
diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json
index 2fee3c3a46..9585d79bb1 100644
--- a/plugins/catalog-backend/package.json
+++ b/plugins/catalog-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend",
"description": "The Backstage backend plugin that provides the Backstage catalog",
- "version": "1.12.0-next.1",
+ "version": "1.12.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md
index a488e91148..f74079973b 100644
--- a/plugins/catalog-customized/CHANGELOG.md
+++ b/plugins/catalog-customized/CHANGELOG.md
@@ -1,5 +1,13 @@
# @internal/plugin-catalog-customized
+## 0.0.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-catalog@1.12.1-next.2
+
## 0.0.13-next.1
### Patch Changes
diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json
index c849e6c2a3..695f964d1f 100644
--- a/plugins/catalog-customized/package.json
+++ b/plugins/catalog-customized/package.json
@@ -1,7 +1,7 @@
{
"name": "@internal/plugin-catalog-customized",
"description": "The internal Backstage Customizable plugin for browsing the Backstage catalog",
- "version": "0.0.13-next.1",
+ "version": "0.0.13-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md
index 118600f318..ec1ceb76d5 100644
--- a/plugins/catalog-graph/CHANGELOG.md
+++ b/plugins/catalog-graph/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-graph
+## 0.2.33-next.2
+
+### Patch Changes
+
+- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard.
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.33-next.1
### Patch Changes
diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json
index 0e8f891dab..4f815fce82 100644
--- a/plugins/catalog-graph/package.json
+++ b/plugins/catalog-graph/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-graph",
- "version": "0.2.33-next.1",
+ "version": "0.2.33-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md
index 139c8b0615..90cd7012d9 100644
--- a/plugins/catalog-import/CHANGELOG.md
+++ b/plugins/catalog-import/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-import
+## 0.9.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 0.9.11-next.1
### Patch Changes
diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json
index 55d596c955..dc31a37e17 100644
--- a/plugins/catalog-import/package.json
+++ b/plugins/catalog-import/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-import",
"description": "A Backstage plugin the helps you import entities into your catalog",
- "version": "0.9.11-next.1",
+ "version": "0.9.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md
index 6299cd2424..852650f62b 100644
--- a/plugins/catalog-node/CHANGELOG.md
+++ b/plugins/catalog-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-catalog-node
+## 1.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+
## 1.4.1-next.1
### Patch Changes
diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json
index 5a10c9e000..9575fb05a2 100644
--- a/plugins/catalog-node/package.json
+++ b/plugins/catalog-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-node",
"description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend",
- "version": "1.4.1-next.1",
+ "version": "1.4.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md
index 6ae43f297c..9699a4a62d 100644
--- a/plugins/catalog-react/CHANGELOG.md
+++ b/plugins/catalog-react/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/plugin-catalog-react
+## 1.8.1-next.1
+
+### Patch Changes
+
+- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer
+
## 1.8.1-next.0
### Patch Changes
diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json
index 67a3409830..e9bc8d249e 100644
--- a/plugins/catalog-react/package.json
+++ b/plugins/catalog-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-react",
"description": "A frontend library that helps other Backstage plugins interact with the catalog",
- "version": "1.8.1-next.0",
+ "version": "1.8.1-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md
index 88d0651a03..64215a213c 100644
--- a/plugins/catalog/CHANGELOG.md
+++ b/plugins/catalog/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog
+## 1.12.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 1.12.1-next.1
### Patch Changes
diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json
index a27cb26f77..985616be8d 100644
--- a/plugins/catalog/package.json
+++ b/plugins/catalog/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog",
"description": "The Backstage plugin for browsing the Backstage catalog",
- "version": "1.12.1-next.1",
+ "version": "1.12.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
index f6c2ea06a6..25744f9bdf 100644
--- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
+++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-cicd-statistics-module-gitlab
+## 0.1.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-cicd-statistics@0.1.23-next.1
+
## 0.1.17-next.1
### Patch Changes
diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json
index f7c34ade60..39d9aadc22 100644
--- a/plugins/cicd-statistics-module-gitlab/package.json
+++ b/plugins/cicd-statistics-module-gitlab/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cicd-statistics-module-gitlab",
"description": "CI/CD Statistics plugin module; Gitlab CICD",
- "version": "0.1.17-next.1",
+ "version": "0.1.17-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md
index bdfe0cd1a9..aac48e8190 100644
--- a/plugins/cicd-statistics/CHANGELOG.md
+++ b/plugins/cicd-statistics/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-cicd-statistics
+## 0.1.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.23-next.0
### Patch Changes
diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json
index 6bd94c67e2..d98b6d9dac 100644
--- a/plugins/cicd-statistics/package.json
+++ b/plugins/cicd-statistics/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cicd-statistics",
"description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)",
- "version": "0.1.23-next.0",
+ "version": "0.1.23-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md
index c4a429ec47..f4dce44764 100644
--- a/plugins/circleci/CHANGELOG.md
+++ b/plugins/circleci/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-circleci
+## 0.3.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.3.21-next.0
### Patch Changes
diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json
index 68066ae890..50c6dd71fa 100644
--- a/plugins/circleci/package.json
+++ b/plugins/circleci/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-circleci",
"description": "A Backstage plugin that integrates towards Circle CI",
- "version": "0.3.21-next.0",
+ "version": "0.3.21-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md
index ebd4d6bc54..e59626fbe0 100644
--- a/plugins/cloudbuild/CHANGELOG.md
+++ b/plugins/cloudbuild/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-cloudbuild
+## 0.3.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.3.21-next.0
### Patch Changes
diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json
index 6a487c5494..bdb4541e9b 100644
--- a/plugins/cloudbuild/package.json
+++ b/plugins/cloudbuild/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cloudbuild",
"description": "A Backstage plugin that integrates towards Google Cloud Build",
- "version": "0.3.21-next.0",
+ "version": "0.3.21-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md
index 72d15c9730..33470a2191 100644
--- a/plugins/code-climate/CHANGELOG.md
+++ b/plugins/code-climate/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-code-climate
+## 0.1.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.21-next.1
### Patch Changes
diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json
index 3782e25a5a..ca1800b897 100644
--- a/plugins/code-climate/package.json
+++ b/plugins/code-climate/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-code-climate",
- "version": "0.1.21-next.1",
+ "version": "0.1.21-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md
index b2fd302e8c..52eddd9afe 100644
--- a/plugins/code-coverage-backend/CHANGELOG.md
+++ b/plugins/code-coverage-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-code-coverage-backend
+## 0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.14-next.1
### Patch Changes
diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json
index 6b366ab312..67b1fc1d2f 100644
--- a/plugins/code-coverage-backend/package.json
+++ b/plugins/code-coverage-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-code-coverage-backend",
"description": "A Backstage backend plugin that helps you keep track of your code coverage",
- "version": "0.2.14-next.1",
+ "version": "0.2.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md
index 28c8abef54..fce7d9a4b2 100644
--- a/plugins/code-coverage/CHANGELOG.md
+++ b/plugins/code-coverage/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-code-coverage
+## 0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.14-next.1
### Patch Changes
diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json
index 8e2b111878..ea14a18b87 100644
--- a/plugins/code-coverage/package.json
+++ b/plugins/code-coverage/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-code-coverage",
"description": "A Backstage plugin that helps you keep track of your code coverage",
- "version": "0.2.14-next.1",
+ "version": "0.2.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md
index 98a48380ee..687528e3fd 100644
--- a/plugins/cost-insights/CHANGELOG.md
+++ b/plugins/cost-insights/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-cost-insights
+## 0.12.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.12.10-next.0
### Patch Changes
diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json
index b87b3db435..e626e8e173 100644
--- a/plugins/cost-insights/package.json
+++ b/plugins/cost-insights/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cost-insights",
"description": "A Backstage plugin that helps you keep track of your cloud spend",
- "version": "0.12.10-next.0",
+ "version": "0.12.10-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md
index c1f6c2e10f..d5488d6dbc 100644
--- a/plugins/devtools-backend/CHANGELOG.md
+++ b/plugins/devtools-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-devtools-backend
+## 0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+ - @backstage/config-loader@1.4.0-next.1
+
## 0.1.3-next.1
### Patch Changes
diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json
index f45b38c120..3b17a8ac7f 100644
--- a/plugins/devtools-backend/package.json
+++ b/plugins/devtools-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-devtools-backend",
- "version": "0.1.3-next.1",
+ "version": "0.1.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md
index 6cd8f6b0c4..10f7e55f9f 100644
--- a/plugins/dynatrace/CHANGELOG.md
+++ b/plugins/dynatrace/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-dynatrace
+## 7.0.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 7.0.1-next.1
### Patch Changes
diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json
index c0a855aa26..94b3716645 100644
--- a/plugins/dynatrace/package.json
+++ b/plugins/dynatrace/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-dynatrace",
- "version": "7.0.1-next.1",
+ "version": "7.0.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-feedback-backend/CHANGELOG.md b/plugins/entity-feedback-backend/CHANGELOG.md
index c0cd2d8c81..fd1db9e1d8 100644
--- a/plugins/entity-feedback-backend/CHANGELOG.md
+++ b/plugins/entity-feedback-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-entity-feedback-backend
+## 0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.1.6-next.1
### Patch Changes
diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json
index 91cc97a65c..28cb9110a4 100644
--- a/plugins/entity-feedback-backend/package.json
+++ b/plugins/entity-feedback-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-feedback-backend",
- "version": "0.1.6-next.1",
+ "version": "0.1.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-feedback/CHANGELOG.md b/plugins/entity-feedback/CHANGELOG.md
index 8429cdb56b..8582353e5b 100644
--- a/plugins/entity-feedback/CHANGELOG.md
+++ b/plugins/entity-feedback/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-entity-feedback
+## 0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json
index 2736a3a1e2..4cbdc26a85 100644
--- a/plugins/entity-feedback/package.json
+++ b/plugins/entity-feedback/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-feedback",
- "version": "0.2.4-next.1",
+ "version": "0.2.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-validation/CHANGELOG.md b/plugins/entity-validation/CHANGELOG.md
index beaf7524d2..a2607bf96f 100644
--- a/plugins/entity-validation/CHANGELOG.md
+++ b/plugins/entity-validation/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-entity-validation
+## 0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.6-next.1
### Patch Changes
diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json
index 5b85f1f199..75c82a0a9b 100644
--- a/plugins/entity-validation/package.json
+++ b/plugins/entity-validation/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-validation",
- "version": "0.1.6-next.1",
+ "version": "0.1.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md
index ab4643de53..f961ceaa5c 100644
--- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md
+++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-events-backend-module-aws-sqs
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json
index 0e0e1e65e4..5017afbcf0 100644
--- a/plugins/events-backend-module-aws-sqs/package.json
+++ b/plugins/events-backend-module-aws-sqs/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-aws-sqs",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md
index c4a72dfbdd..84cffef924 100644
--- a/plugins/events-backend-module-azure/CHANGELOG.md
+++ b/plugins/events-backend-module-azure/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-backend-module-azure
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json
index 568e3eda8f..ec6ef05036 100644
--- a/plugins/events-backend-module-azure/package.json
+++ b/plugins/events-backend-module-azure/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-azure",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
index a916666a22..79ab2a2e13 100644
--- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
+++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-backend-module-bitbucket-cloud
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json
index 1ef814848d..1dfac9149f 100644
--- a/plugins/events-backend-module-bitbucket-cloud/package.json
+++ b/plugins/events-backend-module-bitbucket-cloud/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-bitbucket-cloud",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md
index 07276b736b..a6ea0c9f8b 100644
--- a/plugins/events-backend-module-gerrit/CHANGELOG.md
+++ b/plugins/events-backend-module-gerrit/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-backend-module-gerrit
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json
index 3f265c6613..d0d7baf10e 100644
--- a/plugins/events-backend-module-gerrit/package.json
+++ b/plugins/events-backend-module-gerrit/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-gerrit",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md
index e29d71c92f..29894dd946 100644
--- a/plugins/events-backend-module-github/CHANGELOG.md
+++ b/plugins/events-backend-module-github/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-backend-module-github
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json
index abde4c91a7..d76a72fbb3 100644
--- a/plugins/events-backend-module-github/package.json
+++ b/plugins/events-backend-module-github/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-github",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md
index 231bf6dfe2..d3aac0d322 100644
--- a/plugins/events-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/events-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-backend-module-gitlab
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json
index e25366b2f7..f4fa7ed905 100644
--- a/plugins/events-backend-module-gitlab/package.json
+++ b/plugins/events-backend-module-gitlab/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-gitlab",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md
index 123a6224ed..ba70f001a2 100644
--- a/plugins/events-backend-test-utils/CHANGELOG.md
+++ b/plugins/events-backend-test-utils/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-events-backend-test-utils
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json
index a90a16a6c4..6597998504 100644
--- a/plugins/events-backend-test-utils/package.json
+++ b/plugins/events-backend-test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-events-backend-test-utils",
"description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md
index f2f9d5f01d..e022fe0acd 100644
--- a/plugins/events-backend/CHANGELOG.md
+++ b/plugins/events-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-events-backend
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-events-node@0.2.9-next.2
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json
index eaa9a8f278..c1fe0e64fb 100644
--- a/plugins/events-backend/package.json
+++ b/plugins/events-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend",
- "version": "0.2.9-next.1",
+ "version": "0.2.9-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md
index af8c020ca3..b155a1bb4a 100644
--- a/plugins/events-node/CHANGELOG.md
+++ b/plugins/events-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-events-node
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json
index 0cea638e4f..2fa55fabac 100644
--- a/plugins/events-node/package.json
+++ b/plugins/events-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-events-node",
"description": "The plugin-events-node module for @backstage/plugin-events-backend",
- "version": "0.2.9-next.1",
+ "version": "0.2.9-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md
index ef47064c18..8057837b57 100644
--- a/plugins/example-todo-list-backend/CHANGELOG.md
+++ b/plugins/example-todo-list-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @internal/plugin-todo-list-backend
+## 1.0.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 1.0.16-next.1
### Patch Changes
diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json
index 2417f2a883..4dddbfcbea 100644
--- a/plugins/example-todo-list-backend/package.json
+++ b/plugins/example-todo-list-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@internal/plugin-todo-list-backend",
- "version": "1.0.16-next.1",
+ "version": "1.0.16-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md
index de8b7b7dd6..68092aca47 100644
--- a/plugins/explore-backend/CHANGELOG.md
+++ b/plugins/explore-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-explore-backend
+## 0.0.10-next.2
+
+### Patch Changes
+
+- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-explore@0.1.4-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.0.10-next.1
### Patch Changes
diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json
index 5b8a20eea7..f7b912f91c 100644
--- a/plugins/explore-backend/package.json
+++ b/plugins/explore-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-explore-backend",
- "version": "0.0.10-next.1",
+ "version": "0.0.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md
index 79cc36bcd3..c757d877a2 100644
--- a/plugins/explore/CHANGELOG.md
+++ b/plugins/explore/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-explore
+## 0.4.7-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-explore-react@0.0.30
+
## 0.4.7-next.0
### Patch Changes
diff --git a/plugins/explore/package.json b/plugins/explore/package.json
index 702bbbf2d4..c54e084802 100644
--- a/plugins/explore/package.json
+++ b/plugins/explore/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-explore",
"description": "A Backstage plugin for building an exploration page of your software ecosystem",
- "version": "0.4.7-next.0",
+ "version": "0.4.7-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md
index 05b2093663..c027052ff1 100644
--- a/plugins/firehydrant/CHANGELOG.md
+++ b/plugins/firehydrant/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-firehydrant
+## 0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.5-next.1
### Patch Changes
diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json
index b955b6e129..966bb3eebf 100644
--- a/plugins/firehydrant/package.json
+++ b/plugins/firehydrant/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-firehydrant",
"description": "A Backstage plugin that integrates towards FireHydrant",
- "version": "0.2.5-next.1",
+ "version": "0.2.5-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md
index 60e7d48bde..0e7d8e4211 100644
--- a/plugins/fossa/CHANGELOG.md
+++ b/plugins/fossa/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-fossa
+## 0.2.53-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.53-next.0
### Patch Changes
diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json
index b98741390d..c69d8717c4 100644
--- a/plugins/fossa/package.json
+++ b/plugins/fossa/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-fossa",
"description": "A Backstage plugin that integrates towards FOSSA",
- "version": "0.2.53-next.0",
+ "version": "0.2.53-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md
index 00da125064..a984f8fba0 100644
--- a/plugins/github-actions/CHANGELOG.md
+++ b/plugins/github-actions/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-github-actions
+## 0.6.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 0.6.2-next.1
### Patch Changes
diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json
index 664da9fc91..5f7e5fbeef 100644
--- a/plugins/github-actions/package.json
+++ b/plugins/github-actions/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-actions",
"description": "A Backstage plugin that integrates towards GitHub Actions",
- "version": "0.6.2-next.1",
+ "version": "0.6.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md
index 949c221a1f..b9e1ae1348 100644
--- a/plugins/github-deployments/CHANGELOG.md
+++ b/plugins/github-deployments/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-github-deployments
+## 0.1.52-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 0.1.52-next.1
### Patch Changes
diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json
index 1a31fab535..341ce50000 100644
--- a/plugins/github-deployments/package.json
+++ b/plugins/github-deployments/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-deployments",
"description": "A Backstage plugin that integrates towards GitHub Deployments",
- "version": "0.1.52-next.1",
+ "version": "0.1.52-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md
index 985b114cb1..6bb63aa17e 100644
--- a/plugins/github-issues/CHANGELOG.md
+++ b/plugins/github-issues/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-github-issues
+## 0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.10-next.1
### Patch Changes
diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json
index 179364a725..9e8bf5beaf 100644
--- a/plugins/github-issues/package.json
+++ b/plugins/github-issues/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-github-issues",
- "version": "0.2.10-next.1",
+ "version": "0.2.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md
index 4f27413a0c..b5ba25ef4a 100644
--- a/plugins/github-pull-requests-board/CHANGELOG.md
+++ b/plugins/github-pull-requests-board/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-github-pull-requests-board
+## 0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.15-next.0
### Patch Changes
diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json
index 614abfb617..e0c17811a5 100644
--- a/plugins/github-pull-requests-board/package.json
+++ b/plugins/github-pull-requests-board/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-pull-requests-board",
"description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team",
- "version": "0.1.15-next.0",
+ "version": "0.1.15-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md
index 4f1ba08f4b..92a790fc33 100644
--- a/plugins/gocd/CHANGELOG.md
+++ b/plugins/gocd/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-gocd
+## 0.1.27-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.27-next.0
### Patch Changes
diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json
index bd34adf50a..672f19ba9f 100644
--- a/plugins/gocd/package.json
+++ b/plugins/gocd/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gocd",
"description": "A Backstage plugin that integrates towards GoCD",
- "version": "0.1.27-next.0",
+ "version": "0.1.27-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md
index b8fc2982f7..63b5f4639a 100644
--- a/plugins/graphql-backend/CHANGELOG.md
+++ b/plugins/graphql-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-graphql-backend
+## 0.1.38-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.38-next.1
### Patch Changes
diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json
index 530f814625..675a6cc293 100644
--- a/plugins/graphql-backend/package.json
+++ b/plugins/graphql-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphql-backend",
"description": "An experimental Backstage backend plugin for GraphQL",
- "version": "0.1.38-next.1",
+ "version": "0.1.38-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/graphql-voyager/CHANGELOG.md b/plugins/graphql-voyager/CHANGELOG.md
index 6106ce1684..ecb16e0aa0 100644
--- a/plugins/graphql-voyager/CHANGELOG.md
+++ b/plugins/graphql-voyager/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/plugin-graphql-voyager
+## 0.1.6-next.2
+
+### Patch Changes
+
+- bb1e1c2b26cc: Fix typo in install instructions.
+
## 0.1.6-next.1
### Patch Changes
diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json
index 7cfe6e3147..bddebf7a3f 100644
--- a/plugins/graphql-voyager/package.json
+++ b/plugins/graphql-voyager/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphql-voyager",
"description": "Backstage plugin for GraphQL Voyager",
- "version": "0.1.6-next.1",
+ "version": "0.1.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md
index 9becea45ad..4746842db6 100644
--- a/plugins/home/CHANGELOG.md
+++ b/plugins/home/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-home
+## 0.5.5-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-home-react@0.1.2-next.0
+
## 0.5.5-next.0
### Patch Changes
diff --git a/plugins/home/package.json b/plugins/home/package.json
index f9e97b2760..e717bd2c00 100644
--- a/plugins/home/package.json
+++ b/plugins/home/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-home",
"description": "A Backstage plugin that helps you build a home page",
- "version": "0.5.5-next.0",
+ "version": "0.5.5-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md
index 5a30c11db7..7369bddf34 100644
--- a/plugins/ilert/CHANGELOG.md
+++ b/plugins/ilert/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-ilert
+## 0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.10-next.1
### Patch Changes
diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json
index 1ff95f665d..da707874cb 100644
--- a/plugins/ilert/package.json
+++ b/plugins/ilert/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-ilert",
"description": "A Backstage plugin that integrates towards iLert",
- "version": "0.2.10-next.1",
+ "version": "0.2.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md
index d03a2646df..5dd8cf70cb 100644
--- a/plugins/jenkins-backend/CHANGELOG.md
+++ b/plugins/jenkins-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-jenkins-backend
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json
index 942a623ad0..f22f47b38c 100644
--- a/plugins/jenkins-backend/package.json
+++ b/plugins/jenkins-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-jenkins-backend",
"description": "A Backstage backend plugin that integrates towards Jenkins",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md
index bb28eeeaf5..c108eaeb0b 100644
--- a/plugins/jenkins/CHANGELOG.md
+++ b/plugins/jenkins/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-jenkins
+## 0.8.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.8.3-next.1
### Patch Changes
diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json
index a44861de23..8f0ec1aea2 100644
--- a/plugins/jenkins/package.json
+++ b/plugins/jenkins/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-jenkins",
"description": "A Backstage plugin that integrates towards Jenkins",
- "version": "0.8.3-next.1",
+ "version": "0.8.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md
index 48291adcc1..5970704e19 100644
--- a/plugins/kafka-backend/CHANGELOG.md
+++ b/plugins/kafka-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-kafka-backend
+## 0.2.41-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.41-next.1
### Patch Changes
diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json
index c3cf662208..0eab682023 100644
--- a/plugins/kafka-backend/package.json
+++ b/plugins/kafka-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kafka-backend",
"description": "A Backstage backend plugin that integrates towards Kafka",
- "version": "0.2.41-next.1",
+ "version": "0.2.41-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md
index 80751d23b8..d04153c02b 100644
--- a/plugins/kafka/CHANGELOG.md
+++ b/plugins/kafka/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-kafka
+## 0.3.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.3.21-next.1
### Patch Changes
diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json
index 46ec0e8e51..4c04878450 100644
--- a/plugins/kafka/package.json
+++ b/plugins/kafka/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kafka",
"description": "A Backstage plugin that integrates towards Kafka",
- "version": "0.3.21-next.1",
+ "version": "0.3.21-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md
index 532d0e0618..1c10e43c92 100644
--- a/plugins/kubernetes-backend/CHANGELOG.md
+++ b/plugins/kubernetes-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-kubernetes-backend
+## 0.11.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.11.3-next.1
### Patch Changes
diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json
index 6663479f5e..ab24437243 100644
--- a/plugins/kubernetes-backend/package.json
+++ b/plugins/kubernetes-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes-backend",
"description": "A Backstage backend plugin that integrates towards Kubernetes",
- "version": "0.11.3-next.1",
+ "version": "0.11.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md
index 600363e960..55d917ea1c 100644
--- a/plugins/kubernetes/CHANGELOG.md
+++ b/plugins/kubernetes/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-kubernetes
+## 0.9.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.9.4-next.0
### Patch Changes
diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json
index 1f137a6240..ed063900ba 100644
--- a/plugins/kubernetes/package.json
+++ b/plugins/kubernetes/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes",
"description": "A Backstage plugin that integrates towards Kubernetes",
- "version": "0.9.4-next.0",
+ "version": "0.9.4-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md
index 80c54e4501..9892e72566 100644
--- a/plugins/lighthouse-backend/CHANGELOG.md
+++ b/plugins/lighthouse-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-lighthouse-backend
+## 0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json
index c5b9bb49ca..8811164592 100644
--- a/plugins/lighthouse-backend/package.json
+++ b/plugins/lighthouse-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-lighthouse-backend",
"description": "Backend functionalities for lighthouse",
- "version": "0.2.4-next.1",
+ "version": "0.2.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md
index e45facf69f..ae5103502a 100644
--- a/plugins/lighthouse/CHANGELOG.md
+++ b/plugins/lighthouse/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-lighthouse
+## 0.4.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.4.6-next.0
### Patch Changes
diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json
index 02b2e67c1a..1cdb8f84da 100644
--- a/plugins/lighthouse/package.json
+++ b/plugins/lighthouse/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-lighthouse",
"description": "A Backstage plugin that integrates towards Lighthouse",
- "version": "0.4.6-next.0",
+ "version": "0.4.6-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md
index 774dc72250..ff16c53da5 100644
--- a/plugins/linguist-backend/CHANGELOG.md
+++ b/plugins/linguist-backend/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-linguist-backend
+## 0.4.0-next.2
+
+### Minor Changes
+
+- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.3.2-next.1
### Patch Changes
diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json
index ba71e3c756..0cdd8b12c5 100644
--- a/plugins/linguist-backend/package.json
+++ b/plugins/linguist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist-backend",
- "version": "0.3.2-next.1",
+ "version": "0.4.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/linguist-common/CHANGELOG.md b/plugins/linguist-common/CHANGELOG.md
index 1bfe9fcc84..920c5c533b 100644
--- a/plugins/linguist-common/CHANGELOG.md
+++ b/plugins/linguist-common/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/plugin-linguist-common
+## 0.1.1-next.1
+
+### Patch Changes
+
+- d440f1dd0e72: Exported new LanguageType type alias
+
## 0.1.1-next.0
### Patch Changes
diff --git a/plugins/linguist-common/package.json b/plugins/linguist-common/package.json
index 4ca2b65283..601146457e 100644
--- a/plugins/linguist-common/package.json
+++ b/plugins/linguist-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-linguist-common",
"description": "Common functionalities for the linguist plugin",
- "version": "0.1.1-next.0",
+ "version": "0.1.1-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md
index 84af3bdd60..3b515a2dda 100644
--- a/plugins/linguist/CHANGELOG.md
+++ b/plugins/linguist/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-linguist
+## 0.1.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-linguist-common@0.1.1-next.1
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.6-next.1
### Patch Changes
diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json
index 2f5369b404..eadbfd7c43 100644
--- a/plugins/linguist/package.json
+++ b/plugins/linguist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist",
- "version": "0.1.6-next.1",
+ "version": "0.1.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md
index de7a9c6b5b..6a43d80cc2 100644
--- a/plugins/newrelic-dashboard/CHANGELOG.md
+++ b/plugins/newrelic-dashboard/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-newrelic-dashboard
+## 0.2.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.14-next.1
### Patch Changes
diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json
index b32fd6c1e2..e5c9f53b10 100644
--- a/plugins/newrelic-dashboard/package.json
+++ b/plugins/newrelic-dashboard/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-newrelic-dashboard",
- "version": "0.2.14-next.1",
+ "version": "0.2.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/nomad-backend/CHANGELOG.md b/plugins/nomad-backend/CHANGELOG.md
index 37a5ba36cf..399d250a1f 100644
--- a/plugins/nomad-backend/CHANGELOG.md
+++ b/plugins/nomad-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-nomad-backend
+## 0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.2-next.1
### Patch Changes
diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json
index 78a3e3a386..cd987e3df8 100644
--- a/plugins/nomad-backend/package.json
+++ b/plugins/nomad-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-nomad-backend",
- "version": "0.1.2-next.1",
+ "version": "0.1.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/nomad/CHANGELOG.md b/plugins/nomad/CHANGELOG.md
index 151657c12b..f22e3fe1a5 100644
--- a/plugins/nomad/CHANGELOG.md
+++ b/plugins/nomad/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-nomad
+## 0.1.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.2-next.1
### Patch Changes
diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json
index 283b6cdb9c..6b8c6211ae 100644
--- a/plugins/nomad/package.json
+++ b/plugins/nomad/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-nomad",
- "version": "0.1.2-next.1",
+ "version": "0.1.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/octopus-deploy/CHANGELOG.md b/plugins/octopus-deploy/CHANGELOG.md
index b6a652e24d..1921f102c8 100644
--- a/plugins/octopus-deploy/CHANGELOG.md
+++ b/plugins/octopus-deploy/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-octopus-deploy
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json
index 65010ae66f..ff54b6b8b0 100644
--- a/plugins/octopus-deploy/package.json
+++ b/plugins/octopus-deploy/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-octopus-deploy",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md
index eeac469210..0daf3bcd0d 100644
--- a/plugins/org-react/CHANGELOG.md
+++ b/plugins/org-react/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-org-react
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json
index 176722ad03..ab48b5b7e6 100644
--- a/plugins/org-react/package.json
+++ b/plugins/org-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-org-react",
- "version": "0.1.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md
index 4e98307d04..fdaf76aebd 100644
--- a/plugins/org/CHANGELOG.md
+++ b/plugins/org/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-org
+## 0.6.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.6.11-next.1
### Patch Changes
diff --git a/plugins/org/package.json b/plugins/org/package.json
index 81d6495d08..f8d976a3a0 100644
--- a/plugins/org/package.json
+++ b/plugins/org/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-org",
"description": "A Backstage plugin that helps you create entity pages for your organization",
- "version": "0.6.11-next.1",
+ "version": "0.6.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md
index 4ff94ae479..09add705bb 100644
--- a/plugins/pagerduty/CHANGELOG.md
+++ b/plugins/pagerduty/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-pagerduty
+## 0.6.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-home-react@0.1.2-next.0
+
## 0.6.2-next.0
### Patch Changes
diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json
index 13d56fd3f2..1ced106c06 100644
--- a/plugins/pagerduty/package.json
+++ b/plugins/pagerduty/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-pagerduty",
"description": "A Backstage plugin that integrates towards PagerDuty",
- "version": "0.6.2-next.0",
+ "version": "0.6.2-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md
index 2bf8f6c147..1cfe50033f 100644
--- a/plugins/periskop-backend/CHANGELOG.md
+++ b/plugins/periskop-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-periskop-backend
+## 0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.19-next.1
### Patch Changes
diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json
index 52c7d127b0..70e64188dd 100644
--- a/plugins/periskop-backend/package.json
+++ b/plugins/periskop-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-periskop-backend",
- "version": "0.1.19-next.1",
+ "version": "0.1.19-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md
index a12e00971f..fe031696ed 100644
--- a/plugins/periskop/CHANGELOG.md
+++ b/plugins/periskop/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-periskop
+## 0.1.19-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.19-next.1
### Patch Changes
diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json
index 3ac124e85c..4e5d87dfeb 100644
--- a/plugins/periskop/package.json
+++ b/plugins/periskop/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-periskop",
- "version": "0.1.19-next.1",
+ "version": "0.1.19-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md
index 2d641baae8..085dbfb074 100644
--- a/plugins/permission-backend/CHANGELOG.md
+++ b/plugins/permission-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-permission-backend
+## 0.5.23-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.5.23-next.1
### Patch Changes
diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json
index 269cb12061..7e4e087927 100644
--- a/plugins/permission-backend/package.json
+++ b/plugins/permission-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-permission-backend",
- "version": "0.5.23-next.1",
+ "version": "0.5.23-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md
index 41e5f3ca5b..1fbc7fdabf 100644
--- a/plugins/permission-node/CHANGELOG.md
+++ b/plugins/permission-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-permission-node
+## 0.7.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.7.11-next.1
### Patch Changes
diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json
index c5f30ff4a0..92416abb55 100644
--- a/plugins/permission-node/package.json
+++ b/plugins/permission-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-permission-node",
"description": "Common permission and authorization utilities for backend plugins",
- "version": "0.7.11-next.1",
+ "version": "0.7.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md
index f55ad9991e..0f807e1592 100644
--- a/plugins/playlist-backend/CHANGELOG.md
+++ b/plugins/playlist-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-playlist-backend
+## 0.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.3.4-next.1
### Patch Changes
diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json
index 5285406e58..6e4e550f5b 100644
--- a/plugins/playlist-backend/package.json
+++ b/plugins/playlist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist-backend",
- "version": "0.3.4-next.1",
+ "version": "0.3.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md
index 3850cc3e5d..ed4956ccda 100644
--- a/plugins/playlist/CHANGELOG.md
+++ b/plugins/playlist/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-playlist
+## 0.1.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.13-next.1
### Patch Changes
diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json
index 69e02df8dd..e2fa6468cb 100644
--- a/plugins/playlist/package.json
+++ b/plugins/playlist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist",
- "version": "0.1.13-next.1",
+ "version": "0.1.13-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md
index 4a9e2bdb70..d03bd2b237 100644
--- a/plugins/proxy-backend/CHANGELOG.md
+++ b/plugins/proxy-backend/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-proxy-backend
+## 0.3.0-next.2
+
+### Minor Changes
+
+- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.42-next.1
### Patch Changes
diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json
index 959c946d55..eb413e472c 100644
--- a/plugins/proxy-backend/package.json
+++ b/plugins/proxy-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-proxy-backend",
"description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend",
- "version": "0.2.42-next.1",
+ "version": "0.3.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/puppetdb/CHANGELOG.md b/plugins/puppetdb/CHANGELOG.md
index dbd5fde6df..5e84652c40 100644
--- a/plugins/puppetdb/CHANGELOG.md
+++ b/plugins/puppetdb/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-puppetdb
+## 0.1.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.4-next.0
### Patch Changes
diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json
index ef9370200e..d7c7209744 100644
--- a/plugins/puppetdb/package.json
+++ b/plugins/puppetdb/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-puppetdb",
"description": "Backstage plugin to visualize resource information and Puppet facts from PuppetDB.",
- "version": "0.1.4-next.0",
+ "version": "0.1.4-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md
index 9789127cc4..5b45b7806f 100644
--- a/plugins/rollbar-backend/CHANGELOG.md
+++ b/plugins/rollbar-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-rollbar-backend
+## 0.1.45-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.45-next.1
### Patch Changes
diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json
index 3def2395f1..702c90d176 100644
--- a/plugins/rollbar-backend/package.json
+++ b/plugins/rollbar-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-rollbar-backend",
"description": "A Backstage backend plugin that integrates towards Rollbar",
- "version": "0.1.45-next.1",
+ "version": "0.1.45-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md
index 6bacf806bc..06c1cd8ef5 100644
--- a/plugins/rollbar/CHANGELOG.md
+++ b/plugins/rollbar/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-rollbar
+## 0.4.21-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.4.21-next.0
### Patch Changes
diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json
index 8c17895e48..db73661f59 100644
--- a/plugins/rollbar/package.json
+++ b/plugins/rollbar/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-rollbar",
"description": "A Backstage plugin that integrates towards Rollbar",
- "version": "0.4.21-next.0",
+ "version": "0.4.21-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md
index ea3e24c720..09d7eb149f 100644
--- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-confluence-to-markdown
+## 0.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.1-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json
index 0d342d1717..e51ca9eeb8 100644
--- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json
+++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown",
"description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend",
- "version": "0.2.1-next.1",
+ "version": "0.2.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
index f6d1e6bd01..665f08bd8b 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-cookiecutter
+## 0.2.24-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.24-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json
index df1d81bbd3..c995cdc3f4 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/package.json
+++ b/plugins/scaffolder-backend-module-cookiecutter/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-cookiecutter",
"description": "A module for the scaffolder backend that lets you template projects using cookiecutter",
- "version": "0.2.24-next.1",
+ "version": "0.2.24-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md
index 4c50ef46fd..bb47bb5ad0 100644
--- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-scaffolder-backend-module-gitlab
+## 0.2.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
## 0.2.3-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json
index 8c9ba33a77..5a540e7094 100644
--- a/plugins/scaffolder-backend-module-gitlab/package.json
+++ b/plugins/scaffolder-backend-module-gitlab/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-gitlab",
- "version": "0.2.3-next.1",
+ "version": "0.2.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
index fa3f9201ac..eea495e84e 100644
--- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-rails
+## 0.4.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.4.17-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json
index c514354955..7d44215e18 100644
--- a/plugins/scaffolder-backend-module-rails/package.json
+++ b/plugins/scaffolder-backend-module-rails/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-rails",
"description": "A module for the scaffolder backend that lets you template projects using Rails",
- "version": "0.4.17-next.1",
+ "version": "0.4.17-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
index fbeed9e5e3..d414f1cf58 100644
--- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-scaffolder-backend-module-sentry
+## 0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
## 0.1.8-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json
index 5b58d1ef87..222c7fd484 100644
--- a/plugins/scaffolder-backend-module-sentry/package.json
+++ b/plugins/scaffolder-backend-module-sentry/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-sentry",
- "version": "0.1.8-next.1",
+ "version": "0.1.8-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
index fcf915a348..284494c3c8 100644
--- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-scaffolder-backend-module-yeoman
+## 0.2.21-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+
## 0.2.21-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json
index 6e90170dab..5b4ce071f6 100644
--- a/plugins/scaffolder-backend-module-yeoman/package.json
+++ b/plugins/scaffolder-backend-module-yeoman/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-yeoman",
- "version": "0.2.21-next.1",
+ "version": "0.2.21-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md
index dc8140c996..a5df5d6138 100644
--- a/plugins/scaffolder-backend/CHANGELOG.md
+++ b/plugins/scaffolder-backend/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-scaffolder-backend
+## 1.15.2-next.2
+
+### Patch Changes
+
+- 33c76caef72a: Added examples for the fs:delete and fs:rename actions
+- 0b1d775be05b: Adds examples to a few scaffolder actions.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.12.0-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/plugin-scaffolder-node@0.1.6-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 1.15.2-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json
index d1481e2068..9db076a4a9 100644
--- a/plugins/scaffolder-backend/package.json
+++ b/plugins/scaffolder-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend",
"description": "The Backstage backend plugin that helps you create new things",
- "version": "1.15.2-next.1",
+ "version": "1.15.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md
index fd1605c2df..607836b141 100644
--- a/plugins/scaffolder-node/CHANGELOG.md
+++ b/plugins/scaffolder-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder-node
+## 0.1.6-next.2
+
+### Patch Changes
+
+- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.1.6-next.1
### Patch Changes
diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json
index 555a25417d..7f78352323 100644
--- a/plugins/scaffolder-node/package.json
+++ b/plugins/scaffolder-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-node",
"description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend",
- "version": "0.1.6-next.1",
+ "version": "0.1.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md
index e4762983c7..68e1db12ca 100644
--- a/plugins/scaffolder-react/CHANGELOG.md
+++ b/plugins/scaffolder-react/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-scaffolder-react
+## 1.5.2-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 1.5.2-next.0
### Patch Changes
diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json
index ddf27cc83d..448199d709 100644
--- a/plugins/scaffolder-react/package.json
+++ b/plugins/scaffolder-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-react",
"description": "A frontend library that helps other Backstage plugins interact with the Scaffolder",
- "version": "1.5.2-next.0",
+ "version": "1.5.2-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md
index 414e7acf53..2f9d1341e4 100644
--- a/plugins/scaffolder/CHANGELOG.md
+++ b/plugins/scaffolder/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder
+## 1.14.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/plugin-scaffolder-react@1.5.2-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 1.14.2-next.1
### Patch Changes
diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json
index f010329b14..4291016fb8 100644
--- a/plugins/scaffolder/package.json
+++ b/plugins/scaffolder/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder",
"description": "The Backstage plugin that helps you create new things",
- "version": "1.14.2-next.1",
+ "version": "1.14.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md
index b2a9d07118..f9b716d456 100644
--- a/plugins/search-backend-module-catalog/CHANGELOG.md
+++ b/plugins/search-backend-module-catalog/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-search-backend-module-catalog
+## 0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
## 0.1.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json
index 37473ef04b..f279ec399d 100644
--- a/plugins/search-backend-module-catalog/package.json
+++ b/plugins/search-backend-module-catalog/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-catalog",
"description": "A module for the search backend that exports catalog modules",
- "version": "0.1.4-next.1",
+ "version": "0.1.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
index 2191fa05ff..c8ff1e32ad 100644
--- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md
+++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-search-backend-module-elasticsearch
+## 1.3.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
## 1.3.3-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json
index f119b1b28a..9c68cfdaa0 100644
--- a/plugins/search-backend-module-elasticsearch/package.json
+++ b/plugins/search-backend-module-elasticsearch/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-elasticsearch",
"description": "A module for the search backend that implements search using ElasticSearch",
- "version": "1.3.3-next.1",
+ "version": "1.3.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md
index fc9fedf290..4d954aea2f 100644
--- a/plugins/search-backend-module-explore/CHANGELOG.md
+++ b/plugins/search-backend-module-explore/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-search-backend-module-explore
+## 0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
## 0.1.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json
index 13c6ce474c..e8f3835b39 100644
--- a/plugins/search-backend-module-explore/package.json
+++ b/plugins/search-backend-module-explore/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-explore",
"description": "A module for the search backend that exports explore modules",
- "version": "0.1.4-next.1",
+ "version": "0.1.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md
index 3bc95aaa2d..9bd8664ff7 100644
--- a/plugins/search-backend-module-pg/CHANGELOG.md
+++ b/plugins/search-backend-module-pg/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-search-backend-module-pg
+## 0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+
## 0.5.9-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json
index 63c8061fea..875af316b2 100644
--- a/plugins/search-backend-module-pg/package.json
+++ b/plugins/search-backend-module-pg/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-pg",
"description": "A module for the search backend that implements search using PostgreSQL",
- "version": "0.5.9-next.1",
+ "version": "0.5.9-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md
index 6fc2307106..f456f03030 100644
--- a/plugins/search-backend-module-techdocs/CHANGELOG.md
+++ b/plugins/search-backend-module-techdocs/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-search-backend-module-techdocs
+## 0.1.4-next.2
+
+### Patch Changes
+
+- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
## 0.1.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json
index ffc9d0ff4f..1ee329075d 100644
--- a/plugins/search-backend-module-techdocs/package.json
+++ b/plugins/search-backend-module-techdocs/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-techdocs",
"description": "A module for the search backend that exports techdocs modules",
- "version": "0.1.4-next.1",
+ "version": "0.1.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md
index a8b8b930ee..2733e5b22d 100644
--- a/plugins/search-backend-node/CHANGELOG.md
+++ b/plugins/search-backend-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-search-backend-node
+## 1.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 1.2.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json
index 842c636bba..845b9bddd1 100644
--- a/plugins/search-backend-node/package.json
+++ b/plugins/search-backend-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-node",
"description": "A library for Backstage backend plugins that want to interact with the search backend plugin",
- "version": "1.2.4-next.1",
+ "version": "1.2.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md
index db52ff9e55..52fd4963ce 100644
--- a/plugins/search-backend/CHANGELOG.md
+++ b/plugins/search-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-search-backend
+## 1.4.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-permission-node@0.7.11-next.2
+ - @backstage/plugin-search-backend-node@1.2.4-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 1.4.0-next.1
### Patch Changes
diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json
index 167e4d835a..c2357f2a0b 100644
--- a/plugins/search-backend/package.json
+++ b/plugins/search-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend",
"description": "The Backstage backend plugin that provides your backstage app with search",
- "version": "1.4.0-next.1",
+ "version": "1.4.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md
index cbc0187d23..73650ae636 100644
--- a/plugins/search/CHANGELOG.md
+++ b/plugins/search/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-search
+## 1.3.4-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 1.3.4-next.0
### Patch Changes
diff --git a/plugins/search/package.json b/plugins/search/package.json
index 7a8d7dffab..5d935d57b8 100644
--- a/plugins/search/package.json
+++ b/plugins/search/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search",
"description": "The Backstage plugin that provides your backstage app with search",
- "version": "1.3.4-next.0",
+ "version": "1.3.4-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md
index f4bac35016..1ca911f366 100644
--- a/plugins/sentry/CHANGELOG.md
+++ b/plugins/sentry/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-sentry
+## 0.5.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.5.6-next.0
### Patch Changes
diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json
index c0bc4c1246..3c700575b0 100644
--- a/plugins/sentry/package.json
+++ b/plugins/sentry/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-sentry",
"description": "A Backstage plugin that integrates towards Sentry",
- "version": "0.5.6-next.0",
+ "version": "0.5.6-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md
index 3ef87ad9d1..95388cda61 100644
--- a/plugins/sonarqube-backend/CHANGELOG.md
+++ b/plugins/sonarqube-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-sonarqube-backend
+## 0.2.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.2-next.1
### Patch Changes
diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json
index 2df0d1fd71..0473d2c165 100644
--- a/plugins/sonarqube-backend/package.json
+++ b/plugins/sonarqube-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sonarqube-backend",
- "version": "0.2.2-next.1",
+ "version": "0.2.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md
index 59b6e51883..531ada7eda 100644
--- a/plugins/sonarqube/CHANGELOG.md
+++ b/plugins/sonarqube/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-sonarqube
+## 0.7.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.7.2-next.1
### Patch Changes
diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json
index ed3bc6142e..e892f2d5e3 100644
--- a/plugins/sonarqube/package.json
+++ b/plugins/sonarqube/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-sonarqube",
"description": "",
- "version": "0.7.2-next.1",
+ "version": "0.7.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md
index 3d6ec3088f..427d54ef33 100644
--- a/plugins/splunk-on-call/CHANGELOG.md
+++ b/plugins/splunk-on-call/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-splunk-on-call
+## 0.4.10-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.4.10-next.0
### Patch Changes
diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json
index fb39c0da1a..181e5d2565 100644
--- a/plugins/splunk-on-call/package.json
+++ b/plugins/splunk-on-call/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-splunk-on-call",
"description": "A Backstage plugin that integrates towards Splunk On-Call",
- "version": "0.4.10-next.0",
+ "version": "0.4.10-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md
index aa16d5b8d4..dd3d187afe 100644
--- a/plugins/stack-overflow-backend/CHANGELOG.md
+++ b/plugins/stack-overflow-backend/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-stack-overflow-backend
+## 0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json
index c2fbc85def..88f9d7fb18 100644
--- a/plugins/stack-overflow-backend/package.json
+++ b/plugins/stack-overflow-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-stack-overflow-backend",
- "version": "0.2.4-next.1",
+ "version": "0.2.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
index a678af8513..e41eaa1898 100644
--- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
+++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-tech-insights-backend-module-jsonfc
+## 0.1.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+
## 0.1.32-next.1
### Patch Changes
diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json
index 021fed330c..ca3849773a 100644
--- a/plugins/tech-insights-backend-module-jsonfc/package.json
+++ b/plugins/tech-insights-backend-module-jsonfc/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-backend-module-jsonfc",
- "version": "0.1.32-next.1",
+ "version": "0.1.32-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md
index f652b66b77..f6a96bdb5e 100644
--- a/plugins/tech-insights-backend/CHANGELOG.md
+++ b/plugins/tech-insights-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-tech-insights-backend
+## 0.5.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-tech-insights-node@0.4.6-next.2
+
## 0.5.14-next.1
### Patch Changes
diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json
index c5dfc94afb..af66228d4e 100644
--- a/plugins/tech-insights-backend/package.json
+++ b/plugins/tech-insights-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-backend",
- "version": "0.5.14-next.1",
+ "version": "0.5.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md
index 57ab233cfd..ec3195f9ea 100644
--- a/plugins/tech-insights-node/CHANGELOG.md
+++ b/plugins/tech-insights-node/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-tech-insights-node
+## 0.4.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.4.6-next.1
### Patch Changes
diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json
index f89bb41748..9499f65a83 100644
--- a/plugins/tech-insights-node/package.json
+++ b/plugins/tech-insights-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-node",
- "version": "0.4.6-next.1",
+ "version": "0.4.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md
index c415a5a5af..5be97e85af 100644
--- a/plugins/tech-insights/CHANGELOG.md
+++ b/plugins/tech-insights/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-tech-insights
+## 0.3.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.3.13-next.1
### Patch Changes
diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json
index 21f65edd6b..d3318c46fd 100644
--- a/plugins/tech-insights/package.json
+++ b/plugins/tech-insights/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights",
- "version": "0.3.13-next.1",
+ "version": "0.3.13-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md
index ffa103dd67..12af94f42a 100644
--- a/plugins/techdocs-addons-test-utils/CHANGELOG.md
+++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-techdocs-addons-test-utils
+## 1.0.17-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.12.1-next.2
+ - @backstage/plugin-techdocs@1.6.6-next.2
+ - @backstage/integration-react@1.1.16-next.1
+
## 1.0.17-next.1
### Patch Changes
diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json
index a718d5a842..e9cf034e07 100644
--- a/plugins/techdocs-addons-test-utils/package.json
+++ b/plugins/techdocs-addons-test-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-addons-test-utils",
- "version": "1.0.17-next.1",
+ "version": "1.0.17-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md
index ebb0e6c2ed..3dbae8c0a3 100644
--- a/plugins/techdocs-backend/CHANGELOG.md
+++ b/plugins/techdocs-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-techdocs-backend
+## 1.6.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-techdocs-node@1.7.4-next.2
+
## 1.6.5-next.1
### Patch Changes
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index 87d10c91ae..561d3a81fb 100644
--- a/plugins/techdocs-backend/package.json
+++ b/plugins/techdocs-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-backend",
"description": "The Backstage backend plugin that renders technical documentation for your components",
- "version": "1.6.5-next.1",
+ "version": "1.6.5-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md
index 4f3b73146d..4d5dbcf11e 100644
--- a/plugins/techdocs-node/CHANGELOG.md
+++ b/plugins/techdocs-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-techdocs-node
+## 1.7.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.19.2-next.2
+
## 1.7.4-next.1
### Patch Changes
diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json
index 5f0f3d69d7..a255d5fea1 100644
--- a/plugins/techdocs-node/package.json
+++ b/plugins/techdocs-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-node",
"description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli",
- "version": "1.7.4-next.1",
+ "version": "1.7.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md
index fe0813b36a..3dcc35d072 100644
--- a/plugins/techdocs/CHANGELOG.md
+++ b/plugins/techdocs/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-techdocs
+## 1.6.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+ - @backstage/integration-react@1.1.16-next.1
+
## 1.6.6-next.1
### Patch Changes
diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json
index 080401b9f6..c4f09c9f17 100644
--- a/plugins/techdocs/package.json
+++ b/plugins/techdocs/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs",
"description": "The Backstage plugin that renders technical documentation for your components",
- "version": "1.6.6-next.1",
+ "version": "1.6.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md
index ab059adbff..9d2a85b2c4 100644
--- a/plugins/todo-backend/CHANGELOG.md
+++ b/plugins/todo-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-todo-backend
+## 0.2.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-catalog-node@1.4.1-next.2
+
## 0.2.0-next.1
### Patch Changes
diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json
index 520fac0215..4c864ea379 100644
--- a/plugins/todo-backend/package.json
+++ b/plugins/todo-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-todo-backend",
"description": "A Backstage backend plugin that lets you browse TODO comments in your source code",
- "version": "0.2.0-next.1",
+ "version": "0.2.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md
index 9a7758da72..7d1570ae20 100644
--- a/plugins/todo/CHANGELOG.md
+++ b/plugins/todo/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-todo
+## 0.2.23-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.2.23-next.0
### Patch Changes
diff --git a/plugins/todo/package.json b/plugins/todo/package.json
index fa18bf94bb..51a37bffe5 100644
--- a/plugins/todo/package.json
+++ b/plugins/todo/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-todo",
"description": "A Backstage plugin that lets you browse TODO comments in your source code",
- "version": "0.2.23-next.0",
+ "version": "0.2.23-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md
index c33eab6b77..869280ceb9 100644
--- a/plugins/user-settings-backend/CHANGELOG.md
+++ b/plugins/user-settings-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-user-settings-backend
+## 0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.6.0-next.2
+ - @backstage/backend-common@0.19.2-next.2
+ - @backstage/plugin-auth-node@0.2.17-next.2
+
## 0.1.12-next.1
### Patch Changes
diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json
index b472754b2b..f2eca3e6d4 100644
--- a/plugins/user-settings-backend/package.json
+++ b/plugins/user-settings-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-user-settings-backend",
"description": "The Backstage backend plugin to manage user settings",
- "version": "0.1.12-next.1",
+ "version": "0.1.12-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md
index 026ea410f9..c015344dad 100644
--- a/plugins/user-settings/CHANGELOG.md
+++ b/plugins/user-settings/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-user-settings
+## 0.7.6-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.7.6-next.0
### Patch Changes
diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json
index 57a6d89be0..6a5bc24770 100644
--- a/plugins/user-settings/package.json
+++ b/plugins/user-settings/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-user-settings",
"description": "A Backstage plugin that provides a settings page",
- "version": "0.7.6-next.0",
+ "version": "0.7.6-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md
index cac3188526..d28b252b31 100644
--- a/plugins/vault-backend/CHANGELOG.md
+++ b/plugins/vault-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-vault-backend
+## 0.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.5-next.2
+ - @backstage/backend-common@0.19.2-next.2
+
## 0.3.4-next.1
### Patch Changes
diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json
index 44d01c576b..c40eabf3c7 100644
--- a/plugins/vault-backend/package.json
+++ b/plugins/vault-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-vault-backend",
"description": "A Backstage backend plugin that integrates towards Vault",
- "version": "0.3.4-next.1",
+ "version": "0.3.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md
index d6ba597c0d..351fe4b168 100644
--- a/plugins/vault/CHANGELOG.md
+++ b/plugins/vault/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-vault
+## 0.1.15-next.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.8.1-next.1
+
## 0.1.15-next.0
### Patch Changes
diff --git a/plugins/vault/package.json b/plugins/vault/package.json
index 7d77495527..e0c147c041 100644
--- a/plugins/vault/package.json
+++ b/plugins/vault/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-vault",
"description": "A Backstage plugin that integrates towards Vault",
- "version": "0.1.15-next.0",
+ "version": "0.1.15-next.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
From 959a6bc83312fd6734797122a4d5b52664645d89 Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 8 Aug 2023 17:03:57 +0200
Subject: [PATCH 093/372] EntitySwitch: do not render anything in case no
entity is present
Signed-off-by: Vincenzo Scamporlino
---
.../src/components/EntitySwitch/EntitySwitch.tsx | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
index 90de358ef9..b12495052e 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
@@ -77,18 +77,14 @@ export const EntitySwitch = (props: EntitySwitchProps) => {
})
.getElements()
.flatMap((element: ReactElement) => {
+ // If the entity is missing or there is an error, render nothing
+ if (!entity) {
+ return [];
+ }
+
const { if: condition, children: elementsChildren } =
element.props as EntitySwitchCase;
- // If the entity is missing or there is an error, render the default page
- if (!entity) {
- return [
- {
- if: condition === undefined,
- children: elementsChildren,
- },
- ];
- }
return [
{
if: condition?.(entity, { apis }),
From 5ad126667787a1ffd8165deedfbc7f58b2d7125a Mon Sep 17 00:00:00 2001
From: Vincenzo Scamporlino
Date: Tue, 8 Aug 2023 17:05:29 +0200
Subject: [PATCH 094/372] EntitySwitch: add missing tests and small
improvements
Signed-off-by: Vincenzo Scamporlino
---
.../EntitySwitch/EntitySwitch.test.tsx | 86 +++++++++++++++++--
1 file changed, 81 insertions(+), 5 deletions(-)
diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
index 3a8795ccb7..c93922e938 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
@@ -19,7 +19,7 @@ import {
AsyncEntityProvider,
EntityProvider,
} from '@backstage/plugin-catalog-react';
-import { render, screen } from '@testing-library/react';
+import { render, screen, waitFor } from '@testing-library/react';
import React, { useEffect } from 'react';
import { isKind } from './conditions';
import { EntitySwitch } from './EntitySwitch';
@@ -35,6 +35,80 @@ const Wrapper = ({ children }: { children?: React.ReactNode }) => (
);
describe('EntitySwitch', () => {
+ it('should render only the first match', () => {
+ const content = (
+
+
+
+
+
+ );
+
+ render(
+
+
+ {content}
+
+ ,
+ );
+
+ expect(screen.getByText('A')).toBeInTheDocument();
+ expect(screen.queryByText('B')).not.toBeInTheDocument();
+ expect(screen.queryByText('C')).not.toBeInTheDocument();
+ });
+
+ it('should render the fallback if no cases are matching', () => {
+ const content = (
+
+
+
+
+
+ );
+
+ render(
+
+
+ {content}
+
+ ,
+ );
+
+ expect(screen.queryByText('A')).not.toBeInTheDocument();
+ expect(screen.queryByText('B')).not.toBeInTheDocument();
+ expect(screen.getByText('C')).toBeInTheDocument();
+ });
+
+ it('should render only the first fallback in case no cases are matching', () => {
+ const content = (
+
+
+
+
+
+
+ );
+
+ render(
+
+
+ {content}
+
+ ,
+ );
+
+ expect(screen.queryByText('A')).not.toBeInTheDocument();
+ expect(screen.queryByText('B')).not.toBeInTheDocument();
+ expect(screen.getByText('C')).toBeInTheDocument();
+ expect(screen.queryByText('D')).not.toBeInTheDocument();
+ });
+
it('should switch child when entity switches', () => {
const content = (
@@ -96,7 +170,7 @@ describe('EntitySwitch', () => {
expect(screen.queryByText('A')).not.toBeInTheDocument();
expect(screen.queryByText('B')).not.toBeInTheDocument();
- expect(screen.getByText('C')).toBeInTheDocument();
+ expect(screen.queryByText('C')).not.toBeInTheDocument();
});
it('should switch child when filters switch', () => {
@@ -383,10 +457,10 @@ describe('EntitySwitch', () => {
expect(screen.queryByText('A')).not.toBeInTheDocument();
});
- it('should switch with sync condition that throws', async () => {
+ it('should switch with async condition that throws', async () => {
const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
- const shouldRender = () => Promise.reject();
+ const shouldRender = jest.fn().mockRejectedValue(undefined);
render(
@@ -399,7 +473,9 @@ describe('EntitySwitch', () => {
,
);
- await expect(screen.findByText('C')).resolves.toBeInTheDocument();
+ await waitFor(() => expect(shouldRender).toHaveBeenCalled());
+
+ expect(screen.getByText('C')).toBeInTheDocument();
expect(screen.queryByText('A')).not.toBeInTheDocument();
expect(screen.queryByText('B')).not.toBeInTheDocument();
});
From 50eb5efd7e7b04019e4c706c1a62aa0e1e799142 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Tue, 8 Aug 2023 17:13:53 +0200
Subject: [PATCH 095/372] changesets: use inline code block
Signed-off-by: Patrik Oldsberg
---
.changeset/funny-dancers-deliver.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.changeset/funny-dancers-deliver.md b/.changeset/funny-dancers-deliver.md
index 8d0b1f823d..0518fe0a01 100644
--- a/.changeset/funny-dancers-deliver.md
+++ b/.changeset/funny-dancers-deliver.md
@@ -2,4 +2,4 @@
'@backstage/plugin-scaffolder-backend': patch
---
-Added examples for the fs:delete and fs:rename actions
+Added examples for the `fs:delete` and `fs:rename` actions
From f0ccb95a29fdbad66f7a38a31e6b10a1070ee54c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 8 Aug 2023 17:41:45 +0000
Subject: [PATCH 096/372] fix(deps): update dependency @stoplight/types to
v13.18.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 84a1db2846..7bbc842038 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15495,12 +15495,12 @@ __metadata:
linkType: hard
"@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.0.0, @stoplight/types@npm:^13.14.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0":
- version: 13.15.0
- resolution: "@stoplight/types@npm:13.15.0"
+ version: 13.18.0
+ resolution: "@stoplight/types@npm:13.18.0"
dependencies:
"@types/json-schema": ^7.0.4
utility-types: ^3.10.0
- checksum: 839f0bbedb791bd6792ef22b6a821ca504b14b705927f7c510c4cdcc591eddc8818c82b8857129501aa809d6f369b82e4487bfe18dfc5ce00e28317ecad2df9a
+ checksum: 17f464b6986fcb07719584cbb55c59e1c8d72d6d000ed64b13cae92acbdc069e5a725b4d14c4a2998eb701a0289e6ce3aee151e4200698df906ba058747e210f
languageName: node
linkType: hard
From 89435f72405aa5ab6a11389bb578dd4bbd1e99eb Mon Sep 17 00:00:00 2001
From: Robert Bunning
Date: Tue, 8 Aug 2023 13:50:27 -0400
Subject: [PATCH 097/372] Display http errors first. Allow json parsing errors
to escape and be displayed
Signed-off-by: Robert Bunning
---
plugins/newrelic/src/api/index.test.ts | 84 +++++++++++++-------------
plugins/newrelic/src/api/index.ts | 34 ++++++-----
2 files changed, 61 insertions(+), 57 deletions(-)
diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts
index f45482be87..d4ed4a1691 100644
--- a/plugins/newrelic/src/api/index.test.ts
+++ b/plugins/newrelic/src/api/index.test.ts
@@ -20,6 +20,10 @@ import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { MockFetchApi, setupRequestMockHandlers } from '@backstage/test-utils';
+const mockedDiscoveryApi: DiscoveryApi = {
+ getBaseUrl: async () => 'https://test.test',
+};
+
beforeEach(() => {
jest.resetAllMocks();
});
@@ -46,10 +50,6 @@ describe('NewRelicClient', () => {
),
);
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
const mockedFetchApi = new MockFetchApi();
const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
@@ -65,10 +65,6 @@ describe('NewRelicClient', () => {
);
it('Correctly reads all pages of results and returns the expected results', async () => {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
const mockedApplicationOne: NewRelicApplication = {
id: 1,
application_summary: {
@@ -219,10 +215,6 @@ describe('NewRelicClient', () => {
test.each([['Link'], ['LINK'], ['lINK']])(
'It does not attempt pagination when the link header name is invalid (%p)',
async linkHeaderName => {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
const mockedFetchApi = new MockFetchApi();
const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
@@ -271,10 +263,6 @@ describe('NewRelicClient', () => {
])(
'It does not attempt pagination when the link header value is invalid (%p)',
async linkHeaderValue => {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
const mockedFetchApi = new MockFetchApi();
const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch');
@@ -309,19 +297,38 @@ describe('NewRelicClient', () => {
);
test.each([
- [404, { error: { title: 'TESTING' } }],
- [500, {}],
+ ['Error communicating with New Relic: Not Found', 404, JSON.stringify({})],
+ [
+ 'Error communicating with New Relic: ERROR TITLE',
+ 404,
+ JSON.stringify({
+ error: {
+ title: 'ERROR TITLE',
+ },
+ }),
+ ],
+ [
+ 'Error communicating with New Relic: Internal Server Error',
+ 500,
+ JSON.stringify(undefined),
+ ],
+ [
+ 'Error communicating with New Relic: Internal Server Error',
+ 500,
+ JSON.stringify(null),
+ ],
+ [
+ 'Error communicating with New Relic: Internal Server Error',
+ 500,
+ ' {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
+ 'It throws this error: %p when the status code is %p and the body is %j',
+ async (expectedErrorMessage, statusCode, body) => {
server.use(
rest.get(
'https://test.test/newrelic/apm/api/applications.json',
- (_, res, ctx) => res(ctx.status(statusCode), ctx.json(jsonBody)),
+ (_, res, ctx) => res(ctx.status(statusCode), ctx.body(body)),
),
);
@@ -329,36 +336,31 @@ describe('NewRelicClient', () => {
discoveryApi: mockedDiscoveryApi,
fetchApi: new MockFetchApi(),
});
- const actual = await client.getApplications();
- expect(actual).toStrictEqual({ applications: [] });
+ await expect(client.getApplications()).rejects.toThrow(
+ expectedErrorMessage,
+ );
},
);
- it('Returns an empty array when the fetch itself throws an error', async () => {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
-
+ it('Throws an error when the body is invalid json but the status code is 200', async () => {
server.use(
- rest.get('https://test.test/newrelic/apm/api/applications.json', () => {
- throw new Error('Network Error');
- }),
+ rest.get(
+ 'https://test.test/newrelic/apm/api/applications.json',
+ (_, res, ctx) => res(ctx.status(200), ctx.body(' {
- const mockedDiscoveryApi: DiscoveryApi = {
- getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'),
- };
+ const getBaseUrlSpy = jest.spyOn(mockedDiscoveryApi, 'getBaseUrl');
server.use(
rest.get(
@@ -377,6 +379,6 @@ describe('NewRelicClient', () => {
await client.getApplications();
await client.getApplications();
- expect(mockedDiscoveryApi.getBaseUrl).toHaveBeenCalledTimes(1);
+ expect(getBaseUrlSpy).toHaveBeenCalledTimes(1);
});
});
diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts
index 3fdebd1494..b37575b163 100644
--- a/plugins/newrelic/src/api/index.ts
+++ b/plugins/newrelic/src/api/index.ts
@@ -102,39 +102,41 @@ export class NewRelicClient implements NewRelicApi {
this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`;
}
- try {
- const applications: NewRelicApplication[] = [];
- let targetUrl = this.baseUrl;
+ const applications: NewRelicApplication[] = [];
+ let targetUrl = this.baseUrl;
- do {
- const { nextPageUrl, applicationsFromReadPage } =
- await this.fetchNewRelic(targetUrl);
+ do {
+ const { nextPageUrl, applicationsFromReadPage } =
+ await this.fetchNewRelic(targetUrl);
- targetUrl = nextPageUrl ?? '';
- applications.push(...applicationsFromReadPage);
- } while (!!targetUrl);
+ targetUrl = nextPageUrl ?? '';
+ applications.push(...applicationsFromReadPage);
+ } while (!!targetUrl);
- return { applications };
- } catch (e) {
- return { applications: [] };
- }
+ return { applications };
}
private async fetchNewRelic(
targetUrl: string,
): Promise {
const response = await this.fetchApi.fetch(targetUrl);
- const responseJson = await response.json();
if (!response.ok) {
+ let specificErrorTitle = undefined;
+ try {
+ specificErrorTitle = (await response.json())?.error?.title;
+ } catch (e) {
+ /* empty */
+ }
+
throw new Error(
`Error communicating with New Relic: ${
- responseJson?.error?.title || response.statusText
+ specificErrorTitle || response.statusText
}`,
);
}
- const readResponse = responseJson as NewRelicApplications;
+ const readResponse = (await response.json()) as NewRelicApplications;
const linkHeader = response.headers.get('link');
const parseResult = parseLinkHeader(linkHeader);
const nextPageNumber = parseResult?.next?.page;
From 28803a7e200b62e63015634a9b6ea8e4534ee7e3 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 8 Aug 2023 20:09:35 +0000
Subject: [PATCH 098/372] fix(deps): update aws-sdk-js-v3 monorepo to v3.387.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 1266 ++++++++++++++++++++++++++---------------------------
1 file changed, 612 insertions(+), 654 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 84a1db2846..de57b2ee01 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -569,498 +569,457 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/client-cognito-identity@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-cognito-identity@npm:3.382.0"
+"@aws-sdk/client-cognito-identity@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/client-cognito-identity@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 42f44e01e751358f427c0a60b4b996dc6eda3ac1c5f6324785067f6ca36c1cbee213a4d6d642a73b072ad5b54ff15b84b57c69accfbfda082c39e63c727f5a96
+ checksum: 88be8e754b0f65bef93cf00f87336aa66b6e7d52d78f6bef132716f528f908318628f87316d0feae2d4a8fcf0ba2d2362ecae4bdea193eb8f14ed43eaa2deee1
languageName: node
linkType: hard
"@aws-sdk/client-eks@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-eks@npm:3.382.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/client-eks@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
- "@smithy/util-waiter": ^2.0.1
+ "@smithy/util-waiter": ^2.0.2
tslib: ^2.5.0
uuid: ^8.3.2
- checksum: 129ea874365fd5938257e918d4ffb59216528b5f6ae877a35b71e63b893529090cd710a5eb3bb15b182e24a8212de0c8131410d84698a6d8b52024b7aad26ec2
+ checksum: f4a8a64d7c7bfef23c4fb610156a4b80c14728870bf67346ee052082f136f02776aba89600adc79dae803d1e96c351f16a0dc4a0ddbe9df09a198644966d4fc3
languageName: node
linkType: hard
"@aws-sdk/client-organizations@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-organizations@npm:3.382.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/client-organizations@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 0abb001f0738f2037afb56e4de39c55efadd728b338da52d2b4c1f605209442ad5f9229b93ee04315f182a054c651283099e782e933e1b4df10aa63a8e93171f
+ checksum: 095de70f230113d1b035a25c93074e6953a06b99deb0bf39928c661e05710c7678defbdbb58dbb6919e6f4633fbc9a26a684b07821ba69e244e14733ba978eaa
languageName: node
linkType: hard
"@aws-sdk/client-s3@npm:^3.350.0":
- version: 3.383.0
- resolution: "@aws-sdk/client-s3@npm:3.383.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/client-s3@npm:3.387.0"
dependencies:
"@aws-crypto/sha1-browser": 3.0.0
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-bucket-endpoint": 3.378.0
- "@aws-sdk/middleware-expect-continue": 3.378.0
- "@aws-sdk/middleware-flexible-checksums": 3.383.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-location-constraint": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-sdk-s3": 3.379.1
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-ssec": 3.378.0
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/signature-v4-multi-region": 3.378.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-bucket-endpoint": 3.387.0
+ "@aws-sdk/middleware-expect-continue": 3.387.0
+ "@aws-sdk/middleware-flexible-checksums": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-location-constraint": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-sdk-s3": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-ssec": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/signature-v4-multi-region": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
"@aws-sdk/xml-builder": 3.310.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/eventstream-serde-browser": ^2.0.1
- "@smithy/eventstream-serde-config-resolver": ^2.0.1
- "@smithy/eventstream-serde-node": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-blob-browser": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/hash-stream-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/md5-js": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/eventstream-serde-browser": ^2.0.2
+ "@smithy/eventstream-serde-config-resolver": ^2.0.2
+ "@smithy/eventstream-serde-node": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-blob-browser": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/hash-stream-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/md5-js": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
- "@smithy/util-stream": ^2.0.1
+ "@smithy/util-stream": ^2.0.2
"@smithy/util-utf8": ^2.0.0
- "@smithy/util-waiter": ^2.0.1
+ "@smithy/util-waiter": ^2.0.2
fast-xml-parser: 4.2.5
tslib: ^2.5.0
- checksum: 0d3302e132e99e598db0628e697579828abc8a3ff68cf60b25113d077a62e05ca8438a822ae9601bb90420d7446caa6dc590bc5daf4d3bd9c48fd0527a928de6
+ checksum: cc0600dfc971b203bb737850613ab986811b36014f4f42e8cebca71d05baf7ef3d618687ae43c50694b1341f339a44671813187dff6910d24130418d755dd265
languageName: node
linkType: hard
"@aws-sdk/client-sqs@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-sqs@npm:3.382.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/client-sqs@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-sdk-sqs": 3.378.0
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/md5-js": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-sdk-sqs": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/md5-js": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
fast-xml-parser: 4.2.5
tslib: ^2.5.0
- checksum: 51fb80f57b579b053156ba5c9c2fa5bcdead931ed519b8bd3ceb486c74d8881458aafb8eb9497b76581fe3d7eab9deb207bcc2925d1189b13869a8ebbb7cb6cf
+ checksum: 3382ad67ec9679b73a571e0389db1ae80f21fa28beb3a13e3107ce72021705f37c3aacb06b3a3cfb4bc751de0453a443e30f315d5b2cb319abcd3454158c3518
languageName: node
linkType: hard
-"@aws-sdk/client-sso-oidc@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-sso-oidc@npm:3.382.0"
+"@aws-sdk/client-sso@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/client-sso@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 8e63db2ed9d27326d4afe897f7debbe4d7f6c2b27015d5a5e2ce0656adc3757860c313403c1f0e5bfb6790e610d63c8ef3d6ce103abaa07155b4578e4fae768d
+ checksum: ca4750675bc39e7201b4b611cd642cb5f37413138a09670499c00ea637509aab0bd54a7b96e6b4a2bec810f12c9c87d0519fc6cad0a7f8a86ecad4bf8047a7ac
languageName: node
linkType: hard
-"@aws-sdk/client-sso@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-sso@npm:3.382.0"
+"@aws-sdk/client-sts@npm:3.387.0, @aws-sdk/client-sts@npm:^3.350.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/client-sts@npm:3.387.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/middleware-host-header": 3.387.0
+ "@aws-sdk/middleware-logger": 3.387.0
+ "@aws-sdk/middleware-recursion-detection": 3.387.0
+ "@aws-sdk/middleware-sdk-sts": 3.387.0
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/middleware-user-agent": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@aws-sdk/util-user-agent-browser": 3.387.0
+ "@aws-sdk/util-user-agent-node": 3.387.0
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/hash-node": ^2.0.2
+ "@smithy/invalid-dependency": ^2.0.2
+ "@smithy/middleware-content-length": ^2.0.2
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/middleware-retry": ^2.0.2
+ "@smithy/middleware-serde": ^2.0.2
"@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-base64": ^2.0.0
"@smithy/util-body-length-browser": ^2.0.0
"@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
- "@smithy/util-retry": ^2.0.0
- "@smithy/util-utf8": ^2.0.0
- tslib: ^2.5.0
- checksum: ef6c13d334913e05d3f4e0296259312beb8e257a8ed2a7421bf3239e96b8712259e8f94c12d26dc2b3b2948dfd1ea1141bde24931916c55ab398f7556e05bb6b
- languageName: node
- linkType: hard
-
-"@aws-sdk/client-sts@npm:3.382.0, @aws-sdk/client-sts@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/client-sts@npm:3.382.0"
- dependencies:
- "@aws-crypto/sha256-browser": 3.0.0
- "@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/middleware-host-header": 3.379.1
- "@aws-sdk/middleware-logger": 3.378.0
- "@aws-sdk/middleware-recursion-detection": 3.378.0
- "@aws-sdk/middleware-sdk-sts": 3.379.1
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/middleware-user-agent": 3.382.0
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@aws-sdk/util-user-agent-browser": 3.378.0
- "@aws-sdk/util-user-agent-node": 3.378.0
- "@smithy/config-resolver": ^2.0.1
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/hash-node": ^2.0.1
- "@smithy/invalid-dependency": ^2.0.1
- "@smithy/middleware-content-length": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/middleware-retry": ^2.0.1
- "@smithy/middleware-serde": ^2.0.1
- "@smithy/middleware-stack": ^2.0.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
- "@smithy/util-base64": ^2.0.0
- "@smithy/util-body-length-browser": ^2.0.0
- "@smithy/util-body-length-node": ^2.0.0
- "@smithy/util-defaults-mode-browser": ^2.0.1
- "@smithy/util-defaults-mode-node": ^2.0.1
+ "@smithy/util-defaults-mode-browser": ^2.0.2
+ "@smithy/util-defaults-mode-node": ^2.0.2
"@smithy/util-retry": ^2.0.0
"@smithy/util-utf8": ^2.0.0
fast-xml-parser: 4.2.5
tslib: ^2.5.0
- checksum: e13fe8cfc271ea8fb56718e3e844a9715960165b65f6f8b226f02859d34344f1380987a4ce808530444c78853033ec37048dd4fa9c93ac0df8de89eeba71bd8e
+ checksum: 6f3a0a36c7d2881b438e64a2b6cb11f809c4bc406af27fb692d5d3a7cebb93fc5b26f235ee5a4f3eea620b0c07d015ce11e2d8f32c79b3ea01221fe8548c2421
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-cognito-identity@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.382.0"
+"@aws-sdk/credential-provider-cognito-identity@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.387.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.382.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/client-cognito-identity": 3.387.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 795efad00f9de6590c24770d8599ce70907f6abaa77f8702a0f77d4631f44dfd3108ebca32fe99a59d4ff37af7e357dbac7259e18a6e9f7ba8c416dc35678762
+ checksum: 126a72f6b6515237aa128c22fe6b0fbdfefbfb39950da8686187f567fdbaa6cb18d41437b67e80bd66e4f5d2eae0018587585700e0950c2a639e04092f31445e
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-env@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/credential-provider-env@npm:3.378.0"
+"@aws-sdk/credential-provider-env@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-env@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: ff32e595305f93756bb8fe9b26ca9a5336ca0517ca0d62dfc4cfa36d3bb990a65ebe7b0afcebaf102e4037ddb5b03132a6dde268f421bb72cbbd4249a22715b6
+ checksum: 7cfa4c87224a8632741d8fd1c25384a59413581b94eb79e1547a4f9b3542c2b27559c097a09f747f4b1617a3c382795f17aebc290b5e35a8a5fae1f93736449f
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-ini@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/credential-provider-ini@npm:3.382.0"
+"@aws-sdk/credential-provider-ini@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-ini@npm:3.387.0"
dependencies:
- "@aws-sdk/credential-provider-env": 3.378.0
- "@aws-sdk/credential-provider-process": 3.378.0
- "@aws-sdk/credential-provider-sso": 3.382.0
- "@aws-sdk/credential-provider-web-identity": 3.378.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/credential-provider-env": 3.387.0
+ "@aws-sdk/credential-provider-process": 3.387.0
+ "@aws-sdk/credential-provider-sso": 3.387.0
+ "@aws-sdk/credential-provider-web-identity": 3.387.0
+ "@aws-sdk/types": 3.387.0
"@smithy/credential-provider-imds": ^2.0.0
"@smithy/property-provider": ^2.0.0
"@smithy/shared-ini-file-loader": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: c52c431f03864d46d23e3515516c62a91af175995fba9dadb7cff4e005d7d2ed19b9b5508859768ce4d98746da260709e7caf703c7211b1a21c62a6a1606ef5d
+ checksum: 40e69ca6081d24016b0a56fab6cca9b6cd2d5ca2cf17ab2e3e99a99e351d78d86d38f5e424a6c26355d099c6e060e24c56ff3064b6b1fbc2cad9c89b1dd655c4
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-node@npm:3.382.0, @aws-sdk/credential-provider-node@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/credential-provider-node@npm:3.382.0"
+"@aws-sdk/credential-provider-node@npm:3.387.0, @aws-sdk/credential-provider-node@npm:^3.350.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-node@npm:3.387.0"
dependencies:
- "@aws-sdk/credential-provider-env": 3.378.0
- "@aws-sdk/credential-provider-ini": 3.382.0
- "@aws-sdk/credential-provider-process": 3.378.0
- "@aws-sdk/credential-provider-sso": 3.382.0
- "@aws-sdk/credential-provider-web-identity": 3.378.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/credential-provider-env": 3.387.0
+ "@aws-sdk/credential-provider-ini": 3.387.0
+ "@aws-sdk/credential-provider-process": 3.387.0
+ "@aws-sdk/credential-provider-sso": 3.387.0
+ "@aws-sdk/credential-provider-web-identity": 3.387.0
+ "@aws-sdk/types": 3.387.0
"@smithy/credential-provider-imds": ^2.0.0
"@smithy/property-provider": ^2.0.0
"@smithy/shared-ini-file-loader": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 895405b84fc938b0c3e34f73c63b5426761de3bc2dcfa06e1a06f55ae0f8135d81530c0340c0b1b33b4bcb479f5048a9ec0390288503a261c692a0df2a0b933d
+ checksum: cdc3f29c6be304e39cb42f8b53227f607e8bb10d0fae542614d76b322e1a75718d70a4726d97cb24d6e3da51245b837dcb07cfaf34eb8600d290267c8987a06a
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-process@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/credential-provider-process@npm:3.378.0"
+"@aws-sdk/credential-provider-process@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-process@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
"@smithy/shared-ini-file-loader": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 6b8343fb9266ef490bf8e654f0d0b53585498ecf755e0e5cbee9bc93426927703637d02740050c491738a83c097a4d848244f3a66a633fd526d9339d846bdbdd
+ checksum: 90b5c902b659dd6d39b6e81503fa4587ed5bb7c4b6a7ecb648561e8ca7a82c621b0b65496855cba3e68d63e1c432e26d40c89c0194e5952f31b52cbd20bca8ae
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-sso@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/credential-provider-sso@npm:3.382.0"
+"@aws-sdk/credential-provider-sso@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-sso@npm:3.387.0"
dependencies:
- "@aws-sdk/client-sso": 3.382.0
- "@aws-sdk/token-providers": 3.382.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/client-sso": 3.387.0
+ "@aws-sdk/token-providers": 3.387.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
"@smithy/shared-ini-file-loader": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: ec0d216077a0dd5724fed30cdbc4a235b998c5b5821ba250be749e0e4c0410ce1e06c1a2531281570798b77fbe7a9ff36a0d9960853d8f6b2d98247702649d68
+ checksum: 740d16079be50a43a23b59c10d44fabca3da67ee251f2b6975d7b58909554c66e0c8a40f6e9457d85f2997a63cf435bcbf82e53d9d2f7c7005f243dbe5305fff
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-web-identity@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/credential-provider-web-identity@npm:3.378.0"
+"@aws-sdk/credential-provider-web-identity@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-provider-web-identity@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 22cf227f609ea654749517e25c88e9c5e7b9dd97cc781d168b1f7cedf26a692a0d1643c3933a1975a95414c0d6a7dbcef6255ca4f13a788e101f95372e17a3af
+ checksum: 47cf13e4275ee948750c78c147fe70a64698197ed86bc38c29269e745001775cf4261e763e6dd37235ed50adc5638add08b3c04d6bb9af1cf1ef7c79f0cd336b
languageName: node
linkType: hard
"@aws-sdk/credential-providers@npm:^3.350.0":
- version: 3.382.0
- resolution: "@aws-sdk/credential-providers@npm:3.382.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/credential-providers@npm:3.387.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.382.0
- "@aws-sdk/client-sso": 3.382.0
- "@aws-sdk/client-sts": 3.382.0
- "@aws-sdk/credential-provider-cognito-identity": 3.382.0
- "@aws-sdk/credential-provider-env": 3.378.0
- "@aws-sdk/credential-provider-ini": 3.382.0
- "@aws-sdk/credential-provider-node": 3.382.0
- "@aws-sdk/credential-provider-process": 3.378.0
- "@aws-sdk/credential-provider-sso": 3.382.0
- "@aws-sdk/credential-provider-web-identity": 3.378.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/client-cognito-identity": 3.387.0
+ "@aws-sdk/client-sso": 3.387.0
+ "@aws-sdk/client-sts": 3.387.0
+ "@aws-sdk/credential-provider-cognito-identity": 3.387.0
+ "@aws-sdk/credential-provider-env": 3.387.0
+ "@aws-sdk/credential-provider-ini": 3.387.0
+ "@aws-sdk/credential-provider-node": 3.387.0
+ "@aws-sdk/credential-provider-process": 3.387.0
+ "@aws-sdk/credential-provider-sso": 3.387.0
+ "@aws-sdk/credential-provider-web-identity": 3.387.0
+ "@aws-sdk/types": 3.387.0
"@smithy/credential-provider-imds": ^2.0.0
"@smithy/property-provider": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 0518892179add223708eef3e3c3420a25d2ec353bee6361f4f88290dca11d1ec04737b2f67d2f6db6e194c74ae51121223997b5d5da4324b3ef346685a9dae37
+ checksum: 761260e185f932cddc523d3e1491497cf3ff147496af354aed2ddd43da5a86218dbc2eccec00a71c166070dd24261795c2eb227ab986761478bd138ccb3fa9af
languageName: node
linkType: hard
@@ -1086,33 +1045,33 @@ __metadata:
linkType: hard
"@aws-sdk/lib-storage@npm:^3.350.0":
- version: 3.383.0
- resolution: "@aws-sdk/lib-storage@npm:3.383.0"
+ version: 3.387.0
+ resolution: "@aws-sdk/lib-storage@npm:3.387.0"
dependencies:
"@smithy/abort-controller": ^2.0.1
- "@smithy/middleware-endpoint": ^2.0.1
- "@smithy/smithy-client": ^2.0.1
+ "@smithy/middleware-endpoint": ^2.0.2
+ "@smithy/smithy-client": ^2.0.2
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
tslib: ^2.5.0
peerDependencies:
"@aws-sdk/client-s3": ^3.0.0
- checksum: fca3fe53d4631449e3a929151a4e1aed4b70a2b4442f9360ec1edea5db7a83c82abbe1a1eefee51b647290b903eae7341798f7f3418b15fce21e1b3243af3976
+ checksum: aa753c2e6f9db051fe893ab2352a3c7c84ca53089ba837b972e1ae5911af71bb978002ea07ed59f673b3773fe3d1fbd2ce2fff251b671f672655cfbf9b48626e
languageName: node
linkType: hard
-"@aws-sdk/middleware-bucket-endpoint@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.378.0"
+"@aws-sdk/middleware-bucket-endpoint@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@aws-sdk/util-arn-parser": 3.310.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-config-provider": ^2.0.0
tslib: ^2.5.0
- checksum: 7aa034b5e4abbf8a52a6dea7de61a43c744bda65f0f5d5db8967dd804206264878c321191aa9c6ce6e304e7981e711e47603e0aa0d06b9bde4991ffd1f7accba
+ checksum: 61b134bb6ba13d8007f1e8bd9a9c4ab4041c66fa184deaf7a0796297c218f14eb175f957038577909ac94e16fdf97d115f698a2d629ce1d4122593fba86f192e
languageName: node
linkType: hard
@@ -1129,115 +1088,115 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-expect-continue@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-expect-continue@npm:3.378.0"
+"@aws-sdk/middleware-expect-continue@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-expect-continue@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 0935bd4cbb3ae84f2a84ed1b3526d798b69f2c81a2b94bbb6b04525b907f64891cde4518edaeb7d561bcc37bfeda44fb589c56e5a30de49c4c23a61bc801bcf0
+ checksum: 48644c0809702b9b82c9d43bad3a3919868295914550d5c0ce72dbefa39dd24daf4aa02b7a431e1856e7bff3c3bff93ea1d06936f7a20213c1ddbea14cf6b1ad
languageName: node
linkType: hard
-"@aws-sdk/middleware-flexible-checksums@npm:3.383.0":
- version: 3.383.0
- resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.383.0"
+"@aws-sdk/middleware-flexible-checksums@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.387.0"
dependencies:
"@aws-crypto/crc32": 3.0.0
"@aws-crypto/crc32c": 3.0.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/is-array-buffer": ^2.0.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: fc08432955bf24f4494eaebf350b3d18f0bce0fe97b5a7f0b022a21a15048094fdb9104bf7b8e45aa9c885ed18a93ab29066c6667a2f5009d02688ab14bf49cc
+ checksum: 056a4558750f3c6bf676154778de813bbed2897d5a79efbe142ea6f99643fdf98b4367f602bb61a3cecd5e22ea2b680b842a0cfc5cf8f828d936626d8d4126ea
languageName: node
linkType: hard
-"@aws-sdk/middleware-host-header@npm:3.379.1":
- version: 3.379.1
- resolution: "@aws-sdk/middleware-host-header@npm:3.379.1"
+"@aws-sdk/middleware-host-header@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-host-header@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 32651531108e43edf745721828feab703ab7f39837da8214bb37593200daab71042336a25b58bd9b3e9b78ac647a828674a48ebbc1f5946a533f8642fb16b92d
+ checksum: 91fdffa0051d1c426533170b1770c174abffc822b6e8e0cf0b850536a32c9fdea3241279494e2511232a46260b2320546bb9a59b2d4ee05a72f3cedabe6fa1a1
languageName: node
linkType: hard
-"@aws-sdk/middleware-location-constraint@npm:3.379.1":
- version: 3.379.1
- resolution: "@aws-sdk/middleware-location-constraint@npm:3.379.1"
+"@aws-sdk/middleware-location-constraint@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-location-constraint@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 6cc91e29e89bb8036bcf53933ac70ec0b90ef899105c10fab8293721424b4a3f4cb86996cec4073c4d7988b9a2810c5bcaab55c18e8be2a5b20646e83306f23a
+ checksum: 4027555e3c0ba089711a93ce0ca0ab4527052ff67fe7d390b59d305f238109b9f4aec63ac1e51b6e5a88026c2417967dc7091178061d096fbb3ee23ca2947555
languageName: node
linkType: hard
-"@aws-sdk/middleware-logger@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-logger@npm:3.378.0"
+"@aws-sdk/middleware-logger@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-logger@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: c1c32a5ba4ae92cf988d2c0fed3a15975e1b4612cb546133ac74eb91276fc0714278e3aa30e88d0fae00596208baed76b58e97d952daafd63777b79f185a6c3f
+ checksum: 75812390856559eaf9e8259f3d335c97268783d2e175dbd4568271e8f321a7a34754fcfcff0f70726a751c0418f6787ddbd7f1ebb3b644530e743edb5da63c2b
languageName: node
linkType: hard
-"@aws-sdk/middleware-recursion-detection@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-recursion-detection@npm:3.378.0"
+"@aws-sdk/middleware-recursion-detection@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-recursion-detection@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 2104b3834ac6674afac7a50eb4430277ef789f3fbf439d2adab9d43b6dca5dad7518f2a8cb578d3f2ff2c9883ee4e756c7fa10166c0e49f8ea307555f69b06f0
+ checksum: dd6ed9eb8969181f3adf5820f66db38ab544fda03f44bec87e6efdb194f01184094dc2d3ce150e9f045a75decb99e37a9a1dc8b37a78f8722caae8367c9db8d9
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-s3@npm:3.379.1":
- version: 3.379.1
- resolution: "@aws-sdk/middleware-sdk-s3@npm:3.379.1"
+"@aws-sdk/middleware-sdk-s3@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-sdk-s3@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@aws-sdk/util-arn-parser": 3.310.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 0e1ff73d9354817439434627c1fbe30ef958f7bcfafecc83cf541e6ef7c8ef623d46db6aa97b0fac2c9ff833e2a9cd55b6de001baba1edf22d2199ebc3bc1bd3
+ checksum: 674ebd73ed89f8375b5a7f15135a65e61736b8bc58f076504a050e9cb679da867ba256e6dc8c46b2a403c3a2fbed0667e40bb3b40bf79bc54a669650f09d97ac
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-sqs@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.378.0"
+"@aws-sdk/middleware-sdk-sqs@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
"@smithy/util-hex-encoding": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 83ff0b0c3a09543ac1b298556408ef7f602a83efd2837b31d4cb4a499223ff0b10f20a03e0c59fea5342a41bbd9b36b3188ea5a2d8e5f52aa0a33f43d09ca7a1
+ checksum: fa734414df1c597c8fbcdff5131cfb240682a99d6d2302096040a05ff64742383f6812e8e41a7b1d32421b5556a138fd9241bced7eb35a29bcbca5376bb793b1
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-sts@npm:3.379.1":
- version: 3.379.1
- resolution: "@aws-sdk/middleware-sdk-sts@npm:3.379.1"
+"@aws-sdk/middleware-sdk-sts@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-sdk-sts@npm:3.387.0"
dependencies:
- "@aws-sdk/middleware-signing": 3.379.1
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/middleware-signing": 3.387.0
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 22fd2f565c5270ca0de75fbd7d751e15639a8d5fb75656bd8caf62091eda8e47ea208514964a1ae211db63b4d7e98d9a8a8f6e4067953e18a74c039e1a8b9084
+ checksum: b9d5e4af2e10f980ef19add7eccd7f04eb5e42987c238acb17093b1d4239ae3430fb25e1c34ef915cd3420a2e93d59cf6570c1f9275bf5345733b1b030876cb5
languageName: node
linkType: hard
@@ -1251,42 +1210,42 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-signing@npm:3.379.1":
- version: 3.379.1
- resolution: "@aws-sdk/middleware-signing@npm:3.379.1"
+"@aws-sdk/middleware-signing@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-signing@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
- "@smithy/protocol-http": ^2.0.1
+ "@smithy/protocol-http": ^2.0.2
"@smithy/signature-v4": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-middleware": ^2.0.0
tslib: ^2.5.0
- checksum: f36f6de13624f504f14db8039e02a6473d366eb11c670f555613ddeb0feac523d08f7d66a985c2a7c1eee548c66f55ac4ed7c148e79efe3fa1f5ad165af627f4
+ checksum: 3553748d92a64232df572f2b56d122943db9520d31b224f263ecce5711368de9d8bddc51facde9bf8a7d1075c3c381a96e65d4ad8d7f14f097d8f7e484c712e4
languageName: node
linkType: hard
-"@aws-sdk/middleware-ssec@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/middleware-ssec@npm:3.378.0"
+"@aws-sdk/middleware-ssec@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-ssec@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 4250668f826a5ab855983a98adb08431cf35ad68785e89e1c029c74f994db9d283c8bdcdc1f9fc60a3691b479b78a1cf48898b105f32448d5f092a2a96841e6d
+ checksum: 362b2c5faf5a606734d72104071a6a5aaaab7ecb8eb36507f1db32e22f842898fa589916b59e239f8cbbccdbf4743c978ad2fab2e434d14f3397f71086df31f4
languageName: node
linkType: hard
-"@aws-sdk/middleware-user-agent@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/middleware-user-agent@npm:3.382.0"
+"@aws-sdk/middleware-user-agent@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/middleware-user-agent@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@aws-sdk/util-endpoints": 3.382.0
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@aws-sdk/util-endpoints": 3.387.0
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: e53150ecc07f408caa6fa69e6e30ebf9aa000fb59737eeb350fdf4db4789e0d2163bf14f17f4ff4223174e932ce5b71bd9ec662efc61a78a963e12891ecfed6f
+ checksum: 54cb1ddbd743bf70a28c1eebd6d1bc0adfad79b2bff0553737d238de01a83e11c9130c38526d4236457fa124d6024fd0c09607d796808dfe43821c75387d8fba
languageName: node
linkType: hard
@@ -1334,21 +1293,21 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/signature-v4-multi-region@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/signature-v4-multi-region@npm:3.378.0"
+"@aws-sdk/signature-v4-multi-region@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/signature-v4-multi-region@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/protocol-http": ^2.0.1
+ "@aws-sdk/types": 3.387.0
+ "@smithy/protocol-http": ^2.0.2
"@smithy/signature-v4": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
peerDependencies:
"@aws-sdk/signature-v4-crt": ^3.118.0
peerDependenciesMeta:
"@aws-sdk/signature-v4-crt":
optional: true
- checksum: 0bf5e16946f6c263e14a36702de7e2be8c070c47426dd5e226e00d0fcd48d407ae6f48127386cc7250ccbad8cb17a0336bfad958236ea11c3a94d3e148244d35
+ checksum: a520eb8a564edd12169addef6c449c236e6c86a657f7e1cda0331eff8adfa925e1ff4a201f4adbedd6f078fe5ceb89f933a268e5c4b61c92ff60ae47132ff5ae
languageName: node
linkType: hard
@@ -1368,17 +1327,16 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/token-providers@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/token-providers@npm:3.382.0"
+"@aws-sdk/token-providers@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/token-providers@npm:3.387.0"
dependencies:
- "@aws-sdk/client-sso-oidc": 3.382.0
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
"@smithy/property-provider": ^2.0.0
"@smithy/shared-ini-file-loader": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 813dc973f616c2d7ec6f71da14e92d7c4b84c28309ac4d8426fe88d0c6bbe70006f9df0a984985cfcf232976188afc3d17ac5168e832e717ae4db41a21c6d67d
+ checksum: dffbaa98da3bd30fdedab88093d3ae94b4fdad1dd12b30fd5dbf7cfb01d1e219e3f5abe403ca71514bfa1f92818dde97a6d9c9d2cda35f2cbd43882750017bc2
languageName: node
linkType: hard
@@ -1392,13 +1350,13 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/types@npm:3.378.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0":
- version: 3.378.0
- resolution: "@aws-sdk/types@npm:3.378.0"
+"@aws-sdk/types@npm:3.387.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/types@npm:3.387.0"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: c4c7ebb48a625cb990a1288466f2dd8f0d770078cc77b60d5ee4a803b473ff41df474271dff26d3dadad151d5a016b398167738dd4926266ff1cd04585d4d8e8
+ checksum: 39c5c3eea4cd8705c0c9dafa187ac6e14585a1bb6d162bbda8dc3ea5522020302ccd3ff7c8b425225c625d2b83ae6e6f6b71f621da790830a8a55ed5643197ec
languageName: node
linkType: hard
@@ -1432,13 +1390,13 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-endpoints@npm:3.382.0":
- version: 3.382.0
- resolution: "@aws-sdk/util-endpoints@npm:3.382.0"
+"@aws-sdk/util-endpoints@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/util-endpoints@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
+ "@aws-sdk/types": 3.387.0
tslib: ^2.5.0
- checksum: 9573e0d30ef7aafb5f51a51d7cf0416b8fe21af6456bff2c1e660a615325012177b70bf78f6591dbb6d863f4e57ac6ac3279bfa3eca2d504a9121f82edf73118
+ checksum: 15c3250f096ca4ed7a832294cc3b609e62004f8888781cbd5ee907bd325bb5b999867aa7c8fdd5b806e92424f2561f5dd8ae3ebbb876044289d36163180fa2a5
languageName: node
linkType: hard
@@ -1490,32 +1448,32 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-browser@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/util-user-agent-browser@npm:3.378.0"
+"@aws-sdk/util-user-agent-browser@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/util-user-agent-browser@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/types": ^2.1.0
bowser: ^2.11.0
tslib: ^2.5.0
- checksum: 412ef9ffdcd3d32b9e9bb62dfa252871bc9fbee19814553aeff65bffb21de6ca236199b47eb646c4af8cb326aebab3d63ef4b303050e61fb08eed0d12bb73f8c
+ checksum: a7ab9c2d98c4e00f7ac8aab8f08e8f0472d026573c0790aa6036557de0dae5c6e89a3989e00937725badbefcfdfd4fa5e5a996e5e11a043a3d594b5956cfae2c
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-node@npm:3.378.0":
- version: 3.378.0
- resolution: "@aws-sdk/util-user-agent-node@npm:3.378.0"
+"@aws-sdk/util-user-agent-node@npm:3.387.0":
+ version: 3.387.0
+ resolution: "@aws-sdk/util-user-agent-node@npm:3.387.0"
dependencies:
- "@aws-sdk/types": 3.378.0
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@aws-sdk/types": 3.387.0
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
peerDependencies:
aws-crt: ">=1.0.0"
peerDependenciesMeta:
aws-crt:
optional: true
- checksum: b37271d56a8d91072b7af5d71351e388a822b389167638d779ce0b099a1024b412fd3b50a6b6334687a3ae0bebec89479e48a9dceed2262f8801e76e3b5f89ad
+ checksum: abe3cf2d058ff0a907780ee2100b0d5805d7878c434115cda645d2fe0a57226dd7cf86c2d795ef75d8062914d89c8d71752789b355317586417b92482e05c98f
languageName: node
linkType: hard
@@ -14693,13 +14651,13 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/abort-controller@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/abort-controller@npm:2.0.1"
+"@smithy/abort-controller@npm:^2.0.1, @smithy/abort-controller@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/abort-controller@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: ec126164886a6f44ed83bde7599cd1a16e20cf429c05bf68897d06220b638aab6c7b6b3b937e65fc25d383d015ed2218ca8c1afaed2ff65fad197d0df2ccebc7
+ checksum: 68a331dc59decd842b2eecae3ff8705340d9504048a0e5af31286e9505e2473f81d96bfb2dd395161529adee5413bf6aaed7e264debd0862113325c85e0771da
languageName: node
linkType: hard
@@ -14722,141 +14680,141 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/config-resolver@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/config-resolver@npm:2.0.1"
+"@smithy/config-resolver@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/config-resolver@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-config-provider": ^2.0.0
"@smithy/util-middleware": ^2.0.0
tslib: ^2.5.0
- checksum: ded6c77fd29ab026b5dcc1b4c4adb417515f7fd18af80f487f1868273ae98003d35ff7c6286207895fc74f5098e6eb8a94555a5af89818796a2fb8bb01a80c60
+ checksum: deb7ecab3d3f2ce57304d99605e55739c94356105c8106c8ca9bb5c0fc329e2b4153788a12bb8600187c51645b9a5be799571c8e380cc4458d110c37f127c75b
languageName: node
linkType: hard
-"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/credential-provider-imds@npm:2.0.1"
+"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/credential-provider-imds@npm:2.0.2"
dependencies:
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/property-provider": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/property-provider": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
tslib: ^2.5.0
- checksum: cf0ee4b50da5584685afc9019af1a8e8c910890dc3128a574b606b7845d898cd65429263682ef27da79dc358286f48b4452617a2fe9fcb98e5483908ac05ce8b
+ checksum: 519fd53a74e7fdb4a5e39bf4d0554983231919d80e2b9e324976a14ec41d4e0e4de6c9272af10820c220810ba30a9803a901c677b9994b8893aded10e1b36505
languageName: node
linkType: hard
-"@smithy/eventstream-codec@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/eventstream-codec@npm:2.0.1"
+"@smithy/eventstream-codec@npm:^2.0.1, @smithy/eventstream-codec@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/eventstream-codec@npm:2.0.2"
dependencies:
"@aws-crypto/crc32": 3.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-hex-encoding": ^2.0.0
tslib: ^2.5.0
- checksum: 2b7dc1f974b5302dd9fc0982c2484a4d6286e512db78c1c0b8796a5916c3846644b02c6dbbc8433181aeb41c5468d73635459e9f37d640a0bdaf3fe670da8914
+ checksum: aa9136264c1f9a3bc8b9bc175d28b10d0ce72377593b4ed32d11b1753723a88e6305991ab0c6822d986f31edb914355df6bec8fb65ffe1f66c2ce6dab0768668
languageName: node
linkType: hard
-"@smithy/eventstream-serde-browser@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/eventstream-serde-browser@npm:2.0.1"
+"@smithy/eventstream-serde-browser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/eventstream-serde-browser@npm:2.0.2"
dependencies:
- "@smithy/eventstream-serde-universal": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/eventstream-serde-universal": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 08fc90c21a27f323a30c95d6fbbd57df077fbde8d80ae554b13984cc9a189f31e173296fdff64d7630118949f206d2054e75dd8e0ed97d281e1b41c933947570
+ checksum: b21c97d9e02fe3ba9110cbea35f674b3746c36eafde2874e878fcea03f7c1d1f34f38797df38b8b04dcc19576aa9f568e3e241f79aac696169941c4f44132d08
languageName: node
linkType: hard
-"@smithy/eventstream-serde-config-resolver@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.1"
+"@smithy/eventstream-serde-config-resolver@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 9efb031a7029fe21153d695126ee28bfbaa1c42d6d7b4ffedf06959e9d4ab3c7312c7c75cea102af2451dad919bea49dbe9d6fb9877fbf25fdd639a8c715a864
+ checksum: 707e6e39e2ccb832db06f82bbf96c655548052458bf3f8b8b00e32461747b1fab1be9ec60a5ddbff8770e48b2cd153277bc81b203765d66b78fc2f76252ce8b9
languageName: node
linkType: hard
-"@smithy/eventstream-serde-node@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/eventstream-serde-node@npm:2.0.1"
+"@smithy/eventstream-serde-node@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/eventstream-serde-node@npm:2.0.2"
dependencies:
- "@smithy/eventstream-serde-universal": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/eventstream-serde-universal": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: ff7460759e45286980d8c7addff2bd52b8c8dbcddd6ad6877f31654f936be5dbfbe9745b1ce70fb6b05b0426181594555593826b209f41e74fdc78dcb2e500b7
+ checksum: dfda607f0d76098616341c1e6f3012242c58f1d3211a464631f4d337f7113bce7f0380fe5cdf5b6e4e391beb54562d1a96494ca8d2af847f1f13264f362365aa
languageName: node
linkType: hard
-"@smithy/eventstream-serde-universal@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/eventstream-serde-universal@npm:2.0.1"
+"@smithy/eventstream-serde-universal@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/eventstream-serde-universal@npm:2.0.2"
dependencies:
- "@smithy/eventstream-codec": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/eventstream-codec": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: b9c7492719ccf444d209e6ced04c1526211b65cab23d6dbf89213c65957493cd5d0ec0f382d021c22e93461d2a7f3a2c7cb08c899d9e1690c3bf9c47d3edfa47
+ checksum: 887d03832126054fdfd6426ee3153eec54ecfcddeb04c63c69f6f1fcc23e0b8af737dce7c8ae07ca456f1e0be63614498280b77ff5c919793a0633b1d7d11a2c
languageName: node
linkType: hard
-"@smithy/fetch-http-handler@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/fetch-http-handler@npm:2.0.1"
+"@smithy/fetch-http-handler@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/fetch-http-handler@npm:2.0.2"
dependencies:
- "@smithy/protocol-http": ^2.0.1
- "@smithy/querystring-builder": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/querystring-builder": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-base64": ^2.0.0
tslib: ^2.5.0
- checksum: ba80a2182d3c68a88212a99cbeb1bd645f5f6f7584081763faf5590443266e9f32b15e8f7380eaf92ed61fe9fdfbdec1ec030eb0c02b68ed48b4fa710c6718e3
+ checksum: 2c7c97c02bc347b420c51a052b97884e70cfbed25475e68d5a1e8f46b1b0873d727c4989b4a71aaa5e5e1ba055c423f989f5b01bf105176580acc9d5cc80eb72
languageName: node
linkType: hard
-"@smithy/hash-blob-browser@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/hash-blob-browser@npm:2.0.1"
+"@smithy/hash-blob-browser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/hash-blob-browser@npm:2.0.2"
dependencies:
"@smithy/chunked-blob-reader": ^2.0.0
"@smithy/chunked-blob-reader-native": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 480555069022fc725f05b1b5ecdd3d70280d851a4e61b5ddd3f1c43ef59e8c0e9e3b45991716a87d9bb7d542833d01d0d614d3b7d60448ffa521956a8be58cb3
+ checksum: add61e1fbdcaf5b019bb8ad4d1dbb70cbc59c65f039cab2ac9fc4617333ce7a3aa356d51b737732560d23db29f7afbd5c1addb4db738ec21dfa2cad5dd82ca05
languageName: node
linkType: hard
-"@smithy/hash-node@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/hash-node@npm:2.0.1"
+"@smithy/hash-node@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/hash-node@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-buffer-from": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: e1a1b1ea44f42eacd982680877c31ce4ea4243455bc16e89357981c60902f93074874148701bc82776f41e66eacc6b16c8cc46cd7c99f4135ba13f4ba4a44edf
+ checksum: 2917822fcc965596755a284cbae8376adb0d1ebc5998ae8a5682e4385f29eaac4408b24e560eced4b7fb8a279fa4453277dc3853114724d4e4c62ce935863fa9
languageName: node
linkType: hard
-"@smithy/hash-stream-node@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/hash-stream-node@npm:2.0.1"
+"@smithy/hash-stream-node@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/hash-stream-node@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 8c80dbfe4ae143d73feae381c47e78e29f05d9bfed457cfdb22c5e0fc5b773500c943cd9ca58a1eb04f7ccfcea197bcd05741ad68ae17b08472264e900bc8edf
+ checksum: b588608e200978a09633591e5f155bb63890d0f96776eaf94bfbf8df7223bf6a83e8f1a0b256fd7ee286b7b2ca53f1f7124e2d436d5e21ddf10aeb52e7ab528d
languageName: node
linkType: hard
-"@smithy/invalid-dependency@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/invalid-dependency@npm:2.0.1"
+"@smithy/invalid-dependency@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/invalid-dependency@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: d50f5781c9e0b1cb336fa20979ee69640bfa586139237eacae9f9068e40c8c729b3b4646af5fab0250e8e49649acab14262d3524f515ecbecc58cd24b68b7ef5
+ checksum: c31f5d8555729ac34a0e56f350061ee127a6869c6fbe5e30c303e8b273aa52370d7e3a9ec603448cf2e986740a4c67e5285a350d738896e2ad4f7312cb3ed943
languageName: node
linkType: hard
@@ -14869,63 +14827,63 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/md5-js@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/md5-js@npm:2.0.1"
+"@smithy/md5-js@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/md5-js@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 29593e5ea6a53140edadbbfba1004ca811cef1d53db800446fa578a88d71fb1e042cb551b5b954162066027a09c7866d7d955f6d0aadfebeec01af744f7c8b8a
+ checksum: 889056925d17f424f23540b25c237c7ad4e9b7b8a7817a0172cf0a648da5ab9c709593790629955365c93504787c534b2156aa8d056ea27fe81a88106126268b
languageName: node
linkType: hard
-"@smithy/middleware-content-length@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/middleware-content-length@npm:2.0.1"
+"@smithy/middleware-content-length@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/middleware-content-length@npm:2.0.2"
dependencies:
- "@smithy/protocol-http": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: f9074ba2d5780b0d55e46aeacff8276fb11acf828afdc813ec3c5f118323533f774dd2b99ae00c946993c5ba91c66afa5b40d66ce5f035a456cf6c4cd38a83e1
+ checksum: d4a28b967629eab3ee2265ad34e6f45b8006e247e51fdce53604431de58a7840a304ff530475b160d50dc9fb47b1c4c91e51e340003c57b9aaa8483686540336
languageName: node
linkType: hard
-"@smithy/middleware-endpoint@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/middleware-endpoint@npm:2.0.1"
+"@smithy/middleware-endpoint@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/middleware-endpoint@npm:2.0.2"
dependencies:
- "@smithy/middleware-serde": ^2.0.1
- "@smithy/types": ^2.0.2
- "@smithy/url-parser": ^2.0.1
+ "@smithy/middleware-serde": ^2.0.2
+ "@smithy/types": ^2.1.0
+ "@smithy/url-parser": ^2.0.2
"@smithy/util-middleware": ^2.0.0
tslib: ^2.5.0
- checksum: 5aa0a4c6972a533936dba5eb0d719bb9b534484a401f1a6135a201fc683083aa925d207f2155e15656b2c941c05de2a2aa74dae5e0b9d1a183371a3c3b90b3f6
+ checksum: 2a1ba8fa8fe0aef2bdd87c6fc7d3567b4b03e63ad8b46531130042c226b627d438f163caad81295b7dcb506536fd0700fb0ddc20bfc894c7be589b8c891fa799
languageName: node
linkType: hard
-"@smithy/middleware-retry@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/middleware-retry@npm:2.0.1"
+"@smithy/middleware-retry@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/middleware-retry@npm:2.0.2"
dependencies:
- "@smithy/protocol-http": ^2.0.1
+ "@smithy/protocol-http": ^2.0.2
"@smithy/service-error-classification": ^2.0.0
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-middleware": ^2.0.0
"@smithy/util-retry": ^2.0.0
tslib: ^2.5.0
uuid: ^8.3.2
- checksum: a1dd6d1feb560632075f3b3be2f3d406635dc3a158e286eb43f3b93c52deacb2a7c7262f3c911cb652f42e4cb4091155482b04a6c0c61360b650468a54f944b2
+ checksum: c88134fe739b9b038117b388b10e29e53407af3bd6f61fbfdc2600b45b6415bb2e75ee4ce9b0423376d11472d0fb96ba6300c23a1c0ddf8a5d3806f8b7d3c088
languageName: node
linkType: hard
-"@smithy/middleware-serde@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/middleware-serde@npm:2.0.1"
+"@smithy/middleware-serde@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/middleware-serde@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 115d2b94925f24e3592d6e3889179c30c8992957021bfdc67496f9e36dcb3ffe2282a01c0e439282e89c0a5b56bf125a1bec2c87aed02e325316e3b6050ed9fa
+ checksum: 6d343eceeff45c08142ff0567885b910f6d77e7ec95396f8fc4b0fc259284c8d430bd8412ef36c5c45905ee631c660524e38450bda86400b06f3272f4504b08f
languageName: node
linkType: hard
@@ -14938,69 +14896,69 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/node-config-provider@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/node-config-provider@npm:2.0.1"
+"@smithy/node-config-provider@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/node-config-provider@npm:2.0.2"
dependencies:
- "@smithy/property-provider": ^2.0.1
- "@smithy/shared-ini-file-loader": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/property-provider": ^2.0.2
+ "@smithy/shared-ini-file-loader": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 9752c8e7c01fc991b93bb080e8486b82d55d592a2c7573004c2e296c192c153b967c79c03be0924c59e14ffc3de04ca861e99370d2ae9a0d8c54f25ea3f99be8
+ checksum: 6cf3953dfd08f337b5ef41fa6808b083ceb06624e2de4996bfbb7d4326a8deefe73e47d6bb00ca81a2d2dc9b662d3eaaa3d1698262f2256d1a7c71290663ca12
languageName: node
linkType: hard
-"@smithy/node-http-handler@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/node-http-handler@npm:2.0.1"
+"@smithy/node-http-handler@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/node-http-handler@npm:2.0.2"
dependencies:
- "@smithy/abort-controller": ^2.0.1
- "@smithy/protocol-http": ^2.0.1
- "@smithy/querystring-builder": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/abort-controller": ^2.0.2
+ "@smithy/protocol-http": ^2.0.2
+ "@smithy/querystring-builder": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 04705e7c28fb71a5800a511f64dd182230a501742f779860b1d2155a02eec9c9df3b573e2ad9cd3a0148891f02b780edb7803c95b321dd4a2659715ac73566ee
+ checksum: 1c5e0189d2f68bfc4c50c107182eb34b34024de3213a552cab2088c01bea8707c51c7cbbd7cf61290cf8b71e13ec2d715e51b7647edc9f5d27ab8779011e2a4d
languageName: node
linkType: hard
-"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/property-provider@npm:2.0.1"
+"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/property-provider@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 56ea840032911b37a2e602144cf4cf08401a79a3ab06e226a4cf65a14b77e70e4d0bd8f762d172e322a0cf75f45bd1886a265687e090a2848798225e276f2882
+ checksum: e18df64d5ec92b2c7876dc1e7a596dc80066e13d49fcad6d8caac50394e8b3f3b15aa1f517429a85cdfefc218ee3d72028613454c706638352732ab1ae0f7418
languageName: node
linkType: hard
-"@smithy/protocol-http@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/protocol-http@npm:2.0.1"
+"@smithy/protocol-http@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/protocol-http@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: cc3d354fad3f27ab29cf7053bbdbbd150dca1864595a46d463abf06595af68e5c31cfc2d03b971fbb693cb9abd3be5763a195497a4fe19f8aed3132069ae3246
+ checksum: 61202d08d4433a4406a56e1e77863b89a60431a39984b38fec04a18276973857524b18d60c394236f3b664a08ec1996d837c295798e44f02ba93aca5336e9432
languageName: node
linkType: hard
-"@smithy/querystring-builder@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/querystring-builder@npm:2.0.1"
+"@smithy/querystring-builder@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/querystring-builder@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-uri-escape": ^2.0.0
tslib: ^2.5.0
- checksum: f8ec37623054fcbad8317b57ef41fc906f3f22260b365e7c3b107219dcf456c5c7347165f3bf25d47a4c592548d835778f9c8bc7cc7306b65aa6ce429d94a345
+ checksum: cdda228f0ac049aed302dcd19c47309a81eeb4d4c360189a399bc70bd6283ba218c87cfdee43e33c406cbe452d7979a389de9150b06de5221dfe4a6f69e53c1b
languageName: node
linkType: hard
-"@smithy/querystring-parser@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/querystring-parser@npm:2.0.1"
+"@smithy/querystring-parser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/querystring-parser@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: a6107281ae33beb5518b85de82fea7692cfcb6c15155719c6ba6ee44cc75b20f07ce28214c635ee38b0474995c0a23b4872feef8bd9f98a7811b7ccf59bac819
+ checksum: 0a571dbf7876096823071583e4b8506d9ce4fc1ff2af9fac07987bdf9a6e0dfee1598280cf411a6709cf535e2904eeab385bb2186bb6fe3aa987bae84620256c
languageName: node
linkType: hard
@@ -15011,13 +14969,13 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/shared-ini-file-loader@npm:2.0.1"
+"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/shared-ini-file-loader@npm:2.0.2"
dependencies:
- "@smithy/types": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 0f67d0ba9e44286a444301e603260a2ae5973324d43bc89f6ca15d2a830b32c1232474ff452cf3d607ee08d4fa6d17517fd901a4e6fd4dddbc571aa6b1ae3b6d
+ checksum: 5a7100b1db34d0a479dcbc2d649840dcf37fb2be4d5798ba7bef58186b636d867c3c555796f1372bcfc5554705a3f267e13008705451f44cd03a2c5a87c5c89e
languageName: node
linkType: hard
@@ -15037,15 +14995,15 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/smithy-client@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/smithy-client@npm:2.0.1"
+"@smithy/smithy-client@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/smithy-client@npm:2.0.2"
dependencies:
"@smithy/middleware-stack": ^2.0.0
- "@smithy/types": ^2.0.2
- "@smithy/util-stream": ^2.0.1
+ "@smithy/types": ^2.1.0
+ "@smithy/util-stream": ^2.0.2
tslib: ^2.5.0
- checksum: 5c4abe0a0a67f2c2aa47cbf2806d0d44a34f97ebc83f1add9654d95cef3303fc0dff41237a7e360ae6c2be721e945c889bf869f11476a759c0ad82d61df18f5a
+ checksum: 999b814ece054dfcc4808e5e3bdf6d24f5bc1a16b375bccad95ba9f0ff709a68f4c6437d1378b8b1ef870ce75e4cd2e55df4143394890e9759cec69fd078062d
languageName: node
linkType: hard
@@ -15058,23 +15016,23 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/types@npm:^2.0.2":
- version: 2.0.2
- resolution: "@smithy/types@npm:2.0.2"
+"@smithy/types@npm:^2.0.2, @smithy/types@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "@smithy/types@npm:2.1.0"
dependencies:
tslib: ^2.5.0
- checksum: 4afdd7c77b212abd9e0770a1489057aa0470f8a59061c4fb2175b1f12e02180db3d85e16f2cd870a95c17bd28a5a4b8ef1dff1ade6852f85eafea12872d9588e
+ checksum: 15c61c1b6520ef21257b64e4be7c8334c1206db8f21c9fb301838b5e09699996060c4361e51d2c63ee972f8678df68a8a60e2dd18216ae70751393d9d4188c5a
languageName: node
linkType: hard
-"@smithy/url-parser@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/url-parser@npm:2.0.1"
+"@smithy/url-parser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/url-parser@npm:2.0.2"
dependencies:
- "@smithy/querystring-parser": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/querystring-parser": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: 653bdeff812b972fa88a4e2d795c38df1aca68055818d150727b8b7d2b7b6bb00aed003b113febe371ed2e38e8dd4715b31af6afce7e883d937aed75e7ff48fb
+ checksum: 3a977e6a2c8d6d01e29d8925ef351d2cbc0951029d774490e3362d681fd18d97622afd2e99cea158f3e851cf423dc8dde5f6aee639cdf77f31e80150a732478b
languageName: node
linkType: hard
@@ -15125,29 +15083,29 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/util-defaults-mode-browser@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/util-defaults-mode-browser@npm:2.0.1"
+"@smithy/util-defaults-mode-browser@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/util-defaults-mode-browser@npm:2.0.2"
dependencies:
- "@smithy/property-provider": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/property-provider": ^2.0.2
+ "@smithy/types": ^2.1.0
bowser: ^2.11.0
tslib: ^2.5.0
- checksum: b436183ca880c1bb607116c780e7e8d1e252aeb51daf5f35740281671a4553431f393847d74ad180e9388bf11aeab1c675f61bb3a34a0d2fa9943111b063b17d
+ checksum: 0e4d70040268757120aec9b6207256d091772075e21dc1778c29d33d002c12e4825a192a2424ca3099d79ceb9ce8e6e77a627b680e12a657a171ca9ed84818e7
languageName: node
linkType: hard
-"@smithy/util-defaults-mode-node@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/util-defaults-mode-node@npm:2.0.1"
+"@smithy/util-defaults-mode-node@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/util-defaults-mode-node@npm:2.0.2"
dependencies:
- "@smithy/config-resolver": ^2.0.1
- "@smithy/credential-provider-imds": ^2.0.1
- "@smithy/node-config-provider": ^2.0.1
- "@smithy/property-provider": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/config-resolver": ^2.0.2
+ "@smithy/credential-provider-imds": ^2.0.2
+ "@smithy/node-config-provider": ^2.0.2
+ "@smithy/property-provider": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: ffd9601a8b37e1ea7a2c23bcaa70bf297c5c95113e8bab41a2f533d1a2f9f9631e66b5360312e202980dbd03ed3c8d8146dd33c8d4e5d3caf30c78a39b301de2
+ checksum: 25b8988bad21b7fb45c715e303b57bee4e865644f3c3282aa36f81ce71000e94289c84bccdd820556a8625d5d6bfa4ce70eb0f02bd74e9bb117ed713fabeba5d
languageName: node
linkType: hard
@@ -15179,19 +15137,19 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/util-stream@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/util-stream@npm:2.0.1"
+"@smithy/util-stream@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/util-stream@npm:2.0.2"
dependencies:
- "@smithy/fetch-http-handler": ^2.0.1
- "@smithy/node-http-handler": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/fetch-http-handler": ^2.0.2
+ "@smithy/node-http-handler": ^2.0.2
+ "@smithy/types": ^2.1.0
"@smithy/util-base64": ^2.0.0
"@smithy/util-buffer-from": ^2.0.0
"@smithy/util-hex-encoding": ^2.0.0
"@smithy/util-utf8": ^2.0.0
tslib: ^2.5.0
- checksum: 3a190a9e5e3675e69ffdb72bec00216cb8c3e5a565cdcea47bff593c8aac34bc39897c870c4ad82ea369a5be5caa63b08a20516653b6de0e0a19a291315c3773
+ checksum: 32115fa35437370671dcedf14714ab32b94ceb598baffe1d8afa7c574084b4cf0826f15fd3a76bc1450010512d2d067cbe62fe8c6ce4ee640fb0270768a8d87c
languageName: node
linkType: hard
@@ -15214,14 +15172,14 @@ __metadata:
languageName: node
linkType: hard
-"@smithy/util-waiter@npm:^2.0.1":
- version: 2.0.1
- resolution: "@smithy/util-waiter@npm:2.0.1"
+"@smithy/util-waiter@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@smithy/util-waiter@npm:2.0.2"
dependencies:
- "@smithy/abort-controller": ^2.0.1
- "@smithy/types": ^2.0.2
+ "@smithy/abort-controller": ^2.0.2
+ "@smithy/types": ^2.1.0
tslib: ^2.5.0
- checksum: d85893533b4222545151d8a0e4c67400a8370bc3dce34c17f5ce0c19b4dadf102ffa7b3ef2b5004abcf0892c318825b07498f8a86f2430cc886f55bf7369a57f
+ checksum: a0d23641fb724684b299d5131d82578f1c11cdcde9d55af309e00a0f75b19792016207eb1effb58da21eeafcac6cd5ed7ea4632c2c2e2e5eb423aa40f2e50fdf
languageName: node
linkType: hard
From 8faaa4898b6dce9e1c44071d74c6f76ccb0818c6 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 9 Aug 2023 00:32:57 +0000
Subject: [PATCH 099/372] chore(deps): update dependency @types/node to
v16.18.40
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
yarn.lock | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index de57b2ee01..d867e1e1d4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -17505,9 +17505,9 @@ __metadata:
linkType: hard
"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0":
- version: 20.4.8
- resolution: "@types/node@npm:20.4.8"
- checksum: 86a3963c0c7af3410553d1dfa4b018a20b3cb3ab4d8e8ffe27408b6338c5de0374b0bf379bc705da2205b466daa751ccfe062f453ba9bde34fdb0e5163ca6a68
+ version: 20.4.9
+ resolution: "@types/node@npm:20.4.9"
+ checksum: 504e3da96274f3865c1251830f4750bb0a8f6ef6f8648902cd3bba33370c5f219235471bfbf55cce726b25c8eacfcc8e2aad0ec3b13e27ea6708b00d4a9a46c8
languageName: node
linkType: hard
@@ -17540,16 +17540,16 @@ __metadata:
linkType: hard
"@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2":
- version: 16.18.39
- resolution: "@types/node@npm:16.18.39"
- checksum: eac9b202b76013256cb517ca8d3e3f61df206edb1615ca8d8df4c80616e92879fe4d3f8570a11d60f4216a82724a3265d5888b24c6994c80b057a0423c9ff1d2
+ version: 16.18.40
+ resolution: "@types/node@npm:16.18.40"
+ checksum: a683930491b4fd7cb2dc7684e32bbeedc4a83fb1949a7b15ea724fbfaa9988cec59091f169a3f1090cb91992caba8c1a7d50315b2c67c6e2579a3788bb09eec4
languageName: node
linkType: hard
"@types/node@npm:^18.11.17":
- version: 18.17.3
- resolution: "@types/node@npm:18.17.3"
- checksum: 884fb68936b2b0ff90863fcf80610dd2f3d9fe1947897248b0138df05fe41ee6ce62941b37b565e3b3fd77601cd3977a64de858654c6ab9064413b171740d6ba
+ version: 18.17.4
+ resolution: "@types/node@npm:18.17.4"
+ checksum: d4c458202d82c999f38d85ca9ae8a2d3e521645c7f1b908cd6a0303d0e13c7d5eb3f888c41f584ba029ecf802d0a0005b7816c149400371a3c035abc4bd9a4c5
languageName: node
linkType: hard
From 5c28ebc79fd662405b9d3ca06e09b2411084ac33 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 9 Aug 2023 03:32:36 +0000
Subject: [PATCH 100/372] chore(deps): update dependency esbuild to ^0.19.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.changeset/renovate-9a0aa29.md | 6 +
packages/cli/package.json | 2 +-
plugins/scaffolder-backend/package.json | 2 +-
yarn.lock | 188 ++++++++++++------------
4 files changed, 102 insertions(+), 96 deletions(-)
create mode 100644 .changeset/renovate-9a0aa29.md
diff --git a/.changeset/renovate-9a0aa29.md b/.changeset/renovate-9a0aa29.md
new file mode 100644
index 0000000000..8885bf30cd
--- /dev/null
+++ b/.changeset/renovate-9a0aa29.md
@@ -0,0 +1,6 @@
+---
+'@backstage/cli': patch
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Updated dependency `esbuild` to `^0.19.0`.
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 8fe6a579ea..37f3d3a093 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -78,7 +78,7 @@
"cross-spawn": "^7.0.3",
"css-loader": "^6.5.1",
"diff": "^5.0.0",
- "esbuild": "^0.18.0",
+ "esbuild": "^0.19.0",
"esbuild-loader": "^2.18.0",
"eslint": "^8.6.0",
"eslint-config-prettier": "^8.3.0",
diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json
index 9db076a4a9..9376cabf17 100644
--- a/plugins/scaffolder-backend/package.json
+++ b/plugins/scaffolder-backend/package.json
@@ -110,7 +110,7 @@
"@types/nunjucks": "^3.1.4",
"@types/supertest": "^2.0.8",
"@types/zen-observable": "^0.8.0",
- "esbuild": "^0.18.0",
+ "esbuild": "^0.19.0",
"jest-when": "^3.1.0",
"mock-fs": "^5.1.0",
"msw": "^1.0.0",
diff --git a/yarn.lock b/yarn.lock
index fd36fd1910..0bf4d0ba0b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3620,7 +3620,7 @@ __metadata:
css-loader: ^6.5.1
del: ^7.0.0
diff: ^5.0.0
- esbuild: ^0.18.0
+ esbuild: ^0.19.0
esbuild-loader: ^2.18.0
eslint: ^8.6.0
eslint-config-prettier: ^8.3.0
@@ -8236,7 +8236,7 @@ __metadata:
command-exists: ^1.2.9
compression: ^1.7.4
cors: ^2.8.5
- esbuild: ^0.18.0
+ esbuild: ^0.19.0
express: ^4.17.1
express-promise-router: ^4.1.0
fs-extra: 10.1.0
@@ -10361,9 +10361,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/android-arm64@npm:0.18.19"
+"@esbuild/android-arm64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/android-arm64@npm:0.19.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
@@ -10382,9 +10382,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/android-arm@npm:0.18.19"
+"@esbuild/android-arm@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/android-arm@npm:0.19.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
@@ -10396,9 +10396,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/android-x64@npm:0.18.19"
+"@esbuild/android-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/android-x64@npm:0.19.0"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
@@ -10410,9 +10410,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/darwin-arm64@npm:0.18.19"
+"@esbuild/darwin-arm64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/darwin-arm64@npm:0.19.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -10424,9 +10424,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/darwin-x64@npm:0.18.19"
+"@esbuild/darwin-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/darwin-x64@npm:0.19.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -10438,9 +10438,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/freebsd-arm64@npm:0.18.19"
+"@esbuild/freebsd-arm64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/freebsd-arm64@npm:0.19.0"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
@@ -10452,9 +10452,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/freebsd-x64@npm:0.18.19"
+"@esbuild/freebsd-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/freebsd-x64@npm:0.19.0"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
@@ -10466,9 +10466,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-arm64@npm:0.18.19"
+"@esbuild/linux-arm64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-arm64@npm:0.19.0"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
@@ -10480,9 +10480,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-arm@npm:0.18.19"
+"@esbuild/linux-arm@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-arm@npm:0.19.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
@@ -10494,9 +10494,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-ia32@npm:0.18.19"
+"@esbuild/linux-ia32@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-ia32@npm:0.19.0"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
@@ -10515,9 +10515,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-loong64@npm:0.18.19"
+"@esbuild/linux-loong64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-loong64@npm:0.19.0"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
@@ -10529,9 +10529,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-mips64el@npm:0.18.19"
+"@esbuild/linux-mips64el@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-mips64el@npm:0.19.0"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
@@ -10543,9 +10543,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-ppc64@npm:0.18.19"
+"@esbuild/linux-ppc64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-ppc64@npm:0.19.0"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
@@ -10557,9 +10557,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-riscv64@npm:0.18.19"
+"@esbuild/linux-riscv64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-riscv64@npm:0.19.0"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
@@ -10571,9 +10571,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-s390x@npm:0.18.19"
+"@esbuild/linux-s390x@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-s390x@npm:0.19.0"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
@@ -10585,9 +10585,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/linux-x64@npm:0.18.19"
+"@esbuild/linux-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/linux-x64@npm:0.19.0"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
@@ -10599,9 +10599,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/netbsd-x64@npm:0.18.19"
+"@esbuild/netbsd-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/netbsd-x64@npm:0.19.0"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
@@ -10613,9 +10613,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/openbsd-x64@npm:0.18.19"
+"@esbuild/openbsd-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/openbsd-x64@npm:0.19.0"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
@@ -10627,9 +10627,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/sunos-x64@npm:0.18.19"
+"@esbuild/sunos-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/sunos-x64@npm:0.19.0"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
@@ -10641,9 +10641,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/win32-arm64@npm:0.18.19"
+"@esbuild/win32-arm64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/win32-arm64@npm:0.19.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -10655,9 +10655,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/win32-ia32@npm:0.18.19"
+"@esbuild/win32-ia32@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/win32-ia32@npm:0.19.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -10669,9 +10669,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.18.19":
- version: 0.18.19
- resolution: "@esbuild/win32-x64@npm:0.18.19"
+"@esbuild/win32-x64@npm:0.19.0":
+ version: 0.19.0
+ resolution: "@esbuild/win32-x64@npm:0.19.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -24284,32 +24284,32 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.18.0":
- version: 0.18.19
- resolution: "esbuild@npm:0.18.19"
+"esbuild@npm:^0.19.0":
+ version: 0.19.0
+ resolution: "esbuild@npm:0.19.0"
dependencies:
- "@esbuild/android-arm": 0.18.19
- "@esbuild/android-arm64": 0.18.19
- "@esbuild/android-x64": 0.18.19
- "@esbuild/darwin-arm64": 0.18.19
- "@esbuild/darwin-x64": 0.18.19
- "@esbuild/freebsd-arm64": 0.18.19
- "@esbuild/freebsd-x64": 0.18.19
- "@esbuild/linux-arm": 0.18.19
- "@esbuild/linux-arm64": 0.18.19
- "@esbuild/linux-ia32": 0.18.19
- "@esbuild/linux-loong64": 0.18.19
- "@esbuild/linux-mips64el": 0.18.19
- "@esbuild/linux-ppc64": 0.18.19
- "@esbuild/linux-riscv64": 0.18.19
- "@esbuild/linux-s390x": 0.18.19
- "@esbuild/linux-x64": 0.18.19
- "@esbuild/netbsd-x64": 0.18.19
- "@esbuild/openbsd-x64": 0.18.19
- "@esbuild/sunos-x64": 0.18.19
- "@esbuild/win32-arm64": 0.18.19
- "@esbuild/win32-ia32": 0.18.19
- "@esbuild/win32-x64": 0.18.19
+ "@esbuild/android-arm": 0.19.0
+ "@esbuild/android-arm64": 0.19.0
+ "@esbuild/android-x64": 0.19.0
+ "@esbuild/darwin-arm64": 0.19.0
+ "@esbuild/darwin-x64": 0.19.0
+ "@esbuild/freebsd-arm64": 0.19.0
+ "@esbuild/freebsd-x64": 0.19.0
+ "@esbuild/linux-arm": 0.19.0
+ "@esbuild/linux-arm64": 0.19.0
+ "@esbuild/linux-ia32": 0.19.0
+ "@esbuild/linux-loong64": 0.19.0
+ "@esbuild/linux-mips64el": 0.19.0
+ "@esbuild/linux-ppc64": 0.19.0
+ "@esbuild/linux-riscv64": 0.19.0
+ "@esbuild/linux-s390x": 0.19.0
+ "@esbuild/linux-x64": 0.19.0
+ "@esbuild/netbsd-x64": 0.19.0
+ "@esbuild/openbsd-x64": 0.19.0
+ "@esbuild/sunos-x64": 0.19.0
+ "@esbuild/win32-arm64": 0.19.0
+ "@esbuild/win32-ia32": 0.19.0
+ "@esbuild/win32-x64": 0.19.0
dependenciesMeta:
"@esbuild/android-arm":
optional: true
@@ -24357,7 +24357,7 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: 326c38d33eff024278b293308eff52e9a6b28c897f2ee4a4f8f25a092648d16090b206cbe0f448a3680f87af80af59decea7d68051c3eea937570415087e4d9f
+ checksum: 77ef2e57a94d1b88657fb6cd79c3ad6e3161823fd1b615f2ce4b71f163755b85e98cb5b565ed6c38db1f788c52c092b5534caa6800178de99a25de0671f92186
languageName: node
linkType: hard
From bba2d813679173eb47404cd9e4fa802cf1513934 Mon Sep 17 00:00:00 2001
From: AmbrishRamachandiran
Date: Wed, 9 Aug 2023 14:07:35 +0530
Subject: [PATCH 101/372] Limit the use of the same shortcut title and url when
adding a shortcut
Signed-off-by: AmbrishRamachandiran
---
plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx
index 773c5491da..56309b4a64 100644
--- a/plugins/shortcuts/src/ShortcutForm.test.tsx
+++ b/plugins/shortcuts/src/ShortcutForm.test.tsx
@@ -53,6 +53,12 @@ describe('ShortcutForm', () => {
expect(
screen.getByText('Must be at least 2 characters'),
).toBeInTheDocument();
+ expect(
+ screen.queryByText('A shortcut with this title already exists'),
+ ).not.toBeInTheDocument();
+ expect(
+ screen.queryByText('A shortcut with this url already exists'),
+ ).not.toBeInTheDocument();
});
});
From 863cb026b006fd4b276c0d65693a99fd1726c11d Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sun, 14 May 2023 12:59:51 +0200
Subject: [PATCH 102/372] auth-backend: replace Logger with LoggerService
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/package.json | 1 +
plugins/auth-backend/src/identity/FirestoreKeyStore.ts | 4 ++--
plugins/auth-backend/src/identity/KeyStores.ts | 4 ++--
plugins/auth-backend/src/identity/TokenFactory.ts | 6 +++---
.../auth-backend/src/lib/catalog/CatalogIdentityClient.ts | 4 ++--
.../src/lib/resolvers/CatalogAuthResolverContext.ts | 6 +++---
plugins/auth-backend/src/providers/microsoft/provider.ts | 6 +++---
.../src/providers/oauth2-proxy/provider.test.ts | 6 +++---
plugins/auth-backend/src/providers/types.ts | 4 ++--
plugins/auth-backend/src/service/router.ts | 4 ++--
plugins/auth-backend/src/service/standaloneServer.ts | 4 ++--
yarn.lock | 1 +
12 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json
index 1ad8d6c0c0..6bbf6c901c 100644
--- a/plugins/auth-backend/package.json
+++ b/plugins/auth-backend/package.json
@@ -33,6 +33,7 @@
},
"dependencies": {
"@backstage/backend-common": "workspace:^",
+ "@backstage/backend-plugin-api": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
diff --git a/plugins/auth-backend/src/identity/FirestoreKeyStore.ts b/plugins/auth-backend/src/identity/FirestoreKeyStore.ts
index a5479a6470..b5f4f5dcfb 100644
--- a/plugins/auth-backend/src/identity/FirestoreKeyStore.ts
+++ b/plugins/auth-backend/src/identity/FirestoreKeyStore.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import {
DocumentData,
Firestore,
@@ -57,7 +57,7 @@ export class FirestoreKeyStore implements KeyStore {
static async verifyConnection(
keyStore: FirestoreKeyStore,
- logger?: Logger,
+ logger?: LoggerService,
): Promise {
try {
await keyStore.verify();
diff --git a/plugins/auth-backend/src/identity/KeyStores.ts b/plugins/auth-backend/src/identity/KeyStores.ts
index 4cd8f91842..cc35c0d84e 100644
--- a/plugins/auth-backend/src/identity/KeyStores.ts
+++ b/plugins/auth-backend/src/identity/KeyStores.ts
@@ -15,7 +15,7 @@
*/
import { pickBy } from 'lodash';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
@@ -26,7 +26,7 @@ import { MemoryKeyStore } from './MemoryKeyStore';
import { KeyStore } from './types';
type Options = {
- logger: Logger;
+ logger: LoggerService;
database: AuthDatabase;
};
diff --git a/plugins/auth-backend/src/identity/TokenFactory.ts b/plugins/auth-backend/src/identity/TokenFactory.ts
index f80b79b6bc..ca16f8821f 100644
--- a/plugins/auth-backend/src/identity/TokenFactory.ts
+++ b/plugins/auth-backend/src/identity/TokenFactory.ts
@@ -18,14 +18,14 @@ import { AuthenticationError } from '@backstage/errors';
import { exportJWK, generateKeyPair, importJWK, JWK, SignJWT } from 'jose';
import { DateTime } from 'luxon';
import { v4 as uuid } from 'uuid';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { AnyJWK, KeyStore, TokenIssuer, TokenParams } from './types';
const MS_IN_S = 1000;
type Options = {
- logger: Logger;
+ logger: LoggerService;
/** Value of the issuer claim in issued tokens */
issuer: string;
/** Key store used for storing signing keys */
@@ -57,7 +57,7 @@ type Options = {
*/
export class TokenFactory implements TokenIssuer {
private readonly issuer: string;
- private readonly logger: Logger;
+ private readonly logger: LoggerService;
private readonly keyStore: KeyStore;
private readonly keyDurationSeconds: number;
private readonly algorithm: string;
diff --git a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts
index 494e8b4d38..ff983e27a5 100644
--- a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts
+++ b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { ConflictError, NotFoundError } from '@backstage/errors';
import { CatalogApi } from '@backstage/catalog-client';
import {
@@ -78,7 +78,7 @@ export class CatalogIdentityClient {
*/
async resolveCatalogMembership(query: {
entityRefs: string[];
- logger?: Logger;
+ logger?: LoggerService;
}): Promise {
const { entityRefs, logger } = query;
const resolvedEntityRefs = entityRefs
diff --git a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts
index cbc2439563..7d22526193 100644
--- a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts
+++ b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts
@@ -24,7 +24,7 @@ import {
stringifyEntityRef,
} from '@backstage/catalog-model';
import { ConflictError, InputError, NotFoundError } from '@backstage/errors';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { TokenIssuer, TokenParams } from '../../identity/types';
import { AuthResolverContext } from '../../providers';
import { AuthResolverCatalogUserQuery } from '../../providers/types';
@@ -54,7 +54,7 @@ export function getDefaultOwnershipEntityRefs(entity: Entity) {
*/
export class CatalogAuthResolverContext implements AuthResolverContext {
static create(options: {
- logger: Logger;
+ logger: LoggerService;
catalogApi: CatalogApi;
tokenIssuer: TokenIssuer;
tokenManager: TokenManager;
@@ -73,7 +73,7 @@ export class CatalogAuthResolverContext implements AuthResolverContext {
}
private constructor(
- public readonly logger: Logger,
+ public readonly logger: LoggerService,
public readonly tokenIssuer: TokenIssuer,
public readonly catalogIdentityClient: CatalogIdentityClient,
private readonly catalogApi: CatalogApi,
diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts
index bc581f6d10..8fc8459f10 100644
--- a/plugins/auth-backend/src/providers/microsoft/provider.ts
+++ b/plugins/auth-backend/src/providers/microsoft/provider.ts
@@ -47,7 +47,7 @@ import {
commonByEmailLocalPartResolver,
commonByEmailResolver,
} from '../resolvers';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import fetch from 'node-fetch';
import { decodeJwt } from 'jose';
import { Profile as PassportProfile } from 'passport';
@@ -60,7 +60,7 @@ type PrivateInfo = {
type Options = OAuthProviderOptions & {
signInResolver?: SignInResolver;
authHandler: AuthHandler;
- logger: Logger;
+ logger: LoggerService;
resolverContext: AuthResolverContext;
authorizationUrl?: string;
tokenUrl?: string;
@@ -70,7 +70,7 @@ export class MicrosoftAuthProvider implements OAuthHandlers {
private readonly _strategy: MicrosoftStrategy;
private readonly signInResolver?: SignInResolver;
private readonly authHandler: AuthHandler;
- private readonly logger: Logger;
+ private readonly logger: LoggerService;
private readonly resolverContext: AuthResolverContext;
constructor(options: Options) {
diff --git a/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts b/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts
index 0279604f2d..f585d4831f 100644
--- a/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts
+++ b/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts
@@ -22,7 +22,7 @@ jest.mock('@backstage/catalog-client');
import { AuthenticationError } from '@backstage/errors';
import express from 'express';
import * as jose from 'jose';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { AuthHandler, AuthResolverContext, SignInResolver } from '../types';
import {
oauth2Proxy,
@@ -36,7 +36,7 @@ describe('Oauth2ProxyAuthProvider', () => {
'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob';
let provider: Oauth2ProxyAuthProvider;
- let logger: jest.Mocked;
+ let logger: jest.Mocked;
let signInResolver: jest.MockedFunction<
SignInResolver>
>;
@@ -53,7 +53,7 @@ describe('Oauth2ProxyAuthProvider', () => {
>;
authHandler = jest.fn();
signInResolver = jest.fn();
- logger = { error: jest.fn() } as unknown as jest.Mocked;
+ logger = { error: jest.fn() } as unknown as jest.Mocked;
mockResponse = {
status: jest.fn(),
diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts
index 1459cff484..cba4ee1ee4 100644
--- a/plugins/auth-backend/src/providers/types.ts
+++ b/plugins/auth-backend/src/providers/types.ts
@@ -22,7 +22,7 @@ import {
BackstageSignInResult,
} from '@backstage/plugin-auth-node';
import express from 'express';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { TokenParams } from '../identity/types';
import { OAuthStartRequest } from '../lib/oauth/types';
@@ -207,7 +207,7 @@ export type AuthProviderFactory = (options: {
providerId: string;
globalConfig: AuthProviderConfig;
config: Config;
- logger: Logger;
+ logger: LoggerService;
resolverContext: AuthResolverContext;
}) => AuthProviderRouteHandlers;
diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts
index fa8dd95727..b28d2aeca1 100644
--- a/plugins/auth-backend/src/service/router.ts
+++ b/plugins/auth-backend/src/service/router.ts
@@ -17,7 +17,7 @@
import express from 'express';
import Router from 'express-promise-router';
import cookieParser from 'cookie-parser';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import {
defaultAuthProviderFactories,
AuthProviderFactory,
@@ -44,7 +44,7 @@ export type ProviderFactories = { [s: string]: AuthProviderFactory };
/** @public */
export interface RouterOptions {
- logger: Logger;
+ logger: LoggerService;
database: PluginDatabaseManager;
config: Config;
discovery: PluginEndpointDiscovery;
diff --git a/plugins/auth-backend/src/service/standaloneServer.ts b/plugins/auth-backend/src/service/standaloneServer.ts
index 16ebbc9345..abda3a341c 100644
--- a/plugins/auth-backend/src/service/standaloneServer.ts
+++ b/plugins/auth-backend/src/service/standaloneServer.ts
@@ -23,11 +23,11 @@ import {
} from '@backstage/backend-common';
import { Server } from 'http';
import Knex from 'knex';
-import { Logger } from 'winston';
+import { LoggerService } from '@backstage/backend-plugin-api';
import { createRouter } from './router';
export interface ServerOptions {
- logger: Logger;
+ logger: LoggerService;
}
export async function startStandaloneServer(
diff --git a/yarn.lock b/yarn.lock
index fd36fd1910..cecd8afe31 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4581,6 +4581,7 @@ __metadata:
resolution: "@backstage/plugin-auth-backend@workspace:plugins/auth-backend"
dependencies:
"@backstage/backend-common": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/catalog-client": "workspace:^"
"@backstage/catalog-model": "workspace:^"
From e19e04eab0f161066c52b11e2624362dc98c8653 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Thu, 13 Jul 2023 21:56:04 +0200
Subject: [PATCH 103/372] auth-backend: diagram for new architecture
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/architecture.drawio.svg | 262 +++++++++++++++++++
1 file changed, 262 insertions(+)
create mode 100644 plugins/auth-backend/architecture.drawio.svg
diff --git a/plugins/auth-backend/architecture.drawio.svg b/plugins/auth-backend/architecture.drawio.svg
new file mode 100644
index 0000000000..d709935e3e
--- /dev/null
+++ b/plugins/auth-backend/architecture.drawio.svg
@@ -0,0 +1,262 @@
+
From 1c522713cd85fd0c2bd226a0d7d92375471f2252 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Thu, 13 Jul 2023 21:57:08 +0200
Subject: [PATCH 104/372] auth-backend: throw error if sign-in result does not
contain token when preparting identity response
Signed-off-by: Patrik Oldsberg
---
.../src/providers/prepareBackstageIdentityResponse.ts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts
index 761618c225..e2753d6648 100644
--- a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts
+++ b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+import { InputError } from '@backstage/errors';
import {
BackstageIdentityResponse,
BackstageSignInResult,
@@ -34,6 +35,10 @@ function parseJwtPayload(token: string) {
export function prepareBackstageIdentityResponse(
result: BackstageSignInResult,
): BackstageIdentityResponse {
+ if (!result.token) {
+ throw new InputError(`Identity response must return a token`);
+ }
+
const { sub, ent } = parseJwtPayload(result.token);
return {
From 747712f930fc4bb76b5c13f907b028cab42750b1 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Thu, 13 Jul 2023 21:57:45 +0200
Subject: [PATCH 105/372] auth-backend: add optional token_type field in
OAuthResult
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/src/lib/oauth/types.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts
index e960af2988..46009218a9 100644
--- a/plugins/auth-backend/src/lib/oauth/types.ts
+++ b/plugins/auth-backend/src/lib/oauth/types.ts
@@ -45,6 +45,7 @@ export type OAuthResult = {
params: {
id_token?: string;
scope: string;
+ token_type?: string;
expires_in: number;
};
accessToken: string;
From 318816cef913d0a3cb87e4995ecb1409ecd08ac3 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sat, 22 Jul 2023 09:46:47 +0200
Subject: [PATCH 106/372] auth-backend: move a few types to auth-node
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/src/identity/types.ts | 22 +---
plugins/auth-backend/src/providers/types.ts | 90 ++--------------
plugins/auth-node/package.json | 3 +
plugins/auth-node/src/index.ts | 4 +
plugins/auth-node/src/types.ts | 113 ++++++++++++++++++++
yarn.lock | 3 +
6 files changed, 137 insertions(+), 98 deletions(-)
diff --git a/plugins/auth-backend/src/identity/types.ts b/plugins/auth-backend/src/identity/types.ts
index e325f74c81..fcfc0345cc 100644
--- a/plugins/auth-backend/src/identity/types.ts
+++ b/plugins/auth-backend/src/identity/types.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { JsonValue } from '@backstage/types';
+import { TokenParams as _TokenParams } from '@backstage/plugin-auth-node';
/** Represents any form of serializable JWK */
export interface AnyJWK extends Record {
@@ -25,26 +25,10 @@ export interface AnyJWK extends Record {
}
/**
- * Parameters used to issue new ID Tokens
- *
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export type TokenParams = {
- /**
- * The claims that will be embedded within the token. At a minimum, this should include
- * the subject claim, `sub`. It is common to also list entity ownership relations in the
- * `ent` list. Additional claims may also be added at the developer's discretion except
- * for the following list, which will be overwritten by the TokenIssuer: `iss`, `aud`,
- * `iat`, and `exp`. The Backstage team also maintains the right add new claims in the future
- * without listing the change as a "breaking change".
- */
- claims: {
- /** The token subject, i.e. User ID */
- sub: string;
- /** A list of entity references that the user claims ownership through */
- ent?: string[];
- } & Record;
-};
+export type TokenParams = _TokenParams;
/**
* A TokenIssuer is able to issue verifiable ID Tokens on demand.
diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts
index cba4ee1ee4..e382148b5d 100644
--- a/plugins/auth-backend/src/providers/types.ts
+++ b/plugins/auth-backend/src/providers/types.ts
@@ -14,8 +14,6 @@
* limitations under the License.
*/
-import { GetEntitiesRequest } from '@backstage/catalog-client';
-import { Entity } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
import {
BackstageIdentityResponse,
@@ -23,71 +21,24 @@ import {
} from '@backstage/plugin-auth-node';
import express from 'express';
import { LoggerService } from '@backstage/backend-plugin-api';
-import { TokenParams } from '../identity/types';
+import {
+ AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery,
+ AuthResolverContext as _AuthResolverContext,
+ ProfileInfo as _ProfileInfo,
+} from '@backstage/plugin-auth-node';
import { OAuthStartRequest } from '../lib/oauth/types';
/**
- * A query for a single user in the catalog.
- *
- * If `entityRef` is used, the default kind is `'User'`.
- *
- * If `annotations` are used, all annotations must be present and
- * match the provided value exactly. Only entities of kind `'User'` will be considered.
- *
- * If `filter` are used they are passed on as they are to the `CatalogApi`.
- *
- * Regardless of the query method, the query must match exactly one entity
- * in the catalog, or an error will be thrown.
- *
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export type AuthResolverCatalogUserQuery =
- | {
- entityRef:
- | string
- | {
- kind?: string;
- namespace?: string;
- name: string;
- };
- }
- | {
- annotations: Record;
- }
- | {
- filter: Exclude;
- };
+export type AuthResolverCatalogUserQuery = _AuthResolverCatalogUserQuery;
/**
- * The context that is used for auth processing.
- *
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export type AuthResolverContext = {
- /**
- * Issues a Backstage token using the provided parameters.
- */
- issueToken(params: TokenParams): Promise<{ token: string }>;
-
- /**
- * Finds a single user in the catalog using the provided query.
- *
- * See {@link AuthResolverCatalogUserQuery} for details.
- */
- findCatalogUser(
- query: AuthResolverCatalogUserQuery,
- ): Promise<{ entity: Entity }>;
-
- /**
- * Finds a single user in the catalog using the provided query, and then
- * issues an identity for that user using default ownership resolution.
- *
- * See {@link AuthResolverCatalogUserQuery} for details.
- */
- signInWithCatalogUser(
- query: AuthResolverCatalogUserQuery,
- ): Promise;
-};
+export type AuthResolverContext = _AuthResolverContext;
/**
* The callback used to resolve the cookie configuration for auth providers that use cookies.
@@ -219,29 +170,10 @@ export type AuthResponse = {
};
/**
- * Used to display login information to user, i.e. sidebar popup.
- *
- * It is also temporarily used as the profile of the signed-in user's Backstage
- * identity, but we want to replace that with data from identity and/org catalog
- * service
- *
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export type ProfileInfo = {
- /**
- * Email ID of the signed in user.
- */
- email?: string;
- /**
- * Display name that can be presented to the signed in user.
- */
- displayName?: string;
- /**
- * URL to an image that can be used as the display image or avatar of the
- * signed in user.
- */
- picture?: string;
-};
+export type ProfileInfo = _ProfileInfo;
/**
* Type of sign in information context. Includes the profile information and
diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json
index f57ff4e2fb..a7a70e02d2 100644
--- a/plugins/auth-node/package.json
+++ b/plugins/auth-node/package.json
@@ -29,8 +29,11 @@
},
"dependencies": {
"@backstage/backend-common": "workspace:^",
+ "@backstage/catalog-client": "workspace:^",
+ "@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
+ "@backstage/types": "workspace:^",
"@types/express": "*",
"express": "^4.17.1",
"jose": "^4.6.0",
diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts
index a70f667adf..7a18040abc 100644
--- a/plugins/auth-node/src/index.ts
+++ b/plugins/auth-node/src/index.ts
@@ -26,8 +26,12 @@ export { IdentityClient } from './IdentityClient';
export type { IdentityApi } from './IdentityApi';
export type { IdentityClientOptions } from './DefaultIdentityClient';
export type {
+ AuthResolverCatalogUserQuery,
+ AuthResolverContext,
BackstageIdentityResponse,
BackstageSignInResult,
BackstageUserIdentity,
IdentityApiGetIdentityRequest,
+ ProfileInfo,
+ TokenParams,
} from './types';
diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts
index 9aec98a372..823f06320f 100644
--- a/plugins/auth-node/src/types.ts
+++ b/plugins/auth-node/src/types.ts
@@ -14,6 +14,9 @@
* limitations under the License.
*/
+import { EntityFilterQuery } from '@backstage/catalog-client';
+import { Entity } from '@backstage/catalog-model';
+import { JsonValue } from '@backstage/types';
import { Request } from 'express';
/**
@@ -76,3 +79,113 @@ export type BackstageUserIdentity = {
*/
ownershipEntityRefs: string[];
};
+
+/**
+ * A query for a single user in the catalog.
+ *
+ * If `entityRef` is used, the default kind is `'User'`.
+ *
+ * If `annotations` are used, all annotations must be present and
+ * match the provided value exactly. Only entities of kind `'User'` will be considered.
+ *
+ * If `filter` are used they are passed on as they are to the `CatalogApi`.
+ *
+ * Regardless of the query method, the query must match exactly one entity
+ * in the catalog, or an error will be thrown.
+ *
+ * @public
+ */
+export type AuthResolverCatalogUserQuery =
+ | {
+ entityRef:
+ | string
+ | {
+ kind?: string;
+ namespace?: string;
+ name: string;
+ };
+ }
+ | {
+ annotations: Record;
+ }
+ | {
+ filter: EntityFilterQuery;
+ };
+
+/**
+ * Parameters used to issue new ID Tokens
+ *
+ * @public
+ */
+export type TokenParams = {
+ /**
+ * The claims that will be embedded within the token. At a minimum, this should include
+ * the subject claim, `sub`. It is common to also list entity ownership relations in the
+ * `ent` list. Additional claims may also be added at the developer's discretion except
+ * for the following list, which will be overwritten by the TokenIssuer: `iss`, `aud`,
+ * `iat`, and `exp`. The Backstage team also maintains the right add new claims in the future
+ * without listing the change as a "breaking change".
+ */
+ claims: {
+ /** The token subject, i.e. User ID */
+ sub: string;
+ /** A list of entity references that the user claims ownership through */
+ ent?: string[];
+ } & Record;
+};
+
+/**
+ * The context that is used for auth processing.
+ *
+ * @public
+ */
+export type AuthResolverContext = {
+ /**
+ * Issues a Backstage token using the provided parameters.
+ */
+ issueToken(params: TokenParams): Promise<{ token: string }>;
+
+ /**
+ * Finds a single user in the catalog using the provided query.
+ *
+ * See {@link AuthResolverCatalogUserQuery} for details.
+ */
+ findCatalogUser(
+ query: AuthResolverCatalogUserQuery,
+ ): Promise<{ entity: Entity }>;
+
+ /**
+ * Finds a single user in the catalog using the provided query, and then
+ * issues an identity for that user using default ownership resolution.
+ *
+ * See {@link AuthResolverCatalogUserQuery} for details.
+ */
+ signInWithCatalogUser(
+ query: AuthResolverCatalogUserQuery,
+ ): Promise;
+};
+
+/**
+ * Used to display login information to user, i.e. sidebar popup.
+ *
+ * It is also temporarily used as the profile of the signed-in user's Backstage
+ * identity, but we want to replace that with data from identity and/org catalog
+ * service
+ *
+ * @public
+ */
+export type ProfileInfo = {
+ /**
+ * Email ID of the signed in user.
+ */
+ email?: string;
+ /**
+ * Display name that can be presented to the signed in user.
+ */
+ displayName?: string;
+ /**
+ * URL to an image that can be used as the display image or avatar of the
+ * signed in user.
+ */
+ picture?: string;
+};
diff --git a/yarn.lock b/yarn.lock
index cecd8afe31..e3ce7fd2e3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4648,9 +4648,12 @@ __metadata:
dependencies:
"@backstage/backend-common": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
+ "@backstage/catalog-client": "workspace:^"
+ "@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
+ "@backstage/types": "workspace:^"
"@types/express": "*"
express: ^4.17.1
jose: ^4.6.0
From 68ae81a6a7989d9c946f0fdd969bb16bf99d660f Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sat, 22 Jul 2023 09:54:09 +0200
Subject: [PATCH 107/372] auth-node: initial oauth authenticator types
Signed-off-by: Patrik Oldsberg
---
plugins/auth-node/src/oauth/types.ts | 85 ++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
create mode 100644 plugins/auth-node/src/oauth/types.ts
diff --git a/plugins/auth-node/src/oauth/types.ts b/plugins/auth-node/src/oauth/types.ts
new file mode 100644
index 0000000000..4a53beaae6
--- /dev/null
+++ b/plugins/auth-node/src/oauth/types.ts
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Config } from '@backstage/config';
+import { Request } from 'express';
+import { AuthResolverContext, ProfileInfo } from '../types';
+
+export interface OAuthSession {
+ accessToken: string;
+ tokenType: string;
+ idToken?: string;
+ scope: string;
+ expiresInSeconds: number;
+ refreshToken?: string;
+}
+
+export type OAuthProfileTransform = (
+ result: OAuthAuthenticatorResult,
+ context: AuthResolverContext,
+) => Promise<{ profile: ProfileInfo }>;
+
+export interface OAuthAuthenticatorStartInput {
+ scope: string;
+ state: string;
+ req: Request;
+}
+
+export interface OAuthAuthenticatorAuthenticateInput {
+ req: Request;
+}
+
+export interface OAuthAuthenticatorRefreshInput {
+ scope: string;
+ refreshToken: string;
+ req: Request;
+}
+
+export interface OAuthAuthenticatorLogoutInput {
+ accessToken?: string;
+ refreshToken?: string;
+ req: Request;
+}
+
+export interface OAuthAuthenticatorResult {
+ fullProfile: TProfile;
+ session: OAuthSession;
+}
+
+export interface OAuthAuthenticator {
+ defaultProfileTransform: OAuthProfileTransform;
+ shouldPersistScopes?: boolean;
+ initialize(ctx: { callbackUrl: string; config: Config }): TContext;
+ start(
+ input: OAuthAuthenticatorStartInput,
+ ctx: TContext,
+ ): Promise<{ url: string; status?: number }>;
+ authenticate(
+ input: OAuthAuthenticatorAuthenticateInput,
+ ctx: TContext,
+ ): Promise>;
+ refresh(
+ input: OAuthAuthenticatorRefreshInput,
+ ctx: TContext,
+ ): Promise>;
+ logout?(input: OAuthAuthenticatorLogoutInput, ctx: TContext): Promise;
+}
+
+export function createOAuthAuthenticator(
+ authenticator: OAuthAuthenticator,
+): OAuthAuthenticator {
+ return authenticator;
+}
From 6c7952ee85a5f7860d086f6e6ac02562acef4a07 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sat, 22 Jul 2023 10:42:39 +0200
Subject: [PATCH 108/372] auth-backend: move CookieConfigurer to auth-node
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/src/providers/types.ts | 19 +++----------------
plugins/auth-node/src/index.ts | 1 +
plugins/auth-node/src/types.ts | 20 ++++++++++++++++++++
3 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts
index e382148b5d..89c7e92c35 100644
--- a/plugins/auth-backend/src/providers/types.ts
+++ b/plugins/auth-backend/src/providers/types.ts
@@ -24,6 +24,7 @@ import { LoggerService } from '@backstage/backend-plugin-api';
import {
AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery,
AuthResolverContext as _AuthResolverContext,
+ CookieConfigurer as _CookieConfigurer,
ProfileInfo as _ProfileInfo,
} from '@backstage/plugin-auth-node';
import { OAuthStartRequest } from '../lib/oauth/types';
@@ -41,24 +42,10 @@ export type AuthResolverCatalogUserQuery = _AuthResolverCatalogUserQuery;
export type AuthResolverContext = _AuthResolverContext;
/**
- * The callback used to resolve the cookie configuration for auth providers that use cookies.
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export type CookieConfigurer = (ctx: {
- /** ID of the auth provider that this configuration applies to */
- providerId: string;
- /** The externally reachable base URL of the auth-backend plugin */
- baseUrl: string;
- /** The configured callback URL of the auth provider */
- callbackUrl: string;
- /** The origin URL of the app */
- appOrigin: string;
-}) => {
- domain: string;
- path: string;
- secure: boolean;
- sameSite?: 'none' | 'lax' | 'strict';
-};
+export type CookieConfigurer = _CookieConfigurer;
/** @public */
export type AuthProviderConfig = {
diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts
index 7a18040abc..e5ef84e02c 100644
--- a/plugins/auth-node/src/index.ts
+++ b/plugins/auth-node/src/index.ts
@@ -31,6 +31,7 @@ export type {
BackstageIdentityResponse,
BackstageSignInResult,
BackstageUserIdentity,
+ CookieConfigurer,
IdentityApiGetIdentityRequest,
ProfileInfo,
TokenParams,
diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts
index 823f06320f..383fe50a74 100644
--- a/plugins/auth-node/src/types.ts
+++ b/plugins/auth-node/src/types.ts
@@ -189,3 +189,23 @@ export type ProfileInfo = {
*/
picture?: string;
};
+
+/**
+ * The callback used to resolve the cookie configuration for auth providers that use cookies.
+ * @public
+ */
+export type CookieConfigurer = (ctx: {
+ /** ID of the auth provider that this configuration applies to */
+ providerId: string;
+ /** The externally reachable base URL of the auth-backend plugin */
+ baseUrl: string;
+ /** The configured callback URL of the auth provider */
+ callbackUrl: string;
+ /** The origin URL of the app */
+ appOrigin: string;
+}) => {
+ domain: string;
+ path: string;
+ secure: boolean;
+ sameSite?: 'none' | 'lax' | 'strict';
+};
From 93427ba7bc289d6c515bedc0f0ba03b6a304c350 Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sat, 22 Jul 2023 10:44:55 +0200
Subject: [PATCH 109/372] auth-node: add OAuthCookieManager
Signed-off-by: Patrik Oldsberg
---
.../auth-node/src/oauth/OAuthCookieManager.ts | 127 ++++++++++++++++++
1 file changed, 127 insertions(+)
create mode 100644 plugins/auth-node/src/oauth/OAuthCookieManager.ts
diff --git a/plugins/auth-node/src/oauth/OAuthCookieManager.ts b/plugins/auth-node/src/oauth/OAuthCookieManager.ts
new file mode 100644
index 0000000000..5fe2304610
--- /dev/null
+++ b/plugins/auth-node/src/oauth/OAuthCookieManager.ts
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Request, Response } from 'express';
+import { CookieConfigurer } from '../types';
+
+const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000;
+const TEN_MINUTES_MS = 600 * 1000;
+
+const defaultCookieConfigurer: CookieConfigurer = ({
+ callbackUrl,
+ providerId,
+ appOrigin,
+}) => {
+ const { hostname: domain, pathname, protocol } = new URL(callbackUrl);
+ const secure = protocol === 'https:';
+
+ // For situations where the auth-backend is running on a
+ // different domain than the app, we set the SameSite attribute
+ // to 'none' to allow third-party access to the cookie, but
+ // only if it's in a secure context (https).
+ let sameSite: ReturnType['sameSite'] = 'lax';
+ if (new URL(appOrigin).hostname !== domain && secure) {
+ sameSite = 'none';
+ }
+
+ // If the provider supports callbackUrls, the pathname will
+ // contain the complete path to the frame handler so we need
+ // to slice off the trailing part of the path.
+ const path = pathname.endsWith(`${providerId}/handler/frame`)
+ ? pathname.slice(0, -'/handler/frame'.length)
+ : `${pathname}/${providerId}`;
+
+ return { domain, path, secure, sameSite };
+};
+
+/** @internal */
+export class OAuthCookieManager {
+ private readonly cookieConfigurer: CookieConfigurer;
+ private readonly nonceCookie: string;
+ private readonly refreshTokenCookie: string;
+ private readonly grantedScopeCookie: string;
+
+ constructor(
+ private readonly options: {
+ providerId: string;
+ defaultAppOrigin: string;
+ baseUrl: string;
+ callbackUrl: string;
+ cookieConfigurer?: CookieConfigurer;
+ },
+ ) {
+ this.cookieConfigurer = options.cookieConfigurer ?? defaultCookieConfigurer;
+
+ this.nonceCookie = `${options.providerId}-nonce`;
+ this.refreshTokenCookie = `${options.providerId}-refresh-token`;
+ this.grantedScopeCookie = `${options.providerId}-granted-scope`;
+ }
+
+ private getConfig(origin?: string, pathSuffix: string = '') {
+ const cookieConfig = this.cookieConfigurer({
+ providerId: this.options.providerId,
+ baseUrl: this.options.baseUrl,
+ callbackUrl: this.options.callbackUrl,
+ appOrigin: origin ?? this.options.defaultAppOrigin,
+ });
+ return {
+ httpOnly: true,
+ sameSite: 'lax' as const,
+ ...cookieConfig,
+ path: cookieConfig.path + pathSuffix,
+ };
+ }
+
+ setNonce(res: Response, nonce: string, origin?: string) {
+ res.cookie(this.nonceCookie, nonce, {
+ maxAge: TEN_MINUTES_MS,
+ ...this.getConfig(origin, '/handler'),
+ });
+ }
+
+ setRefreshToken(res: Response, refreshToken: string, origin?: string) {
+ res.cookie(this.refreshTokenCookie, refreshToken, {
+ maxAge: THOUSAND_DAYS_MS,
+ ...this.getConfig(origin),
+ });
+ }
+
+ removeRefreshToken(res: Response, origin?: string) {
+ res.cookie(this.refreshTokenCookie, '', {
+ maxAge: 0,
+ ...this.getConfig(origin),
+ });
+ }
+
+ setGrantedScopes(res: Response, scope: string, origin?: string) {
+ res.cookie(this.grantedScopeCookie, scope, {
+ maxAge: THOUSAND_DAYS_MS,
+ ...this.getConfig(origin),
+ });
+ }
+
+ getNonce(req: Request) {
+ return req.cookies[this.nonceCookie];
+ }
+
+ getRefreshToken(req: Request) {
+ return req.cookies[this.refreshTokenCookie];
+ }
+
+ getGrantedScopes(req: Request) {
+ return req.cookies[this.grantedScopeCookie];
+ }
+}
From b62b47a6dda7ec557ed5dd143a194824c4ef3d7f Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Tue, 25 Jul 2023 17:07:46 +0200
Subject: [PATCH 110/372] auth-backend: move a couple more types to auth-node
Signed-off-by: Patrik Oldsberg
---
plugins/auth-backend/src/providers/types.ts | 146 ++++----------------
plugins/auth-node/package.json | 1 +
plugins/auth-node/src/index.ts | 6 +
plugins/auth-node/src/types.ts | 131 +++++++++++++++++-
yarn.lock | 1 +
5 files changed, 165 insertions(+), 120 deletions(-)
diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts
index 89c7e92c35..45d5be7c66 100644
--- a/plugins/auth-backend/src/providers/types.ts
+++ b/plugins/auth-backend/src/providers/types.ts
@@ -14,18 +14,17 @@
* limitations under the License.
*/
-import { Config } from '@backstage/config';
-import {
- BackstageIdentityResponse,
- BackstageSignInResult,
-} from '@backstage/plugin-auth-node';
-import express from 'express';
-import { LoggerService } from '@backstage/backend-plugin-api';
import {
+ AuthProviderConfig as _AuthProviderConfig,
+ AuthProviderRouteHandlers as _AuthProviderRouteHandlers,
+ AuthProviderFactory as _AuthProviderFactory,
AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery,
AuthResolverContext as _AuthResolverContext,
+ ClientAuthResponse as _ClientAuthResponse,
CookieConfigurer as _CookieConfigurer,
ProfileInfo as _ProfileInfo,
+ SignInInfo as _SignInInfo,
+ SignInResolver as _SignInResolver,
} from '@backstage/plugin-auth-node';
import { OAuthStartRequest } from '../lib/oauth/types';
@@ -47,30 +46,6 @@ export type AuthResolverContext = _AuthResolverContext;
*/
export type CookieConfigurer = _CookieConfigurer;
-/** @public */
-export type AuthProviderConfig = {
- /**
- * The protocol://domain[:port] where the app is hosted. This is used to construct the
- * callbackURL to redirect to once the user signs in to the auth provider.
- */
- baseUrl: string;
-
- /**
- * The base URL of the app as provided by app.baseUrl
- */
- appUrl: string;
-
- /**
- * A function that is called to check whether an origin is allowed to receive the authentication result.
- */
- isOriginAllowed: (origin: string) => boolean;
-
- /**
- * The function used to resolve cookie configuration based on the auth provider options.
- */
- cookieConfigurer?: CookieConfigurer;
-};
-
/** @public */
export type OAuthStartResponse = {
/**
@@ -84,77 +59,28 @@ export type OAuthStartResponse = {
};
/**
- * Any Auth provider needs to implement this interface which handles the routes in the
- * auth backend. Any auth API requests from the frontend reaches these methods.
- *
- * The routes in the auth backend API are tied to these methods like below
- *
- * `/auth/[provider]/start -> start`
- * `/auth/[provider]/handler/frame -> frameHandler`
- * `/auth/[provider]/refresh -> refresh`
- * `/auth/[provider]/logout -> logout`
- *
* @public
+ * @deprecated import from `@backstage/plugin-auth-node` instead
*/
-export interface AuthProviderRouteHandlers {
- /**
- * Handles the start route of the API. This initiates a sign in request with an auth provider.
- *
- * Request
- * - scopes for the auth request (Optional)
- * Response
- * - redirect to the auth provider for the user to sign in or consent.
- * - sets a nonce cookie and also pass the nonce as 'state' query parameter in the redirect request
- */
- start(req: express.Request, res: express.Response): Promise;
+export type AuthProviderConfig = _AuthProviderConfig;
- /**
- * Once the user signs in or consents in the OAuth screen, the auth provider redirects to the
- * callbackURL which is handled by this method.
- *
- * Request
- * - to contain a nonce cookie and a 'state' query parameter
- * Response
- * - postMessage to the window with a payload that contains accessToken, expiryInSeconds?, idToken? and scope.
- * - sets a refresh token cookie if the auth provider supports refresh tokens
- */
- frameHandler(req: express.Request, res: express.Response): Promise