From 911c25de59cefe6f77823258438123edb7f9299a Mon Sep 17 00:00:00 2001
From: Patrik Oldsberg
Date: Sun, 5 Mar 2023 20:17:14 +0100
Subject: [PATCH 001/177] eslint-plugin: add auto fix for missing imports
Signed-off-by: Patrik Oldsberg
---
.changeset/twelve-parrots-camp.md | 5 +
packages/eslint-plugin/lib/getPackages.js | 4 +
packages/eslint-plugin/lib/visitImports.js | 30 ++-
.../rules/no-undeclared-imports.js | 188 +++++++++++++-----
.../src/no-undeclared-imports.test.ts | 64 +++++-
5 files changed, 232 insertions(+), 59 deletions(-)
create mode 100644 .changeset/twelve-parrots-camp.md
diff --git a/.changeset/twelve-parrots-camp.md b/.changeset/twelve-parrots-camp.md
new file mode 100644
index 0000000000..ea7e254f29
--- /dev/null
+++ b/.changeset/twelve-parrots-camp.md
@@ -0,0 +1,5 @@
+---
+'@backstage/eslint-plugin': patch
+---
+
+Add support for auto-fixing missing imports detected by the `no-undeclared-imports` rule.
diff --git a/packages/eslint-plugin/lib/getPackages.js b/packages/eslint-plugin/lib/getPackages.js
index f5f2c63cc1..8f4ccfacf3 100644
--- a/packages/eslint-plugin/lib/getPackages.js
+++ b/packages/eslint-plugin/lib/getPackages.js
@@ -31,6 +31,7 @@ const manypkg = require('@manypkg/get-packages');
* @property {ExtendedPackage} root
* @property {ExtendedPackage[]} list
* @property {Map} map
+ * @property {() => void} clearCache
* @property {(path: string) => ExtendedPackage | undefined} byPath
*/
@@ -64,6 +65,9 @@ module.exports = (function () {
pkg => !path.relative(pkg.dir, filePath).startsWith('..'),
);
},
+ clearCache() {
+ result = undefined;
+ },
};
lastLoadAt = Date.now();
return result;
diff --git a/packages/eslint-plugin/lib/visitImports.js b/packages/eslint-plugin/lib/visitImports.js
index 1a344c1101..376c37575f 100644
--- a/packages/eslint-plugin/lib/visitImports.js
+++ b/packages/eslint-plugin/lib/visitImports.js
@@ -24,6 +24,16 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'local'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
+ * @property {string} path
+ */
+
+/**
+ * @typedef ImportDirective
+ * @type {object}
+ * @property {'directive'} type
+ * @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
*/
@@ -32,6 +42,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'internal'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
* @property {import('./getPackages').ExtendedPackage} package
* @property {string} packageName
@@ -42,6 +53,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'external'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
* @property {string} packageName
*/
@@ -51,6 +63,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'builtin'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Literal} node
* @property {string} path
* @property {string} packageName
*/
@@ -58,7 +71,7 @@ const getPackages = require('./getPackages');
/**
* @callback ImportVisitor
* @param {ConsideredNode} node
- * @param {LocalImport | InternalImport | ExternalImport | BuiltinImport} import
+ * @param {ImportDirective | LocalImport | InternalImport | ExternalImport | BuiltinImport} import
*/
/**
@@ -68,7 +81,7 @@ const getPackages = require('./getPackages');
/**
* @param {ConsideredNode} node
- * @returns {undefined | {path: string, kind: 'type' | 'value'}}
+ * @returns {undefined | {path: string, node: import('estree').Literal, kind: 'type' | 'value'}}
*/
function getImportInfo(node) {
/** @type {import('estree').Expression | import('estree').SpreadElement | undefined | null} */
@@ -95,7 +108,11 @@ function getImportInfo(node) {
/** @type {any} */
const anyNode = node;
- return { path: pathNode.value, kind: anyNode.importKind ?? 'value' };
+ return {
+ path: pathNode.value,
+ node: pathNode,
+ kind: anyNode.importKind ?? 'value',
+ };
}
/**
@@ -122,6 +139,10 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, { type: 'local', ...info });
}
+ if (info.path.startsWith('directive:')) {
+ return visitor(node, { type: 'directive', ...info });
+ }
+
const pathParts = info.path.split('/');
// Check for match with plain name, then namespaced name
@@ -143,6 +164,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'builtin',
kind: info.kind,
+ node: info.node,
path: subPath,
packageName,
});
@@ -151,6 +173,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'external',
kind: info.kind,
+ node: info.node,
path: subPath,
packageName,
});
@@ -159,6 +182,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'internal',
kind: info.kind,
+ node: info.node,
path: subPath,
package: pkg,
packageName,
diff --git a/packages/eslint-plugin/rules/no-undeclared-imports.js b/packages/eslint-plugin/rules/no-undeclared-imports.js
index b1e11d1b97..06f0afed46 100644
--- a/packages/eslint-plugin/rules/no-undeclared-imports.js
+++ b/packages/eslint-plugin/rules/no-undeclared-imports.js
@@ -20,6 +20,7 @@ const path = require('path');
const getPackageMap = require('../lib/getPackages');
const visitImports = require('../lib/visitImports');
const minimatch = require('minimatch');
+const { execFileSync } = require('child_process');
const depFields = {
dep: 'dependencies',
@@ -124,11 +125,13 @@ function getAddFlagForDepsField(depsField) {
module.exports = {
meta: {
type: 'problem',
+ fixable: 'code',
messages: {
undeclared:
"{{ packageName }} must be declared in {{ depsField }} of {{ packageJsonPath }}, run 'yarn --cwd {{ packagePath }} add{{ addFlag }} {{ packageName }}' from the project root.",
switch:
'{{ packageName }} is declared in {{ oldDepsField }}, but should be moved to {{ depsField }} in {{ packageJsonPath }}.',
+ switchBack: 'Switch back to import declaration',
},
docs: {
description:
@@ -150,63 +153,150 @@ module.exports = {
return {};
}
- return visitImports(context, (node, imp) => {
- // We leave checking of type imports to the repo-tools check,
- // and we skip builtins and local imports
- if (
- imp.kind === 'type' ||
- imp.type === 'builtin' ||
- imp.type === 'local'
- ) {
- return;
- }
+ /** @type Array<{name: string, flag: string, node: import('estree').Node}> */
+ const importsToAdd = [];
- // We skip imports for the package itself
- if (imp.packageName === localPkg.packageJson.name) {
- return;
- }
+ return {
+ // All missing imports that we detect are collected as we traverse, and then we use
+ // the program exit to execute all install directives that have been found.
+ ['Program:exit']() {
+ /** @type Record> */
+ const byFlag = {};
- const modulePath = path.relative(localPkg.dir, filePath);
- const expectedType = getExpectedDepType(
- localPkg.packageJson,
- imp.packageName,
- modulePath,
- );
+ for (const { name, flag } of importsToAdd) {
+ byFlag[flag] = byFlag[flag] ?? new Set();
+ byFlag[flag].add(name);
+ }
- const conflict = findConflict(
- localPkg.packageJson,
- imp.packageName,
- expectedType,
- );
+ for (const name of byFlag[''] ?? []) {
+ byFlag['--dev']?.delete(name);
+ }
+ for (const name of byFlag['--peer'] ?? []) {
+ byFlag['']?.delete(name);
+ byFlag['--dev']?.delete(name);
+ }
- if (conflict) {
- try {
- const fullImport = imp.path
- ? `${imp.packageName}/${imp.path}`
- : imp.packageName;
- require.resolve(fullImport, {
- paths: [localPkg.dir],
+ for (const [flag, names] of Object.entries(byFlag)) {
+ // The security implication of this is a bit interesting, as crafted add-import
+ // directives could be used to install malicious packages. However, the same is true
+ // for adding malicious packages to package.json, so there's significant difference.
+ execFileSync('yarn', ['add', ...(flag || []), ...names], {
+ cwd: localPkg.dir,
+ stdio: 'inherit',
});
- } catch {
- // If the dependency doesn't resolve then it's likely a type import, ignore
+ }
+
+ // This switches all import directives back to the original import.
+ for (const added of importsToAdd) {
+ context.report({
+ node: added.node,
+ messageId: 'switchBack',
+ fix(fixer) {
+ return fixer.replaceText(added.node, `'${added.name}'`);
+ },
+ });
+ }
+
+ importsToAdd.length = 0;
+ packages.clearCache();
+ },
+ ...visitImports(context, (node, imp) => {
+ // We leave checking of type imports to the repo-tools check,
+ // and we skip builtins and local imports
+ if (
+ imp.kind === 'type' ||
+ imp.type === 'builtin' ||
+ imp.type === 'local'
+ ) {
return;
}
- const packagePath = path.relative(packages.root.dir, localPkg.dir);
- const packageJsonPath = path.join(packagePath, 'package.json');
+ // Any import directive that is found is collected for processing later
+ if (imp.type === 'directive') {
+ const parts = imp.path.split(':');
+ if (parts[1] !== 'add-import') {
+ return;
+ }
+ const [type, name] = parts.slice(2);
+ if (!name.match(/^(@[-\w\.~]+\/)?[-\w\.~]*$/i)) {
+ throw new Error(
+ `Invalid package name to add as dependency: '${name}'`,
+ );
+ }
- context.report({
- node,
- messageId: conflict.oldDepsField ? 'switch' : 'undeclared',
- data: {
- ...conflict,
- packagePath,
- addFlag: getAddFlagForDepsField(conflict.depsField),
- packageName: imp.packageName,
- packageJsonPath: packageJsonPath,
- },
- });
- }
- });
+ importsToAdd.push({
+ flag: getAddFlagForDepsField(type).trim(),
+ name,
+ node: imp.node,
+ });
+ return;
+ }
+
+ // We skip imports for the package itself
+ if (imp.packageName === localPkg.packageJson.name) {
+ return;
+ }
+
+ const modulePath = path.relative(localPkg.dir, filePath);
+ const expectedType = getExpectedDepType(
+ localPkg.packageJson,
+ imp.packageName,
+ modulePath,
+ );
+
+ const conflict = findConflict(
+ localPkg.packageJson,
+ imp.packageName,
+ expectedType,
+ );
+
+ if (conflict) {
+ try {
+ const fullImport = imp.path
+ ? `${imp.packageName}/${imp.path}`
+ : imp.packageName;
+ require.resolve(fullImport, {
+ paths: [localPkg.dir],
+ });
+ } catch {
+ // If the dependency doesn't resolve then it's likely a type import, ignore
+ return;
+ }
+
+ const packagePath = path.relative(packages.root.dir, localPkg.dir);
+ const packageJsonPath = path.join(packagePath, 'package.json');
+
+ context.report({
+ node,
+ messageId: conflict.oldDepsField ? 'switch' : 'undeclared',
+ data: {
+ ...conflict,
+ packagePath,
+ addFlag: getAddFlagForDepsField(conflict.depsField),
+ packageName: imp.packageName,
+ packageJsonPath: packageJsonPath,
+ },
+ // This fix callback is always executed, regardless of whether linting is run with
+ // fixes enabled or not. There is no way to determine if fixes are being applied, so
+ // instead our fix will replace the import with a directive that will be picked up
+ // on the next run. When ESLint applies fixes all rules are re-run to make sure the fixes
+ // applied correctly, which means that these directives will be picked up, executed,
+ // and switched back to the original import immediately.
+ // This is not true for all editor integrations. For example, VSCode translates there fixes
+ // to native editor commands, and does not re-run ESLint. This means that the import directive
+ // will end up in source code, and the import directive fix needs to be applied manually too.
+ // There is to my knowledge no way around this that doesn't get very hacky, so it will do for now.
+ fix: conflict.oldDepsField
+ ? undefined
+ : fixer => {
+ return fixer.replaceText(
+ imp.node,
+ `'directive:add-import:${conflict.depsField}:${imp.packageName}'`,
+ );
+ },
+ });
+ }
+ }),
+ };
},
};
diff --git a/packages/eslint-plugin/src/no-undeclared-imports.test.ts b/packages/eslint-plugin/src/no-undeclared-imports.test.ts
index 78844899ba..e92d422057 100644
--- a/packages/eslint-plugin/src/no-undeclared-imports.test.ts
+++ b/packages/eslint-plugin/src/no-undeclared-imports.test.ts
@@ -18,6 +18,10 @@ import { RuleTester } from 'eslint';
import { join as joinPath } from 'path';
import rule from '../rules/no-undeclared-imports';
+jest.mock('child_process', () => ({
+ execFileSync: jest.fn(),
+}));
+
const RULE = 'no-undeclared-imports';
const FIXTURE = joinPath(__dirname, '__fixtures__/monorepo');
@@ -45,6 +49,9 @@ const ERR_SWITCHED = (
'package.json',
)}.`,
});
+const ERR_SWITCH_BACK = () => ({
+ message: 'Switch back to import declaration',
+});
process.chdir(FIXTURE);
@@ -130,6 +137,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'lodash'`,
+ output: `import 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -137,6 +145,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import { debounce } from 'lodash'`,
+ output: `import { debounce } from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -144,6 +153,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import * as _ from 'lodash'`,
+ output: `import * as _ from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -151,6 +161,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import _ from 'lodash'`,
+ output: `import _ from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -158,6 +169,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import('lodash')`,
+ output: `import('directive:add-import:dependencies:lodash')`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -165,6 +177,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `require('lodash')`,
+ output: `require('directive:add-import:dependencies:lodash')`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -172,13 +185,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'lodash'`,
- filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
- errors: [
- ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
- ],
- },
- {
- code: `import 'lodash'`,
+ output: `import 'directive:add-import:devDependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -191,6 +198,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react'`,
+ output: `import 'directive:add-import:peerDependencies:react'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -203,6 +211,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react'`,
+ output: `import 'directive:add-import:peerDependencies:react'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -215,6 +224,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react-dom'`,
+ output: `import 'directive:add-import:dependencies:react-dom'`,
filename: joinPath(FIXTURE, 'packages/foo/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -226,6 +236,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react-dom'`,
+ output: `import 'directive:add-import:devDependencies:react-dom'`,
filename: joinPath(FIXTURE, 'packages/foo/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -238,6 +249,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import '@internal/foo'`,
+ output: `import 'directive:add-import:dependencies:@internal/foo'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -247,5 +259,43 @@ ruleTester.run(RULE, rule, {
),
],
},
+
+ // Switching back to original import declarations
+ {
+ code: `import 'directive:add-import:dependencies:lodash'`,
+ output: `import 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import { debounce } from 'directive:add-import:dependencies:lodash'`,
+ output: `import { debounce } from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import * as _ from 'directive:add-import:dependencies:lodash'`,
+ output: `import * as _ from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import _ from 'directive:add-import:dependencies:lodash'`,
+ output: `import _ from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import('directive:add-import:dependencies:lodash')`,
+ output: `import('lodash')`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `require('directive:add-import:dependencies:lodash')`,
+ output: `require('lodash')`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
],
});
From 19a0d5b4295e8012851dd86800cd521746400dc7 Mon Sep 17 00:00:00 2001
From: Aramis Sennyey
Date: Mon, 6 Mar 2023 17:03:42 -0500
Subject: [PATCH 002/177] Add additional auth backend props and limit
visibility.
Signed-off-by: Aramis Sennyey
---
plugins/auth-backend/config.d.ts | 97 +++++++++++++++++++++++++++++---
1 file changed, 88 insertions(+), 9 deletions(-)
diff --git a/plugins/auth-backend/config.d.ts b/plugins/auth-backend/config.d.ts
index 5aff9df90a..cdd3fe1bf0 100644
--- a/plugins/auth-backend/config.d.ts
+++ b/plugins/auth-backend/config.d.ts
@@ -62,30 +62,72 @@ export interface Config {
*/
providers?: {
google?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl: string;
+ };
};
github?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl?: string;
+ enterpriseInstanceUrl?: string;
+ };
};
gitlab?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ audience?: string;
+ callbackUrl?: string;
+ };
};
saml?: {
entryPoint: string;
logoutUrl?: string;
issuer: string;
+ /**
+ * @visibility secret
+ */
cert: string;
audience?: string;
+ /**
+ * @visibility secret
+ */
privateKey?: string;
authnContext?: string[];
identifierFormat?: string;
+ /**
+ * @visibility secret
+ */
decryptionPvk?: string;
signatureAlgorithm?: 'sha256' | 'sha512';
digestAlgorithm?: string;
acceptedClockSkewMs?: number;
};
okta?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ audience: string;
+ authServerId?: string;
+ idp?: string;
+ callbackUrl?: string;
+ };
};
oauth2?: {
[authEnv: string]: {
@@ -101,19 +143,56 @@ export interface Config {
};
};
oidc?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl?: string;
+ metadataUrl: string;
+ scope?: string;
+ prompt?: string;
+ };
};
auth0?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ domain: string;
+ callbackUrl?: string;
+ audience?: string;
+ connection?: string;
+ connectionScope?: string;
+ };
};
microsoft?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ tenantId: string;
+ callbackUrl?: string;
+ };
};
onelogin?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ issuer: string;
+ callbackUrl?: string;
+ };
};
awsalb?: {
- issuer?: string;
+ iss?: string;
region: string;
};
cfaccess?: {
From 354295465f7e35b714ed13677be63851be4ad753 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 7 Mar 2023 09:53:11 +0000
Subject: [PATCH 003/177] fix(deps): update dependency kafkajs to v2.2.4
Signed-off-by: Renovate Bot
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 14d1ddbc05..07cfb527df 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28053,9 +28053,9 @@ __metadata:
linkType: hard
"kafkajs@npm:^2.0.0":
- version: 2.2.3
- resolution: "kafkajs@npm:2.2.3"
- checksum: 30f17de75da852942334b6069c5c515e2531a7b610997f0e4c6088281f16588df45ac920218411d9ae995c09af1f69186ed4d73cbe0e5f1247ec756dd9c7678e
+ version: 2.2.4
+ resolution: "kafkajs@npm:2.2.4"
+ checksum: 83e9e8bc50a09b142f4ff79f6a2bd88ecc21b83bcefe6621ab1716118d624886befb7371731274f67812ce35dd50b53140ff3b49a06e5d9169fe6b164d72fea5
languageName: node
linkType: hard
From f04f99a897cddc71c3137c1b4d7b693eaaa4fa93 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 7 Mar 2023 13:04:23 +0000
Subject: [PATCH 004/177] chore(deps): update graphqlcodegenerator monorepo to
v3.2.2
Signed-off-by: Renovate Bot
---
yarn.lock | 100 +++++++++++++++++++++++++++++-------------------------
1 file changed, 54 insertions(+), 46 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 2bf9c900df..337903e13e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10604,8 +10604,8 @@ __metadata:
linkType: hard
"@graphql-codegen/cli@npm:^3.0.0":
- version: 3.2.1
- resolution: "@graphql-codegen/cli@npm:3.2.1"
+ version: 3.2.2
+ resolution: "@graphql-codegen/cli@npm:3.2.2"
dependencies:
"@babel/generator": ^7.18.13
"@babel/template": ^7.18.10
@@ -10626,12 +10626,12 @@ __metadata:
"@whatwg-node/fetch": ^0.8.0
chalk: ^4.1.0
cosmiconfig: ^7.0.0
- cosmiconfig-typescript-loader: ^4.3.0
debounce: ^1.2.0
detect-indent: ^6.0.0
- graphql-config: ^4.4.0
+ graphql-config: ^4.5.0
inquirer: ^8.0.0
is-glob: ^4.0.1
+ jiti: ^1.17.1
json-to-pretty-yaml: ^1.2.2
listr2: ^4.0.5
log-symbols: ^4.0.0
@@ -10639,7 +10639,6 @@ __metadata:
shell-quote: ^1.7.3
string-env-interpolation: ^1.0.1
ts-log: ^2.2.3
- ts-node: ^10.9.1
tslib: ^2.4.0
yaml: ^1.10.0
yargs: ^17.0.0
@@ -10650,7 +10649,7 @@ __metadata:
graphql-code-generator: cjs/bin.js
graphql-codegen: cjs/bin.js
graphql-codegen-esm: esm/bin.js
- checksum: b62e2a3cee866cb006163946272f25ba9cc59bb2d45b7b3df5d1b220096e79183929456a440e5c4980d6a5664d6b14d7870d7f1760eb250b9211f4743d2afad3
+ checksum: b94284ac538a3504f96c7d507c140b7cfee30042209c4230ffc3068f05b6b27c75e1922b31c696363ab43e34e472ed194cc72996bbb10f59991cd2a4a35ff36e
languageName: node
linkType: hard
@@ -10669,18 +10668,18 @@ __metadata:
linkType: hard
"@graphql-codegen/graphql-modules-preset@npm:^3.0.0":
- version: 3.1.0
- resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.0"
+ version: 3.1.1
+ resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.1"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
"@graphql-tools/utils": ^9.0.0
change-case-all: 1.0.15
parse-filepath: ^1.0.2
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: cee2e7f8afbc0b0d81592abfc8894422b791f0eca6e878a789de980bf1710a3c726786ade296e653cc83f920b2618aa9f5c9dbb6934ee9da0122b2d10ef5bdb5
+ checksum: f437590afa33ac308c075d214b501404ae2f99888cac8071d05cc2b8c7ceaea5aef8f86bb60e7a9a45902126dc99bd20d77e951c0beef665aaa31ac3c2217e26
languageName: node
linkType: hard
@@ -10714,39 +10713,39 @@ __metadata:
linkType: hard
"@graphql-codegen/typescript-resolvers@npm:^3.0.0":
- version: 3.1.0
- resolution: "@graphql-codegen/typescript-resolvers@npm:3.1.0"
+ version: 3.1.1
+ resolution: "@graphql-codegen/typescript-resolvers@npm:3.1.1"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
- "@graphql-codegen/typescript": ^3.0.1
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/typescript": ^3.0.2
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
"@graphql-tools/utils": ^9.0.0
auto-bind: ~4.0.0
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 05888a9dfd1556fe15465a524750c36881334c231297e2e89bccb536450bed61fde2ba182ba4e79e34be846ce2e2439f3f6b31a67e7437f03a4e4ace62e84dcd
+ checksum: 88faa1ca2335096aa9939101f3591007d9fa477836d969a3c622dbf67704505600387a2e9fbb416d61b5ef42dbd79a0d351003037c0756d8d0c7f32c7961e783
languageName: node
linkType: hard
-"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.1":
- version: 3.0.1
- resolution: "@graphql-codegen/typescript@npm:3.0.1"
+"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "@graphql-codegen/typescript@npm:3.0.2"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
"@graphql-codegen/schema-ast": ^3.0.1
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
auto-bind: ~4.0.0
tslib: ~2.5.0
peerDependencies:
graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 56a369237971cc4a5a4987628ec0fcceed66ec03a292b3d17b6ffb64279185cd085be351268c55be6b152634c430e885b9c584d816aaa25f067d91c6996c329a
+ checksum: e92dc54804b6ad45fb2499b91cb89743e455a984684e2b1df1b1a8f479a0bbffa5c625be97ccb55874ac8b7316a820b546e9e312b22eda78012acd5c27594a28
languageName: node
linkType: hard
-"@graphql-codegen/visitor-plugin-common@npm:3.0.1":
- version: 3.0.1
- resolution: "@graphql-codegen/visitor-plugin-common@npm:3.0.1"
+"@graphql-codegen/visitor-plugin-common@npm:3.0.2":
+ version: 3.0.2
+ resolution: "@graphql-codegen/visitor-plugin-common@npm:3.0.2"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
"@graphql-tools/optimize": ^1.3.0
@@ -10760,7 +10759,7 @@ __metadata:
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 32bf553f73938581f634b1bbdf8616b1cb30cc85c73d7a8f6088d2a81a957e198c7c278edf6582c1eee7328a4463cea4725316b1743b87b26dc3e9fdd8318648
+ checksum: c8f941df7f8304b722b492ceaf15dddcf33e3a69bc29b54970908ffa12b14d92276958005bd307648e0cdc55f9e243d0fb390862f73a17a26bd50f6484ac42d6
languageName: node
linkType: hard
@@ -20284,18 +20283,6 @@ __metadata:
languageName: node
linkType: hard
-"cosmiconfig-typescript-loader@npm:^4.3.0":
- version: 4.3.0
- resolution: "cosmiconfig-typescript-loader@npm:4.3.0"
- peerDependencies:
- "@types/node": "*"
- cosmiconfig: ">=7"
- ts-node: ">=10"
- typescript: ">=3"
- checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb
- languageName: node
- linkType: hard
-
"cosmiconfig@npm:8.0.0":
version: 8.0.0
resolution: "cosmiconfig@npm:8.0.0"
@@ -24970,9 +24957,9 @@ __metadata:
languageName: node
linkType: hard
-"graphql-config@npm:^4.4.0":
- version: 4.4.0
- resolution: "graphql-config@npm:4.4.0"
+"graphql-config@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "graphql-config@npm:4.5.0"
dependencies:
"@graphql-tools/graphql-file-loader": ^7.3.7
"@graphql-tools/json-file-loader": ^7.3.7
@@ -24981,14 +24968,17 @@ __metadata:
"@graphql-tools/url-loader": ^7.9.7
"@graphql-tools/utils": ^9.0.0
cosmiconfig: 8.0.0
- minimatch: 4.2.1
+ jiti: 1.17.1
+ minimatch: 4.2.3
string-env-interpolation: 1.0.1
tslib: ^2.4.0
peerDependencies:
cosmiconfig-toml-loader: ^1.0.0
- cosmiconfig-typescript-loader: ^4.0.0
graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 2f8cbb4710a7c0a411074eb843317bc66e5602fdab7eefa9765812d986d4b04fc2d285d3c0811ed0efaef12ea58351676561d704e79880f5848ed970badab500
+ peerDependenciesMeta:
+ cosmiconfig-toml-loader:
+ optional: true
+ checksum: 8ab1a3ce3534598ddac2df213b6af2eecd9ebcca2268d39cc3e87a6e55749483389a6df222e9e0acd638dd2479378a5c8e8d90f980e6a54e700c4c4ae3522123
languageName: node
linkType: hard
@@ -27615,6 +27605,24 @@ __metadata:
languageName: node
linkType: hard
+"jiti@npm:1.17.1":
+ version: 1.17.1
+ resolution: "jiti@npm:1.17.1"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 56c6d8488e7e9cc6ee66a0f0d5e18db6669cb12b2e93364f393442289a9bc75a8e8c796249f59015e01c3ebdf9478e2ca8b76c30e29072c678ee00d39de757c7
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.17.1":
+ version: 1.17.2
+ resolution: "jiti@npm:1.17.2"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 51941fea3622d1ff80d914ec6ec95ae463ede598a4a2317f1e8ff018823212eba6b9ea1c638c97c18f681870b1c2b9f49fbb13021b7c2415c46c8a3b1910f1e3
+ languageName: node
+ linkType: hard
+
"jju@npm:~1.4.0":
version: 1.4.0
resolution: "jju@npm:1.4.0"
@@ -30323,12 +30331,12 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:4.2.1":
- version: 4.2.1
- resolution: "minimatch@npm:4.2.1"
+"minimatch@npm:4.2.3":
+ version: 4.2.3
+ resolution: "minimatch@npm:4.2.3"
dependencies:
brace-expansion: ^1.1.7
- checksum: 2b1514e3d0f29a549912f0db7ae7b82c5cab4a8f2dd0369f1c6451a325b3f12b2cf473c95873b6157bb8df183d6cf6db82ff03614b6adaaf1d7e055beccdfd01
+ checksum: 3392388e3ef7de7ae9a3a48d48a27a323934452f4af81b925dfbe85ce2dc07da855e3dbcc69229888be4e5118f6c0b79847d30f3e7c0e0017b25e423c11c0409
languageName: node
linkType: hard
From e339789173e64f4eacca76492175edbd674e6334 Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Sat, 25 Feb 2023 00:10:13 -0600
Subject: [PATCH 005/177] Add global-agent to dependencies; Update Readme w/
instructions
Signed-off-by: zjpersc
---
packages/techdocs-cli/README.md | 7 +++++++
packages/techdocs-cli/package.json | 1 +
2 files changed, 8 insertions(+)
diff --git a/packages/techdocs-cli/README.md b/packages/techdocs-cli/README.md
index ae296d2c26..e6ba03e1d0 100644
--- a/packages/techdocs-cli/README.md
+++ b/packages/techdocs-cli/README.md
@@ -40,6 +40,13 @@ yarn start
yarn techdocs-cli:dev [...options]
```
+### Connecting behind a proxy
+```sh
+# Prior to executing the techdocs-cli command
+export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
+export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
+```
+
### Using an example docs project
For the purpose of local development, we have created an example documentation project. You are of course also free to create your own local test site - all it takes is a `docs/index.md` and an `mkdocs.yml` in a directory.
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index 0a3bbed06f..371ddf440f 100644
--- a/packages/techdocs-cli/package.json
+++ b/packages/techdocs-cli/package.json
@@ -69,6 +69,7 @@
"commander": "^9.1.0",
"dockerode": "^3.3.1",
"fs-extra": "^10.0.1",
+ "global-agent": "^3.0.0",
"http-proxy": "^1.18.1",
"react-dev-utils": "^12.0.0-next.60",
"serve-handler": "^6.1.3",
From 7b4991adb9f1b2bc86b4a3e490de22472c2d5398 Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Sat, 25 Feb 2023 00:37:06 -0600
Subject: [PATCH 006/177] Adding changeset
Signed-off-by: zjpersc
---
.changeset/short-panthers-float.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/short-panthers-float.md
diff --git a/.changeset/short-panthers-float.md b/.changeset/short-panthers-float.md
new file mode 100644
index 0000000000..91eafe28aa
--- /dev/null
+++ b/.changeset/short-panthers-float.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+Adding global-agent to enable the ability to publish through a proxy
From 8af3a93d07c213b1f2b432504491ea20d1455233 Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Sun, 26 Feb 2023 20:40:13 -0600
Subject: [PATCH 007/177] Revert "Adding changeset"
This reverts commit b83d77e1bc7b608b0478d3de91c2080a9d153872.
Signed-off-by: zjpersc
---
.changeset/short-panthers-float.md | 5 -----
1 file changed, 5 deletions(-)
delete mode 100644 .changeset/short-panthers-float.md
diff --git a/.changeset/short-panthers-float.md b/.changeset/short-panthers-float.md
deleted file mode 100644
index 91eafe28aa..0000000000
--- a/.changeset/short-panthers-float.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@techdocs/cli': patch
----
-
-Adding global-agent to enable the ability to publish through a proxy
From 1093f1b1cd62741029400aba24ec51b7d7121e55 Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Sun, 26 Feb 2023 20:40:21 -0600
Subject: [PATCH 008/177] Revert "Add global-agent to dependencies; Update
Readme w/ instructions"
This reverts commit 39f5a8389b8ff4afcb18fb19a0ca20d2552abc83.
Signed-off-by: zjpersc
---
packages/techdocs-cli/README.md | 7 -------
packages/techdocs-cli/package.json | 1 -
2 files changed, 8 deletions(-)
diff --git a/packages/techdocs-cli/README.md b/packages/techdocs-cli/README.md
index e6ba03e1d0..ae296d2c26 100644
--- a/packages/techdocs-cli/README.md
+++ b/packages/techdocs-cli/README.md
@@ -40,13 +40,6 @@ yarn start
yarn techdocs-cli:dev [...options]
```
-### Connecting behind a proxy
-```sh
-# Prior to executing the techdocs-cli command
-export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
-export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
-```
-
### Using an example docs project
For the purpose of local development, we have created an example documentation project. You are of course also free to create your own local test site - all it takes is a `docs/index.md` and an `mkdocs.yml` in a directory.
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index 371ddf440f..0a3bbed06f 100644
--- a/packages/techdocs-cli/package.json
+++ b/packages/techdocs-cli/package.json
@@ -69,7 +69,6 @@
"commander": "^9.1.0",
"dockerode": "^3.3.1",
"fs-extra": "^10.0.1",
- "global-agent": "^3.0.0",
"http-proxy": "^1.18.1",
"react-dev-utils": "^12.0.0-next.60",
"serve-handler": "^6.1.3",
From b348420a804d69047c98aea9743292c9156e4e3e Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Sun, 26 Feb 2023 20:44:08 -0600
Subject: [PATCH 009/177] Adding global-agent to dependencies; updated README
w/ instructions
Signed-off-by: zjpersc
---
.changeset/short-panthers-float.md | 5 +++++
packages/techdocs-cli/README.md | 7 +++++++
packages/techdocs-cli/package.json | 1 +
3 files changed, 13 insertions(+)
create mode 100644 .changeset/short-panthers-float.md
diff --git a/.changeset/short-panthers-float.md b/.changeset/short-panthers-float.md
new file mode 100644
index 0000000000..41ec71a7aa
--- /dev/null
+++ b/.changeset/short-panthers-float.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+Adding global-agent to enable the ability to publish through a proxy
\ No newline at end of file
diff --git a/packages/techdocs-cli/README.md b/packages/techdocs-cli/README.md
index ae296d2c26..e6ba03e1d0 100644
--- a/packages/techdocs-cli/README.md
+++ b/packages/techdocs-cli/README.md
@@ -40,6 +40,13 @@ yarn start
yarn techdocs-cli:dev [...options]
```
+### Connecting behind a proxy
+```sh
+# Prior to executing the techdocs-cli command
+export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
+export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
+```
+
### Using an example docs project
For the purpose of local development, we have created an example documentation project. You are of course also free to create your own local test site - all it takes is a `docs/index.md` and an `mkdocs.yml` in a directory.
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index 0a3bbed06f..371ddf440f 100644
--- a/packages/techdocs-cli/package.json
+++ b/packages/techdocs-cli/package.json
@@ -69,6 +69,7 @@
"commander": "^9.1.0",
"dockerode": "^3.3.1",
"fs-extra": "^10.0.1",
+ "global-agent": "^3.0.0",
"http-proxy": "^1.18.1",
"react-dev-utils": "^12.0.0-next.60",
"serve-handler": "^6.1.3",
From 9796fe16d731856b4e4d59bf66f7cafcafccdef1 Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Tue, 7 Mar 2023 14:31:34 -0600
Subject: [PATCH 010/177] Updating techdocs-cli dependency on
global-agent@3.0.0 in yarn.lock
Signed-off-by: zjpersc
---
yarn.lock | 1 +
1 file changed, 1 insertion(+)
diff --git a/yarn.lock b/yarn.lock
index 6973779ac5..b335996073 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13923,6 +13923,7 @@ __metadata:
dockerode: ^3.3.1
find-process: ^1.4.5
fs-extra: ^10.0.1
+ global-agent: ^3.0.0
http-proxy: ^1.18.1
nodemon: ^2.0.2
react-dev-utils: ^12.0.0-next.60
From 6620edc944c17302739b8717f8265d099075984b Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Tue, 7 Mar 2023 17:07:57 -0600
Subject: [PATCH 011/177] Fixing prettier errors
Signed-off-by: zjpersc
---
.changeset/short-panthers-float.md | 2 +-
packages/techdocs-cli/README.md | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/.changeset/short-panthers-float.md b/.changeset/short-panthers-float.md
index 41ec71a7aa..91eafe28aa 100644
--- a/.changeset/short-panthers-float.md
+++ b/.changeset/short-panthers-float.md
@@ -2,4 +2,4 @@
'@techdocs/cli': patch
---
-Adding global-agent to enable the ability to publish through a proxy
\ No newline at end of file
+Adding global-agent to enable the ability to publish through a proxy
diff --git a/packages/techdocs-cli/README.md b/packages/techdocs-cli/README.md
index e6ba03e1d0..85c0075946 100644
--- a/packages/techdocs-cli/README.md
+++ b/packages/techdocs-cli/README.md
@@ -41,7 +41,8 @@ yarn techdocs-cli:dev [...options]
```
### Connecting behind a proxy
-```sh
+
+```sh
# Prior to executing the techdocs-cli command
export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
From 3efdf55f238fb806f112dadbb6f25ed1faeb020c Mon Sep 17 00:00:00 2001
From: Brian Fletcher
Date: Wed, 8 Mar 2023 16:33:45 +0000
Subject: [PATCH 012/177] remove unhandled promise on bad creds
The unhandled promise had been bringing down the whole application when
the creds were bad.
Signed-off-by: Brian Fletcher
---
.../AwsIamKubernetesAuthTranslator.ts | 66 +++++++++----------
1 file changed, 32 insertions(+), 34 deletions(-)
diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
index b89945902d..84e60c9c69 100644
--- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
+++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
@@ -55,46 +55,44 @@ export class AwsIamKubernetesAuthTranslator
assumeRole?: string,
externalId?: string,
): Promise {
- return new Promise(async (resolve, reject) => {
- const awsCreds = await this.awsGetCredentials();
+ const awsCreds = await this.awsGetCredentials();
- if (!(awsCreds instanceof Credentials))
- return reject(Error('No AWS credentials found.'));
+ if (!(awsCreds instanceof Credentials))
+ throw new Error('No AWS credentials found.');
- let creds: SigningCreds = {
- accessKeyId: awsCreds.accessKeyId,
- secretAccessKey: awsCreds.secretAccessKey,
- sessionToken: awsCreds.sessionToken,
+ let creds: SigningCreds = {
+ accessKeyId: awsCreds.accessKeyId,
+ secretAccessKey: awsCreds.secretAccessKey,
+ sessionToken: awsCreds.sessionToken,
+ };
+
+ if (!this.validCredentials(creds))
+ throw new Error('Invalid AWS credentials found.');
+ if (!assumeRole) return creds;
+
+ try {
+ const params: AWS.STS.Types.AssumeRoleRequest = {
+ RoleArn: assumeRole,
+ RoleSessionName: 'backstage-login',
};
+ if (externalId) params.ExternalId = externalId;
- if (!this.validCredentials(creds))
- return reject(Error('Invalid AWS credentials found.'));
- if (!assumeRole) return resolve(creds);
+ const assumedRole = await new AWS.STS().assumeRole(params).promise();
- try {
- const params: AWS.STS.Types.AssumeRoleRequest = {
- RoleArn: assumeRole,
- RoleSessionName: 'backstage-login',
- };
- if (externalId) params.ExternalId = externalId;
-
- const assumedRole = await new AWS.STS().assumeRole(params).promise();
-
- if (!assumedRole.Credentials) {
- throw new Error(`No credentials returned for role ${assumeRole}`);
- }
-
- creds = {
- accessKeyId: assumedRole.Credentials.AccessKeyId,
- secretAccessKey: assumedRole.Credentials.SecretAccessKey,
- sessionToken: assumedRole.Credentials.SessionToken,
- };
- } catch (e) {
- console.warn(`There was an error assuming the role: ${e}`);
- return reject(Error(`Unable to assume role: ${e}`));
+ if (!assumedRole.Credentials) {
+ throw new Error(`No credentials returned for role ${assumeRole}`);
}
- return resolve(creds);
- });
+
+ creds = {
+ accessKeyId: assumedRole.Credentials.AccessKeyId,
+ secretAccessKey: assumedRole.Credentials.SecretAccessKey,
+ sessionToken: assumedRole.Credentials.SessionToken,
+ };
+ } catch (e) {
+ console.warn(`There was an error assuming the role: ${e}`);
+ throw new Error(`Unable to assume role: ${e}`);
+ }
+ return creds;
}
async getBearerToken(
clusterName: string,
From 75d4985f5e80c8a86bbe2dbf216da330a651994c Mon Sep 17 00:00:00 2001
From: Brian Fletcher
Date: Wed, 8 Mar 2023 16:38:42 +0000
Subject: [PATCH 013/177] add changeset for k8s plugin
Signed-off-by: Brian Fletcher
---
.changeset/fuzzy-actors-turn.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/fuzzy-actors-turn.md
diff --git a/.changeset/fuzzy-actors-turn.md b/.changeset/fuzzy-actors-turn.md
new file mode 100644
index 0000000000..3cb8f84cae
--- /dev/null
+++ b/.changeset/fuzzy-actors-turn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+---
+
+Fixes bug whereby backstage crashes when bad aws credentials are provided to the kubernetes plugin.
From bd1ee2b7403b5049e67c72458526e521328770eb Mon Sep 17 00:00:00 2001
From: Brian Fletcher
Date: Wed, 8 Mar 2023 16:42:59 +0000
Subject: [PATCH 014/177] remove typo
Signed-off-by: Brian Fletcher
---
.changeset/fuzzy-actors-turn.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.changeset/fuzzy-actors-turn.md b/.changeset/fuzzy-actors-turn.md
index 3cb8f84cae..bd92ad34ef 100644
--- a/.changeset/fuzzy-actors-turn.md
+++ b/.changeset/fuzzy-actors-turn.md
@@ -2,4 +2,4 @@
'@backstage/plugin-kubernetes-backend': patch
---
-Fixes bug whereby backstage crashes when bad aws credentials are provided to the kubernetes plugin.
+Fixes bug whereby backstage crashes when bad credentials are provided to the kubernetes plugin.
From b2e182cdfa4f352d6d6907bff359854db7f8a95d Mon Sep 17 00:00:00 2001
From: Sudeep Sinha
Date: Wed, 8 Mar 2023 13:54:24 -0500
Subject: [PATCH 015/177] Fix font size and color in search result item
Signed-off-by: Sudeep Sinha
---
.changeset/many-eggs-press.md | 6 ++++++
.../DefaultResultListItem/DefaultResultListItem.tsx | 2 ++
.../src/search/components/TechDocsSearchResultListItem.tsx | 2 ++
3 files changed, 10 insertions(+)
create mode 100644 .changeset/many-eggs-press.md
diff --git a/.changeset/many-eggs-press.md b/.changeset/many-eggs-press.md
new file mode 100644
index 0000000000..551cf9e759
--- /dev/null
+++ b/.changeset/many-eggs-press.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-search-react': patch
+'@backstage/plugin-techdocs': patch
+---
+
+Fixes a UI bug in search result item which rendered the item text with incorrect font size and color
diff --git a/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx b/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
index cf89b6a9cd..0d2c59e173 100644
--- a/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
+++ b/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
@@ -81,6 +81,8 @@ export const DefaultResultListItemComponent = ({
WebkitLineClamp: lineClamp,
overflow: 'hidden',
}}
+ color="textSecondary"
+ variant="body2"
>
{highlight?.fields.text ? (
{highlight?.fields.text ? (
Date: Thu, 9 Mar 2023 15:40:47 +0100
Subject: [PATCH 016/177] Cancelling the running task (executing of a
scaffolder template)
Signed-off-by: Bogdan Nechyporenko
---
.changeset/backend-token-authentication.md | 5 +
.changeset/beige-hats-cheer.md | 27 +
.changeset/big-gorillas-fail1.md | 5 +
.changeset/big-gorillas-fail2.md | 5 +
.changeset/big-gorillas-fail3.md | 5 +
.changeset/big-gorillas-fail4.md | 5 +
.changeset/big-gorillas-fail5.md | 5 +
.changeset/big-gorillas-fail6.md | 5 +
.changeset/cold-dogs-watch.md | 5 +
.changeset/create-app-1678209629.md | 5 +
.changeset/curly-jobs-kneel.md | 8 +
.../dull-adults-drum.md | 0
.changeset/gorgeous-pumas-speak.md | 5 +
.changeset/healthy-buses-live-1.md | 5 +
.changeset/healthy-buses-live-2.md | 5 +
.changeset/healthy-buses-live-3.md | 5 +
.changeset/healthy-buses-live-4.md | 5 +
.changeset/healthy-buses-live-5.md | 5 +
.changeset/healthy-buses-live-6.md | 5 +
.changeset/healthy-buses-live-7.md | 5 +
.changeset/healthy-buses-live-8.md | 5 +
.changeset/healthy-buses-live-9.md | 5 +
.changeset/honest-clouds-shout.md | 5 +
.changeset/light-bees-end.md | 5 +
.changeset/moody-apes-know.md | 16 +
.changeset/nine-bikes-applaud.md | 5 +
.changeset/pre.json | 33 +-
.changeset/proud-jokes-pull.md | 5 +
.changeset/rotten-cats-matter.md | 19 +
.changeset/silver-bikes-breathe.md | 21 +-
.changeset/stupid-games-brake.md | 5 +
.changeset/twenty-insects-live.md | 5 +
.changeset/witty-squids-fetch.md | 5 +
.changeset/young-walls-prove.md | 5 +
ADOPTERS.md | 1 +
docs/auth/gitlab/provider.md | 6 +-
docs/features/kubernetes/configuration.md | 5 +-
docs/features/software-templates/index.md | 4 +
.../writing-custom-actions.md | 7 +-
docs/overview/adopting.md | 2 +-
docs/releases/v1.12.0-next.2-changelog.md | 1833 +++++++++++++++++
.../src/components/simpleCard/simpleCard.tsx | 17 +
.../src/pages/on-demand/_onDemandCard.tsx | 66 +
microsite-next/src/pages/on-demand/index.tsx | 78 +
.../src/pages/on-demand/onDemand.module.scss | 44 +
.../src/pages/plugins/_pluginCard.tsx | 37 +-
microsite-next/src/pages/plugins/index.tsx | 13 +-
.../src/util/truncateDescription.tsx | 11 +
microsite/pages/en/plugins.js | 2 +-
package.json | 2 +-
packages/app-defaults/CHANGELOG.md | 10 +
packages/app-defaults/package.json | 2 +-
packages/app/CHANGELOG.md | 64 +
packages/app/package.json | 2 +-
packages/backend-app-api/CHANGELOG.md | 12 +
packages/backend-app-api/package.json | 2 +-
packages/backend-common/CHANGELOG.md | 28 +
packages/backend-common/package.json | 2 +-
.../src/reading/AwsS3UrlReader.test.ts | 12 +-
packages/backend-defaults/CHANGELOG.md | 9 +
packages/backend-defaults/package.json | 2 +-
packages/backend-next/CHANGELOG.md | 11 +
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 | 12 +
packages/backend-tasks/package.json | 2 +-
packages/backend-tasks/src/migrations.test.ts | 7 +-
packages/backend-test-utils/CHANGELOG.md | 11 +
packages/backend-test-utils/package.json | 2 +-
packages/backend/CHANGELOG.md | 47 +
packages/backend/package.json | 2 +-
packages/core-app-api/CHANGELOG.md | 26 +
packages/core-app-api/package.json | 2 +-
.../auth/oauth2/OAuth2.test.ts | 24 +-
.../implementations/auth/oauth2/OAuth2.ts | 5 +-
packages/core-components/CHANGELOG.md | 12 +
packages/core-components/package.json | 2 +-
packages/core-plugin-api/CHANGELOG.md | 11 +
packages/core-plugin-api/api-report.md | 6 +-
packages/core-plugin-api/package.json | 2 +-
.../src/apis/definitions/auth.ts | 6 +-
packages/create-app/CHANGELOG.md | 6 +
packages/create-app/package.json | 2 +-
.../default-app/packages/app/.eslintignore | 1 +
packages/dev-utils/CHANGELOG.md | 13 +
packages/dev-utils/package.json | 2 +-
packages/e2e-test/CHANGELOG.md | 7 +
packages/e2e-test/package.json | 2 +-
packages/integration-react/CHANGELOG.md | 10 +
packages/integration-react/api-report.md | 6 +-
packages/integration-react/package.json | 2 +-
.../techdocs-cli-embedded-app/CHANGELOG.md | 17 +
.../techdocs-cli-embedded-app/package.json | 2 +-
packages/techdocs-cli/CHANGELOG.md | 9 +
packages/techdocs-cli/package.json | 2 +-
packages/test-utils/CHANGELOG.md | 10 +
packages/test-utils/package.json | 2 +-
plugins/adr-backend/CHANGELOG.md | 10 +
plugins/adr-backend/package.json | 2 +-
plugins/adr/CHANGELOG.md | 11 +
plugins/adr/package.json | 2 +-
plugins/airbrake-backend/CHANGELOG.md | 8 +
plugins/airbrake-backend/package.json | 2 +-
plugins/airbrake/CHANGELOG.md | 11 +
plugins/airbrake/package.json | 2 +-
plugins/allure/CHANGELOG.md | 9 +
plugins/allure/package.json | 2 +-
plugins/analytics-module-ga/CHANGELOG.md | 9 +
plugins/analytics-module-ga/package.json | 2 +-
plugins/apache-airflow/CHANGELOG.md | 8 +
plugins/apache-airflow/package.json | 2 +-
plugins/api-docs/CHANGELOG.md | 11 +
plugins/api-docs/package.json | 2 +-
plugins/apollo-explorer/CHANGELOG.md | 8 +
plugins/apollo-explorer/package.json | 2 +-
plugins/app-backend/CHANGELOG.md | 9 +
plugins/app-backend/package.json | 2 +-
plugins/auth-backend/CHANGELOG.md | 9 +
plugins/auth-backend/package.json | 2 +-
plugins/auth-node/CHANGELOG.md | 9 +
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 | 9 +
plugins/azure-devops/package.json | 2 +-
plugins/azure-sites-backend/CHANGELOG.md | 8 +
plugins/azure-sites-backend/package.json | 2 +-
plugins/azure-sites/CHANGELOG.md | 9 +
plugins/azure-sites/package.json | 2 +-
plugins/badges-backend/CHANGELOG.md | 8 +
plugins/badges-backend/package.json | 2 +-
plugins/badges/CHANGELOG.md | 9 +
plugins/badges/package.json | 2 +-
plugins/bazaar-backend/CHANGELOG.md | 10 +
plugins/bazaar-backend/package.json | 2 +-
plugins/bazaar/CHANGELOG.md | 11 +
plugins/bazaar/package.json | 2 +-
plugins/bitrise/CHANGELOG.md | 9 +
plugins/bitrise/package.json | 2 +-
.../catalog-backend-module-aws/CHANGELOG.md | 14 +
.../alpha-api-report.md | 2 +-
.../catalog-backend-module-aws/api-report.md | 10 +-
.../catalog-backend-module-aws/package.json | 3 +-
.../catalog-backend-module-aws/src/alpha.ts | 2 +-
.../catalogModuleAwsS3EntityProvider.test.ts} | 6 +-
.../catalogModuleAwsS3EntityProvider.ts} | 2 +-
.../src/module/index.ts | 17 +
.../src/processors/AwsEKSClusterProcessor.ts | 2 +-
.../AwsOrganizationCloudAccountProcessor.ts | 2 +-
.../AwsS3DiscoveryProcessor.test.ts | 2 +-
.../src/processors/AwsS3DiscoveryProcessor.ts | 2 +-
.../src/providers/AwsS3EntityProvider.test.ts | 2 +-
.../src/providers/AwsS3EntityProvider.ts | 2 +-
.../catalog-backend-module-azure/CHANGELOG.md | 13 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 10 +-
.../catalog-backend-module-azure/package.json | 3 +-
.../catalog-backend-module-azure/src/alpha.ts | 2 +-
...ogModuleAzureDevOpsEntityProvider.test.ts} | 6 +-
...catalogModuleAzureDevOpsEntityProvider.ts} | 2 +-
.../src/module/index.ts | 17 +
.../AzureDevOpsDiscoveryProcessor.test.ts | 2 +-
.../AzureDevOpsDiscoveryProcessor.ts | 2 +-
.../AzureDevOpsEntityProvider.test.ts | 2 +-
.../providers/AzureDevOpsEntityProvider.ts | 2 +-
.../CHANGELOG.md | 14 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 4 +-
.../package.json | 3 +-
.../src/alpha.ts | 2 +-
.../src/index.ts | 2 +-
...oduleBitbucketCloudEntityProvider.test.ts} | 8 +-
...alogModuleBitbucketCloudEntityProvider.ts} | 4 +-
.../src/module/index.ts | 17 +
.../BitbucketCloudEntityProvider.test.ts | 2 +-
.../BitbucketCloudEntityProvider.ts | 2 +-
...BitbucketCloudEntityProviderConfig.test.ts | 0
.../BitbucketCloudEntityProviderConfig.ts | 0
.../CHANGELOG.md | 13 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 6 +-
.../package.json | 3 +-
.../src/alpha.ts | 2 +-
...duleBitbucketServerEntityProvider.test.ts} | 6 +-
...logModuleBitbucketServerEntityProvider.ts} | 2 +-
.../src/module/index.ts | 17 +
.../BitbucketServerEntityProvider.test.ts | 2 +-
.../BitbucketServerEntityProvider.ts | 2 +-
.../BitbucketServerLocationParser.ts | 2 +-
.../CHANGELOG.md | 10 +
.../api-report.md | 8 +-
.../package.json | 4 +-
.../src/BitbucketDiscoveryProcessor.test.ts | 5 +-
.../src/BitbucketDiscoveryProcessor.ts | 2 +-
.../src/lib/BitbucketRepositoryParser.test.ts | 2 +-
.../src/lib/BitbucketRepositoryParser.ts | 2 +-
.../CHANGELOG.md | 13 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 4 +-
.../package.json | 3 +-
.../src/alpha.ts | 2 +-
...catalogModuleGerritEntityProvider.test.ts} | 6 +-
.../catalogModuleGerritEntityProvider.ts} | 2 +-
.../src/module/index.ts | 17 +
.../providers/GerritEntityProvider.test.ts | 2 +-
.../src/providers/GerritEntityProvider.ts | 2 +-
.../CHANGELOG.md | 15 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 10 +-
.../package.json | 2 +-
.../src/alpha.ts | 2 +-
.../src/deprecated.ts | 2 +-
.../src/lib/github.ts | 4 +-
...catalogModuleGithubEntityProvider.test.ts} | 6 +-
.../catalogModuleGithubEntityProvider.ts} | 2 +-
.../src/module/index.ts | 17 +
.../GithubDiscoveryProcessor.test.ts | 2 +-
.../processors/GithubDiscoveryProcessor.ts | 2 +-
.../GithubMultiOrgReaderProcessor.ts | 2 +-
.../GithubOrgReaderProcessor.test.ts | 2 +-
.../processors/GithubOrgReaderProcessor.ts | 2 +-
.../providers/GithubEntityProvider.test.ts | 2 +-
.../src/providers/GithubEntityProvider.ts | 2 +-
.../providers/GithubOrgEntityProvider.test.ts | 2 +-
.../src/providers/GithubOrgEntityProvider.ts | 2 +-
.../CHANGELOG.md | 14 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 10 +-
.../package.json | 3 +-
.../src/GitLabDiscoveryProcessor.test.ts | 2 +-
.../src/GitLabDiscoveryProcessor.ts | 2 +-
.../src/alpha.ts | 2 +-
...duleGitlabDiscoveryEntityProvider.test.ts} | 6 +-
...logModuleGitlabDiscoveryEntityProvider.ts} | 2 +-
.../GitlabDiscoveryEntityProvider.test.ts | 2 +-
.../GitlabDiscoveryEntityProvider.ts | 2 +-
.../GitlabOrgDiscoveryEntityProvider.test.ts | 2 +-
.../GitlabOrgDiscoveryEntityProvider.ts | 2 +-
.../CHANGELOG.md | 13 +
.../alpha-api-report.md | 2 +-
.../api-report.md | 2 +-
.../package.json | 5 +-
.../IncrementalIngestionDatabaseManager.ts | 2 +-
.../src/engine/IncrementalIngestionEngine.ts | 2 +-
...ncrementalIngestionEntityProvider.test.ts} | 6 +-
...duleIncrementalIngestionEntityProvider.ts} | 2 +-
.../src/module/index.ts | 2 +-
.../src/run.ts | 4 +-
.../src/service/IncrementalCatalogBuilder.ts | 1 +
.../src/types.ts | 2 +-
.../catalog-backend-module-ldap/CHANGELOG.md | 9 +
.../catalog-backend-module-ldap/api-report.md | 10 +-
.../catalog-backend-module-ldap/package.json | 4 +-
.../src/processors/LdapOrgEntityProvider.ts | 2 +-
.../src/processors/LdapOrgReaderProcessor.ts | 2 +-
.../CHANGELOG.md | 13 +
.../alpha-api-report.md | 4 +-
.../api-report.md | 10 +-
.../package.json | 3 +-
.../src/alpha.ts | 3 +-
...leMicrosoftGraphOrgEntityProvider.test.ts} | 6 +-
...gModuleMicrosoftGraphOrgEntityProvider.ts} | 8 +-
.../src/module/index.ts | 18 +
.../MicrosoftGraphOrgEntityProvider.test.ts | 2 +-
.../MicrosoftGraphOrgEntityProvider.ts | 2 +-
.../MicrosoftGraphOrgReaderProcessor.ts | 2 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
.../CHANGELOG.md | 15 +
.../alpha-api-report.md | 12 +
.../api-report.md | 4 +-
.../package.json | 24 +-
.../src/alpha.ts} | 4 +-
...atalogModulePuppetDbEntityProvider.test.ts | 79 +
.../catalogModulePuppetDbEntityProvider.ts | 51 +
.../src/module/index.ts | 17 +
.../providers/PuppetDbEntityProvider.test.ts | 2 +-
.../src/providers/PuppetDbEntityProvider.ts | 6 +-
plugins/catalog-backend/CHANGELOG.md | 12 +
plugins/catalog-backend/api-report.md | 161 +-
plugins/catalog-backend/package.json | 2 +-
plugins/catalog-backend/src/deprecated.ts | 143 ++
plugins/catalog-backend/src/index.ts | 37 +-
plugins/catalog-customized/CHANGELOG.md | 8 +
plugins/catalog-customized/package.json | 2 +-
plugins/catalog-graph/CHANGELOG.md | 9 +
plugins/catalog-graph/package.json | 2 +-
plugins/catalog-import/CHANGELOG.md | 12 +
plugins/catalog-import/package.json | 2 +-
.../src/api/CatalogImportClient.test.ts | 1 -
plugins/catalog-node/CHANGELOG.md | 7 +
plugins/catalog-node/api-report.md | 10 +
plugins/catalog-node/package.json | 2 +-
plugins/catalog-node/src/conversion.ts | 103 +
plugins/catalog-node/src/index.ts | 1 +
plugins/catalog-react/CHANGELOG.md | 11 +
plugins/catalog-react/package.json | 2 +-
plugins/catalog/CHANGELOG.md | 15 +
plugins/catalog/package.json | 2 +-
.../EntitySwitch/EntitySwitch.test.tsx | 36 +
.../components/EntitySwitch/EntitySwitch.tsx | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
plugins/cicd-statistics/CHANGELOG.md | 8 +
plugins/cicd-statistics/package.json | 2 +-
plugins/circleci/CHANGELOG.md | 9 +
plugins/circleci/package.json | 2 +-
plugins/cloudbuild/CHANGELOG.md | 9 +
plugins/cloudbuild/package.json | 2 +-
plugins/code-climate/CHANGELOG.md | 9 +
plugins/code-climate/package.json | 2 +-
plugins/code-coverage-backend/CHANGELOG.md | 9 +
plugins/code-coverage-backend/package.json | 2 +-
plugins/code-coverage/CHANGELOG.md | 10 +
plugins/code-coverage/package.json | 2 +-
plugins/codescene/CHANGELOG.md | 9 +
plugins/codescene/package.json | 2 +-
plugins/config-schema/CHANGELOG.md | 9 +
plugins/config-schema/package.json | 2 +-
plugins/cost-insights/CHANGELOG.md | 10 +
plugins/cost-insights/package.json | 2 +-
plugins/dynatrace/CHANGELOG.md | 9 +
plugins/dynatrace/package.json | 2 +-
plugins/entity-feedback-backend/CHANGELOG.md | 9 +
plugins/entity-feedback-backend/package.json | 2 +-
plugins/entity-feedback/CHANGELOG.md | 9 +
plugins/entity-feedback/package.json | 2 +-
plugins/entity-validation/CHANGELOG.md | 9 +
plugins/entity-validation/package.json | 2 +-
.../CHANGELOG.md | 11 +
.../alpha-api-report.md | 2 +-
.../package.json | 2 +-
.../src/alpha.ts | 2 +-
...duleAwsSqsConsumingEventPublisher.test.ts} | 6 +-
...ntsModuleAwsSqsConsumingEventPublisher.ts} | 4 +-
.../events-backend-module-azure/CHANGELOG.md | 8 +
.../alpha-api-report.md | 2 +-
.../events-backend-module-azure/package.json | 2 +-
.../events-backend-module-azure/src/alpha.ts | 2 +-
...ventsModuleAzureDevOpsEventRouter.test.ts} | 6 +-
... => eventsModuleAzureDevOpsEventRouter.ts} | 2 +-
.../CHANGELOG.md | 8 +
.../alpha-api-report.md | 2 +-
.../package.json | 2 +-
.../src/alpha.ts | 2 +-
...tsModuleBitbucketCloudEventRouter.test.ts} | 6 +-
... eventsModuleBitbucketCloudEventRouter.ts} | 2 +-
.../events-backend-module-gerrit/CHANGELOG.md | 8 +
.../alpha-api-report.md | 2 +-
.../events-backend-module-gerrit/package.json | 2 +-
.../events-backend-module-gerrit/src/alpha.ts | 2 +-
... => eventsModuleGerritEventRouter.test.ts} | 6 +-
...le.ts => eventsModuleGerritEventRouter.ts} | 2 +-
.../events-backend-module-github/CHANGELOG.md | 9 +
.../alpha-api-report.md | 4 +-
.../events-backend-module-github/package.json | 2 +-
.../events-backend-module-github/src/alpha.ts | 4 +-
... => eventsModuleGithubEventRouter.test.ts} | 6 +-
...le.ts => eventsModuleGithubEventRouter.ts} | 2 +-
...t.ts => eventsModuleGithubWebhook.test.ts} | 6 +-
...Module.ts => eventsModuleGithubWebhook.ts} | 2 +-
.../events-backend-module-gitlab/CHANGELOG.md | 9 +
.../alpha-api-report.md | 4 +-
.../events-backend-module-gitlab/package.json | 2 +-
.../events-backend-module-gitlab/src/alpha.ts | 4 +-
... => eventsModuleGitlabEventRouter.test.ts} | 6 +-
...le.ts => eventsModuleGitlabEventRouter.ts} | 2 +-
...t.ts => eventsModuleGitlabWebhook.test.ts} | 4 +-
...Module.ts => eventsModuleGitlabWebhook.ts} | 2 +-
.../events-backend-test-utils/CHANGELOG.md | 7 +
.../events-backend-test-utils/package.json | 2 +-
plugins/events-backend/CHANGELOG.md | 10 +
plugins/events-backend/README.md | 4 +-
plugins/events-backend/package.json | 2 +-
plugins/events-node/CHANGELOG.md | 7 +
plugins/events-node/package.json | 2 +-
.../example-todo-list-backend/CHANGELOG.md | 10 +
.../example-todo-list-backend/package.json | 2 +-
plugins/example-todo-list/CHANGELOG.md | 8 +
plugins/example-todo-list/package.json | 2 +-
plugins/explore-backend/CHANGELOG.md | 8 +
plugins/explore-backend/package.json | 2 +-
plugins/explore-react/CHANGELOG.md | 7 +
plugins/explore-react/package.json | 2 +-
plugins/explore/CHANGELOG.md | 12 +
plugins/explore/package.json | 2 +-
plugins/firehydrant/CHANGELOG.md | 9 +
plugins/firehydrant/package.json | 2 +-
plugins/fossa/CHANGELOG.md | 9 +
plugins/fossa/package.json | 2 +-
plugins/gcalendar/CHANGELOG.md | 8 +
plugins/gcalendar/package.json | 2 +-
plugins/gcp-projects/CHANGELOG.md | 8 +
plugins/gcp-projects/package.json | 2 +-
plugins/git-release-manager/CHANGELOG.md | 9 +
plugins/git-release-manager/package.json | 2 +-
plugins/github-actions/CHANGELOG.md | 10 +
plugins/github-actions/package.json | 2 +-
plugins/github-deployments/CHANGELOG.md | 11 +
plugins/github-deployments/package.json | 2 +-
plugins/github-issues/CHANGELOG.md | 10 +
plugins/github-issues/package.json | 2 +-
.../github-pull-requests-board/CHANGELOG.md | 10 +
.../github-pull-requests-board/package.json | 2 +-
plugins/gitops-profiles/CHANGELOG.md | 8 +
plugins/gitops-profiles/package.json | 2 +-
plugins/gocd/CHANGELOG.md | 9 +
plugins/gocd/package.json | 2 +-
plugins/graphiql/CHANGELOG.md | 8 +
plugins/graphiql/package.json | 2 +-
plugins/graphql-backend/CHANGELOG.md | 9 +
plugins/graphql-backend/package.json | 2 +-
plugins/graphql-voyager/CHANGELOG.md | 8 +
plugins/graphql-voyager/package.json | 2 +-
plugins/home/CHANGELOG.md | 10 +
plugins/home/package.json | 2 +-
plugins/ilert/CHANGELOG.md | 9 +
plugins/ilert/package.json | 2 +-
plugins/jenkins-backend/CHANGELOG.md | 9 +
plugins/jenkins-backend/package.json | 2 +-
plugins/jenkins/CHANGELOG.md | 9 +
plugins/jenkins/package.json | 2 +-
plugins/kafka-backend/CHANGELOG.md | 9 +
plugins/kafka-backend/package.json | 2 +-
plugins/kafka/CHANGELOG.md | 10 +
plugins/kafka/package.json | 2 +-
plugins/kubernetes-backend/CHANGELOG.md | 9 +
plugins/kubernetes-backend/package.json | 2 +-
plugins/kubernetes/CHANGELOG.md | 11 +
plugins/kubernetes/package.json | 2 +-
plugins/kubernetes/src/plugin.ts | 4 +
plugins/lighthouse-backend/CHANGELOG.md | 9 +
plugins/lighthouse-backend/package.json | 2 +-
plugins/lighthouse/CHANGELOG.md | 10 +
plugins/lighthouse/package.json | 2 +-
plugins/linguist-backend/CHANGELOG.md | 11 +
plugins/linguist-backend/package.json | 2 +-
plugins/linguist/CHANGELOG.md | 9 +
plugins/linguist/package.json | 2 +-
plugins/microsoft-calendar/CHANGELOG.md | 8 +
plugins/microsoft-calendar/package.json | 2 +-
plugins/newrelic-dashboard/CHANGELOG.md | 9 +
plugins/newrelic-dashboard/package.json | 2 +-
plugins/newrelic/CHANGELOG.md | 8 +
plugins/newrelic/package.json | 2 +-
plugins/octopus-deploy/CHANGELOG.md | 9 +
plugins/octopus-deploy/package.json | 2 +-
plugins/org-react/CHANGELOG.md | 9 +
plugins/org-react/package.json | 2 +-
plugins/org/CHANGELOG.md | 10 +
plugins/org/package.json | 2 +-
plugins/pagerduty/CHANGELOG.md | 9 +
plugins/pagerduty/package.json | 2 +-
plugins/periskop-backend/CHANGELOG.md | 9 +
plugins/periskop-backend/package.json | 2 +-
plugins/periskop/CHANGELOG.md | 9 +
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/permission-react/CHANGELOG.md | 8 +
plugins/permission-react/package.json | 2 +-
plugins/playlist-backend/CHANGELOG.md | 10 +
plugins/playlist-backend/package.json | 2 +-
plugins/playlist/CHANGELOG.md | 11 +
plugins/playlist/package.json | 2 +-
plugins/proxy-backend/CHANGELOG.md | 9 +
plugins/proxy-backend/package.json | 2 +-
plugins/proxy-backend/src/service/router.ts | 5 +
plugins/rollbar-backend/CHANGELOG.md | 8 +
plugins/rollbar-backend/package.json | 2 +-
plugins/rollbar/CHANGELOG.md | 9 +
plugins/rollbar/package.json | 2 +-
.../CHANGELOG.md | 12 +
.../README.md | 2 +
.../api-report.md | 2 +-
.../package.json | 2 +-
.../src/actions/fetch/cookiecutter.test.ts | 12 +
.../src/actions/fetch/cookiecutter.ts | 11 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
.../src/actions/fetch/rails/index.test.ts | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
.../CHANGELOG.md | 8 +
.../package.json | 2 +-
plugins/scaffolder-backend/CHANGELOG.md | 18 +
plugins/scaffolder-backend/api-report.md | 34 +-
plugins/scaffolder-backend/package.json | 4 +-
.../actions/builtin/catalog/write.ts | 1 +
.../actions/builtin/createBuiltinActions.ts | 3 +-
.../scaffolder/actions/builtin/debug/index.ts | 1 +
.../actions/builtin/debug/wait.test.ts | 76 +
.../scaffolder/actions/builtin/debug/wait.ts | 131 ++
.../actions/builtin/publish/azure.test.ts | 11 +-
.../src/scaffolder/dryrun/createDryRunner.ts | 7 +-
.../tasks/DatabaseTaskStore.test.ts | 191 ++
.../src/scaffolder/tasks/DatabaseTaskStore.ts | 72 +-
.../tasks/NunjucksWorkflowRunner.test.ts | 3 +-
.../tasks/NunjucksWorkflowRunner.ts | 310 +--
.../src/scaffolder/tasks/StorageTaskBroker.ts | 64 +-
.../src/scaffolder/tasks/TaskWorker.test.ts | 88 +-
.../src/scaffolder/tasks/TaskWorker.ts | 5 +-
.../src/scaffolder/tasks/types.ts | 47 +-
.../scaffolder-backend/src/service/router.ts | 19 +-
plugins/scaffolder-node/CHANGELOG.md | 7 +
plugins/scaffolder-node/api-report.md | 1 +
plugins/scaffolder-node/package.json | 2 +-
plugins/scaffolder-node/src/actions/types.ts | 5 +
plugins/scaffolder-react/CHANGELOG.md | 12 +
plugins/scaffolder-react/api-report.md | 9 +-
plugins/scaffolder-react/package.json | 2 +-
plugins/scaffolder-react/src/api/types.ts | 14 +-
.../src/hooks/useEventStream.ts | 13 +-
.../components/Workflow/Workflow.test.tsx | 4 +-
plugins/scaffolder/CHANGELOG.md | 21 +
plugins/scaffolder/api-report.md | 2 +
plugins/scaffolder/package.json | 2 +-
plugins/scaffolder/src/api.ts | 45 +-
.../ActionsPage/ActionsPage.test.tsx | 1 +
.../src/components/TaskPage/TaskPage.tsx | 39 +-
.../TemplatePage/TemplatePage.test.tsx | 6 +-
.../src/next/OngoingTask/ContextMenu.tsx | 28 +-
.../src/next/OngoingTask/OngoingTask.test.tsx | 84 +
.../src/next/OngoingTask/OngoingTask.tsx | 12 +-
.../TemplateWizardPage.test.tsx | 1 +
.../CHANGELOG.md | 9 +
.../package.json | 2 +-
plugins/search-backend-module-pg/CHANGELOG.md | 9 +
plugins/search-backend-module-pg/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-react/CHANGELOG.md | 10 +
plugins/search-react/package.json | 2 +-
plugins/search/CHANGELOG.md | 12 +
plugins/search/package.json | 2 +-
plugins/sentry/CHANGELOG.md | 9 +
plugins/sentry/package.json | 2 +-
plugins/shortcuts/CHANGELOG.md | 8 +
plugins/shortcuts/package.json | 2 +-
plugins/sonarqube-backend/CHANGELOG.md | 8 +
plugins/sonarqube-backend/package.json | 2 +-
plugins/sonarqube-react/CHANGELOG.md | 7 +
plugins/sonarqube-react/package.json | 2 +-
plugins/sonarqube/CHANGELOG.md | 11 +
plugins/sonarqube/package.json | 2 +-
plugins/splunk-on-call/CHANGELOG.md | 10 +
plugins/splunk-on-call/package.json | 2 +-
plugins/stack-overflow-backend/CHANGELOG.md | 8 +
plugins/stack-overflow-backend/package.json | 2 +-
plugins/stack-overflow/CHANGELOG.md | 11 +
plugins/stack-overflow/package.json | 2 +-
plugins/stackstorm/CHANGELOG.md | 8 +
plugins/stackstorm/package.json | 2 +-
.../CHANGELOG.md | 10 +
.../package.json | 2 +-
plugins/tech-insights-backend/CHANGELOG.md | 10 +
plugins/tech-insights-backend/package.json | 2 +-
plugins/tech-insights-node/CHANGELOG.md | 9 +
plugins/tech-insights-node/package.json | 2 +-
plugins/tech-insights/CHANGELOG.md | 10 +
plugins/tech-insights/package.json | 2 +-
plugins/tech-radar/CHANGELOG.md | 8 +
plugins/tech-radar/package.json | 2 +-
.../techdocs-addons-test-utils/CHANGELOG.md | 15 +
.../techdocs-addons-test-utils/package.json | 2 +-
plugins/techdocs-backend/CHANGELOG.md | 10 +
plugins/techdocs-backend/package.json | 2 +-
.../CHANGELOG.md | 11 +
.../package.json | 2 +-
plugins/techdocs-node/CHANGELOG.md | 11 +
plugins/techdocs-node/package.json | 2 +-
.../src/stages/generate/helpers.test.ts | 4 +-
plugins/techdocs-react/CHANGELOG.md | 10 +
plugins/techdocs-react/package.json | 2 +-
plugins/techdocs/CHANGELOG.md | 15 +
plugins/techdocs/package.json | 2 +-
plugins/todo-backend/CHANGELOG.md | 11 +
plugins/todo-backend/package.json | 2 +-
plugins/todo-backend/src/plugin.ts | 2 +-
plugins/todo/CHANGELOG.md | 9 +
plugins/todo/package.json | 2 +-
plugins/user-settings-backend/CHANGELOG.md | 9 +
plugins/user-settings-backend/package.json | 2 +-
plugins/user-settings/CHANGELOG.md | 10 +
plugins/user-settings/package.json | 2 +-
plugins/vault-backend/CHANGELOG.md | 9 +
plugins/vault-backend/package.json | 2 +-
plugins/vault/CHANGELOG.md | 9 +
plugins/vault/package.json | 2 +-
plugins/xcmetrics/CHANGELOG.md | 8 +
plugins/xcmetrics/package.json | 2 +-
yarn.lock | 1352 +++++-------
597 files changed, 6911 insertions(+), 1680 deletions(-)
create mode 100644 .changeset/backend-token-authentication.md
create mode 100644 .changeset/beige-hats-cheer.md
create mode 100644 .changeset/big-gorillas-fail1.md
create mode 100644 .changeset/big-gorillas-fail2.md
create mode 100644 .changeset/big-gorillas-fail3.md
create mode 100644 .changeset/big-gorillas-fail4.md
create mode 100644 .changeset/big-gorillas-fail5.md
create mode 100644 .changeset/big-gorillas-fail6.md
create mode 100644 .changeset/cold-dogs-watch.md
create mode 100644 .changeset/create-app-1678209629.md
create mode 100644 .changeset/curly-jobs-kneel.md
rename {plugins/.changeset => .changeset}/dull-adults-drum.md (100%)
create mode 100644 .changeset/gorgeous-pumas-speak.md
create mode 100644 .changeset/healthy-buses-live-1.md
create mode 100644 .changeset/healthy-buses-live-2.md
create mode 100644 .changeset/healthy-buses-live-3.md
create mode 100644 .changeset/healthy-buses-live-4.md
create mode 100644 .changeset/healthy-buses-live-5.md
create mode 100644 .changeset/healthy-buses-live-6.md
create mode 100644 .changeset/healthy-buses-live-7.md
create mode 100644 .changeset/healthy-buses-live-8.md
create mode 100644 .changeset/healthy-buses-live-9.md
create mode 100644 .changeset/honest-clouds-shout.md
create mode 100644 .changeset/light-bees-end.md
create mode 100644 .changeset/moody-apes-know.md
create mode 100644 .changeset/nine-bikes-applaud.md
create mode 100644 .changeset/proud-jokes-pull.md
create mode 100644 .changeset/rotten-cats-matter.md
create mode 100644 .changeset/stupid-games-brake.md
create mode 100644 .changeset/twenty-insects-live.md
create mode 100644 .changeset/witty-squids-fetch.md
create mode 100644 .changeset/young-walls-prove.md
create mode 100644 docs/releases/v1.12.0-next.2-changelog.md
create mode 100644 microsite-next/src/components/simpleCard/simpleCard.tsx
create mode 100644 microsite-next/src/pages/on-demand/_onDemandCard.tsx
create mode 100644 microsite-next/src/pages/on-demand/index.tsx
create mode 100644 microsite-next/src/pages/on-demand/onDemand.module.scss
create mode 100644 microsite-next/src/util/truncateDescription.tsx
create mode 100644 packages/create-app/templates/default-app/packages/app/.eslintignore
rename plugins/catalog-backend-module-aws/src/{service/AwsS3EntityProviderCatalogModule.test.ts => module/catalogModuleAwsS3EntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-aws/src/{service/AwsS3EntityProviderCatalogModule.ts => module/catalogModuleAwsS3EntityProvider.ts} (96%)
create mode 100644 plugins/catalog-backend-module-aws/src/module/index.ts
rename plugins/catalog-backend-module-azure/src/{service/AzureDevOpsEntityProviderCatalogModule.test.ts => module/catalogModuleAzureDevOpsEntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-azure/src/{service/AzureDevOpsEntityProviderCatalogModule.ts => module/catalogModuleAzureDevOpsEntityProvider.ts} (96%)
create mode 100644 plugins/catalog-backend-module-azure/src/module/index.ts
rename plugins/catalog-backend-module-bitbucket-cloud/src/{service/BitbucketCloudEntityProviderCatalogModule.test.ts => module/catalogModuleBitbucketCloudEntityProvider.test.ts} (90%)
rename plugins/catalog-backend-module-bitbucket-cloud/src/{service/BitbucketCloudEntityProviderCatalogModule.ts => module/catalogModuleBitbucketCloudEntityProvider.ts} (93%)
create mode 100644 plugins/catalog-backend-module-bitbucket-cloud/src/module/index.ts
rename plugins/catalog-backend-module-bitbucket-cloud/src/{ => providers}/BitbucketCloudEntityProvider.test.ts (99%)
rename plugins/catalog-backend-module-bitbucket-cloud/src/{ => providers}/BitbucketCloudEntityProvider.ts (99%)
rename plugins/catalog-backend-module-bitbucket-cloud/src/{ => providers}/BitbucketCloudEntityProviderConfig.test.ts (100%)
rename plugins/catalog-backend-module-bitbucket-cloud/src/{ => providers}/BitbucketCloudEntityProviderConfig.ts (100%)
rename plugins/catalog-backend-module-bitbucket-server/src/{service/BitbucketServerEntityProviderCatalogModule.test.ts => module/catalogModuleBitbucketServerEntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-bitbucket-server/src/{service/BitbucketServerEntityProviderCatalogModule.ts => module/catalogModuleBitbucketServerEntityProvider.ts} (96%)
create mode 100644 plugins/catalog-backend-module-bitbucket-server/src/module/index.ts
rename plugins/catalog-backend-module-gerrit/src/{service/GerritEntityProviderCatalogModule.test.ts => module/catalogModuleGerritEntityProvider.test.ts} (93%)
rename plugins/catalog-backend-module-gerrit/src/{service/GerritEntityProviderCatalogModule.ts => module/catalogModuleGerritEntityProvider.ts} (96%)
create mode 100644 plugins/catalog-backend-module-gerrit/src/module/index.ts
rename plugins/catalog-backend-module-github/src/{service/GithubEntityProviderCatalogModule.test.ts => module/catalogModuleGithubEntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-github/src/{service/GithubEntityProviderCatalogModule.ts => module/catalogModuleGithubEntityProvider.ts} (96%)
create mode 100644 plugins/catalog-backend-module-github/src/module/index.ts
rename plugins/catalog-backend-module-gitlab/src/{service/GitlabDiscoveryEntityProviderCatalogModule.test.ts => module/catalogModuleGitlabDiscoveryEntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-gitlab/src/{service/GitlabDiscoveryEntityProviderCatalogModule.ts => module/catalogModuleGitlabDiscoveryEntityProvider.ts} (96%)
rename plugins/catalog-backend-module-incremental-ingestion/src/module/{incrementalIngestionEntityProviderCatalogModule.test.ts => catalogModuleIncrementalIngestionEntityProvider.test.ts} (91%)
rename plugins/catalog-backend-module-incremental-ingestion/src/module/{incrementalIngestionEntityProviderCatalogModule.ts => catalogModuleIncrementalIngestionEntityProvider.ts} (97%)
rename plugins/catalog-backend-module-msgraph/src/{service/MicrosoftGraphOrgEntityProviderCatalogModule.test.ts => module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts} (92%)
rename plugins/catalog-backend-module-msgraph/src/{service/MicrosoftGraphOrgEntityProviderCatalogModule.ts => module/catalogModuleMicrosoftGraphOrgEntityProvider.ts} (91%)
create mode 100644 plugins/catalog-backend-module-msgraph/src/module/index.ts
create mode 100644 plugins/catalog-backend-module-puppetdb/CHANGELOG.md
create mode 100644 plugins/catalog-backend-module-puppetdb/alpha-api-report.md
rename plugins/{catalog-backend/src/util/index.ts => catalog-backend-module-puppetdb/src/alpha.ts} (84%)
create mode 100644 plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts
create mode 100644 plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts
create mode 100644 plugins/catalog-backend-module-puppetdb/src/module/index.ts
create mode 100644 plugins/catalog-backend/src/deprecated.ts
create mode 100644 plugins/catalog-node/src/conversion.ts
rename plugins/events-backend-module-aws-sqs/src/service/{AwsSqsConsumingEventPublisherEventsModule.test.ts => eventsModuleAwsSqsConsumingEventPublisher.test.ts} (92%)
rename plugins/events-backend-module-aws-sqs/src/service/{AwsSqsConsumingEventPublisherEventsModule.ts => eventsModuleAwsSqsConsumingEventPublisher.ts} (92%)
rename plugins/events-backend-module-azure/src/service/{AzureDevOpsEventRouterEventsModule.test.ts => eventsModuleAzureDevOpsEventRouter.test.ts} (88%)
rename plugins/events-backend-module-azure/src/service/{AzureDevOpsEventRouterEventsModule.ts => eventsModuleAzureDevOpsEventRouter.ts} (95%)
rename plugins/events-backend-module-bitbucket-cloud/src/service/{BitbucketCloudEventRouterEventsModule.test.ts => eventsModuleBitbucketCloudEventRouter.test.ts} (88%)
rename plugins/events-backend-module-bitbucket-cloud/src/service/{BitbucketCloudEventRouterEventsModule.ts => eventsModuleBitbucketCloudEventRouter.ts} (95%)
rename plugins/events-backend-module-gerrit/src/service/{GerritEventRouterEventsModule.test.ts => eventsModuleGerritEventRouter.test.ts} (89%)
rename plugins/events-backend-module-gerrit/src/service/{GerritEventRouterEventsModule.ts => eventsModuleGerritEventRouter.ts} (95%)
rename plugins/events-backend-module-github/src/service/{GithubEventRouterEventsModule.test.ts => eventsModuleGithubEventRouter.test.ts} (89%)
rename plugins/events-backend-module-github/src/service/{GithubEventRouterEventsModule.ts => eventsModuleGithubEventRouter.ts} (95%)
rename plugins/events-backend-module-github/src/service/{GithubWebhookEventsModule.test.ts => eventsModuleGithubWebhook.test.ts} (94%)
rename plugins/events-backend-module-github/src/service/{GithubWebhookEventsModule.ts => eventsModuleGithubWebhook.ts} (95%)
rename plugins/events-backend-module-gitlab/src/service/{GitlabEventRouterEventsModule.test.ts => eventsModuleGitlabEventRouter.test.ts} (89%)
rename plugins/events-backend-module-gitlab/src/service/{GitlabEventRouterEventsModule.ts => eventsModuleGitlabEventRouter.ts} (95%)
rename plugins/events-backend-module-gitlab/src/service/{GitlabWebhookEventsModule.test.ts => eventsModuleGitlabWebhook.test.ts} (95%)
rename plugins/events-backend-module-gitlab/src/service/{GitlabWebhookEventsModule.ts => eventsModuleGitlabWebhook.ts} (95%)
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts
create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts
create mode 100644 plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts
create mode 100644 plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx
diff --git a/.changeset/backend-token-authentication.md b/.changeset/backend-token-authentication.md
new file mode 100644
index 0000000000..3b0f016800
--- /dev/null
+++ b/.changeset/backend-token-authentication.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Make identity valid if subject of token is a backstage server-2-server auth token
diff --git a/.changeset/beige-hats-cheer.md b/.changeset/beige-hats-cheer.md
new file mode 100644
index 0000000000..83b70d137e
--- /dev/null
+++ b/.changeset/beige-hats-cheer.md
@@ -0,0 +1,27 @@
+---
+'@backstage/plugin-catalog-backend': patch
+---
+
+Add deprecations for symbols that were moved to `@backstage/plugin-catalog-node` a long time ago:
+
+- `CatalogProcessor`
+- `CatalogProcessorCache`
+- `CatalogProcessorEmit`
+- `CatalogProcessorEntityResult`
+- `CatalogProcessorErrorResult`
+- `CatalogProcessorLocationResult`
+- `CatalogProcessorParser`
+- `CatalogProcessorRefreshKeysResult`
+- `CatalogProcessorRelationResult`
+- `CatalogProcessorResult`
+- `DeferredEntity`
+- `EntityProvider`
+- `EntityProviderConnection`
+- `EntityProviderMutation`
+- `EntityRelationSpec`
+- `processingResult`
+
+Also moved over and deprecated the following symbols:
+
+- `locationSpecToLocationEntity`
+- `locationSpecToMetadataName`
diff --git a/.changeset/big-gorillas-fail1.md b/.changeset/big-gorillas-fail1.md
new file mode 100644
index 0000000000..18c2d621d7
--- /dev/null
+++ b/.changeset/big-gorillas-fail1.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-bitbucket-cloud': patch
+---
+
+Renamed `bitbucketCloudEventRouterEventsModule` to `eventsModuleBitbucketCloudEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail2.md b/.changeset/big-gorillas-fail2.md
new file mode 100644
index 0000000000..bc34bf9aaa
--- /dev/null
+++ b/.changeset/big-gorillas-fail2.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-aws-sqs': patch
+---
+
+Renamed `awsSqsConsumingEventPublisherEventsModule` to `eventsModuleAwsSqsConsumingEventPublisher` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail3.md b/.changeset/big-gorillas-fail3.md
new file mode 100644
index 0000000000..352c1a2cff
--- /dev/null
+++ b/.changeset/big-gorillas-fail3.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-gerrit': patch
+---
+
+Renamed `gerritEventRouterEventsModule` to `eventsModuleGerritEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail4.md b/.changeset/big-gorillas-fail4.md
new file mode 100644
index 0000000000..add8699f8b
--- /dev/null
+++ b/.changeset/big-gorillas-fail4.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-github': patch
+---
+
+Renamed `githubEventRouterEventsModule` to `eventsModuleGithubEventRouter` and `githubWebhookEventsModule` to `eventsModuleGithubWebhook`, to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail5.md b/.changeset/big-gorillas-fail5.md
new file mode 100644
index 0000000000..549eb61f24
--- /dev/null
+++ b/.changeset/big-gorillas-fail5.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-gitlab': patch
+---
+
+Renamed `gitlabEventRouterEventsModule` to `eventsModuleGitlabEventRouter` and `gitlabWebhookEventsModule` to `eventsModuleGitlabWebhook` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail6.md b/.changeset/big-gorillas-fail6.md
new file mode 100644
index 0000000000..6622b5222e
--- /dev/null
+++ b/.changeset/big-gorillas-fail6.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend-module-azure': patch
+---
+
+Renamed `azureDevOpsEventRouterEventsModule` to `eventsModuleAzureDevOpsEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/cold-dogs-watch.md b/.changeset/cold-dogs-watch.md
new file mode 100644
index 0000000000..99b25a833e
--- /dev/null
+++ b/.changeset/cold-dogs-watch.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-puppetdb': patch
+---
+
+Added a `catalogModulePuppetDbEntityProvider` alpha export for the new backend system
diff --git a/.changeset/create-app-1678209629.md b/.changeset/create-app-1678209629.md
new file mode 100644
index 0000000000..b50d431d4b
--- /dev/null
+++ b/.changeset/create-app-1678209629.md
@@ -0,0 +1,5 @@
+---
+'@backstage/create-app': patch
+---
+
+Bumped create-app version.
diff --git a/.changeset/curly-jobs-kneel.md b/.changeset/curly-jobs-kneel.md
new file mode 100644
index 0000000000..f313beab88
--- /dev/null
+++ b/.changeset/curly-jobs-kneel.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-scaffolder': patch
+'@backstage/plugin-scaffolder-backend': patch
+'@backstage/plugin-scaffolder-node': patch
+'@backstage/plugin-scaffolder-react': patch
+---
+
+Added a possibility to cancel the running task (executing of a scaffolder template)
diff --git a/plugins/.changeset/dull-adults-drum.md b/.changeset/dull-adults-drum.md
similarity index 100%
rename from plugins/.changeset/dull-adults-drum.md
rename to .changeset/dull-adults-drum.md
diff --git a/.changeset/gorgeous-pumas-speak.md b/.changeset/gorgeous-pumas-speak.md
new file mode 100644
index 0000000000..60f40c6748
--- /dev/null
+++ b/.changeset/gorgeous-pumas-speak.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog': patch
+---
+
+fix entity switch rendering when there is no default case
diff --git a/.changeset/healthy-buses-live-1.md b/.changeset/healthy-buses-live-1.md
new file mode 100644
index 0000000000..7e433372df
--- /dev/null
+++ b/.changeset/healthy-buses-live-1.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
+---
+
+Renamed `incrementalIngestionEntityProviderCatalogModule` to `catalogModuleIncrementalIngestionEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-2.md b/.changeset/healthy-buses-live-2.md
new file mode 100644
index 0000000000..ab577276d8
--- /dev/null
+++ b/.changeset/healthy-buses-live-2.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
+---
+
+Renamed `bitbucketServerEntityProviderCatalogModule` to `catalogModuleBitbucketServerEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-3.md b/.changeset/healthy-buses-live-3.md
new file mode 100644
index 0000000000..493236ea73
--- /dev/null
+++ b/.changeset/healthy-buses-live-3.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
+---
+
+Renamed `bitbucketCloudEntityProviderCatalogModule` to `catalogModuleBitbucketCloudEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-4.md b/.changeset/healthy-buses-live-4.md
new file mode 100644
index 0000000000..fdc223a7f4
--- /dev/null
+++ b/.changeset/healthy-buses-live-4.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-msgraph': patch
+---
+
+Renamed `microsoftGraphOrgEntityProviderCatalogModule` to `catalogModuleMicrosoftGraphOrgEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-5.md b/.changeset/healthy-buses-live-5.md
new file mode 100644
index 0000000000..f540751696
--- /dev/null
+++ b/.changeset/healthy-buses-live-5.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-gerrit': patch
+---
+
+Renamed `gerritEntityProviderCatalogModule` to `catalogModuleGerritEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-6.md b/.changeset/healthy-buses-live-6.md
new file mode 100644
index 0000000000..f293e56eae
--- /dev/null
+++ b/.changeset/healthy-buses-live-6.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-github': patch
+---
+
+Renamed `githubEntityProviderCatalogModule` to `catalogModuleGithubEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-7.md b/.changeset/healthy-buses-live-7.md
new file mode 100644
index 0000000000..7e7219bf01
--- /dev/null
+++ b/.changeset/healthy-buses-live-7.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-gitlab': patch
+---
+
+Renamed `gitlabDiscoveryEntityProviderCatalogModule` to `catalogModuleGitlabDiscoveryEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-8.md b/.changeset/healthy-buses-live-8.md
new file mode 100644
index 0000000000..9137a3b31a
--- /dev/null
+++ b/.changeset/healthy-buses-live-8.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-azure': patch
+---
+
+Renamed `azureDevOpsEntityProviderCatalogModule` to `catalogModuleAzureDevOpsEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-9.md b/.changeset/healthy-buses-live-9.md
new file mode 100644
index 0000000000..dbcba51470
--- /dev/null
+++ b/.changeset/healthy-buses-live-9.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-aws': patch
+---
+
+Renamed `awsS3EntityProviderCatalogModule` to `catalogModuleAwsS3EntityProviders` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/honest-clouds-shout.md b/.changeset/honest-clouds-shout.md
new file mode 100644
index 0000000000..0a7249d9ad
--- /dev/null
+++ b/.changeset/honest-clouds-shout.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+catalog write action should allow any shape of object
diff --git a/.changeset/light-bees-end.md b/.changeset/light-bees-end.md
new file mode 100644
index 0000000000..9fbbc44da0
--- /dev/null
+++ b/.changeset/light-bees-end.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes': patch
+---
+
+GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
diff --git a/.changeset/moody-apes-know.md b/.changeset/moody-apes-know.md
new file mode 100644
index 0000000000..bd48cb108e
--- /dev/null
+++ b/.changeset/moody-apes-know.md
@@ -0,0 +1,16 @@
+---
+'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
+'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
+'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
+'@backstage/plugin-catalog-backend-module-bitbucket': patch
+'@backstage/plugin-catalog-backend-module-puppetdb': patch
+'@backstage/plugin-catalog-backend-module-msgraph': patch
+'@backstage/plugin-catalog-backend-module-gerrit': patch
+'@backstage/plugin-catalog-backend-module-github': patch
+'@backstage/plugin-catalog-backend-module-gitlab': patch
+'@backstage/plugin-catalog-backend-module-azure': patch
+'@backstage/plugin-catalog-backend-module-ldap': patch
+'@backstage/plugin-catalog-backend-module-aws': patch
+---
+
+Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
diff --git a/.changeset/nine-bikes-applaud.md b/.changeset/nine-bikes-applaud.md
new file mode 100644
index 0000000000..77a1c0e4be
--- /dev/null
+++ b/.changeset/nine-bikes-applaud.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
+---
+
+allow container runner to be undefined in cookiecutter plugin
diff --git a/.changeset/pre.json b/.changeset/pre.json
index 2f69a85050..fc7fbffc9a 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -1,5 +1,5 @@
{
- "mode": "pre",
+ "mode": "exit",
"tag": "next",
"initialVersions": {
"example-app": "0.2.80",
@@ -210,44 +210,63 @@
"@backstage/plugin-vault-backend": "0.2.8",
"@backstage/plugin-xcmetrics": "0.2.35",
"@backstage/plugin-octopus-deploy": "0.0.0",
- "@backstage/plugin-stackstorm": "0.0.0"
+ "@backstage/plugin-stackstorm": "0.0.0",
+ "@backstage/plugin-catalog-backend-module-puppetdb": "0.0.1"
},
"changesets": [
"afraid-trees-stare",
+ "backend-token-authentication",
"breezy-bees-care",
"bright-kids-raise",
+ "clean-lemons-jump",
"clean-planes-join",
+ "clever-dogs-cheat",
"cool-clocks-prove",
+ "cool-feet-speak",
"create-app-1676993958",
+ "create-app-1678209629",
"curvy-pets-hang",
"eight-radios-bake",
+ "eighty-chairs-roll",
"eighty-geese-return",
+ "empty-books-occur",
"famous-sloths-tie",
+ "fifty-beds-dress",
"flat-kids-occur",
"flat-peaches-act",
"forty-snails-clap",
"four-lizards-grin",
+ "fresh-hairs-switch",
"fuzzy-trains-search",
+ "gentle-bears-love",
"gentle-pears-clean",
"great-trains-jam",
"grumpy-bikes-begin",
"happy-boxes-arrive",
+ "honest-clouds-shout",
"honest-nails-bake",
"khaki-poems-run",
+ "light-bees-end",
"light-sheep-trade",
"long-nails-pump",
"long-wolves-drive",
+ "lovely-tigers-look",
+ "mean-toys-itch",
"metal-suns-rhyme",
"mighty-games-turn",
"mighty-years-own",
"new-jobs-deny",
"nice-planets-wave",
+ "nine-bikes-applaud",
"ninety-turtles-wait",
"odd-fireants-bathe",
"odd-oranges-tease",
"odd-waves-rescue",
"old-foxes-shave",
+ "olive-berries-poke",
+ "orange-experts-hug",
"perfect-mayflies-greet",
+ "pink-dolls-unite",
"polite-chicken-do",
"polite-falcons-jump",
"polite-wombats-smash",
@@ -267,8 +286,13 @@
"renovate-fb85ae7",
"rich-clocks-approve",
"rich-wombats-rescue",
+ "rotten-cats-matter",
+ "rotten-panthers-share",
+ "selfish-hats-wait",
"short-mayflies-fix",
+ "silent-dryers-end",
"silly-suits-run",
+ "silver-bikes-breathe",
"silver-lies-rest",
"six-melons-rhyme",
"slimy-lobsters-kneel",
@@ -282,6 +306,7 @@
"tall-hats-talk",
"ten-tigers-marry",
"thin-candles-wait",
+ "tiny-llamas-jump",
"tricky-jars-film",
"twelve-cars-push",
"twenty-jeans-speak",
@@ -292,9 +317,11 @@
"wicked-lions-repeat",
"wicked-spoons-call",
"wild-ads-pull",
+ "wild-bulldogs-suffer",
"witty-geckos-design",
"yellow-bananas-yawn",
"young-schools-double",
- "young-scissors-cough"
+ "young-scissors-cough",
+ "young-walls-prove"
]
}
diff --git a/.changeset/proud-jokes-pull.md b/.changeset/proud-jokes-pull.md
new file mode 100644
index 0000000000..7d7790889a
--- /dev/null
+++ b/.changeset/proud-jokes-pull.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-node': patch
+---
+
+Added `locationSpecToMetadataName` and `locationSpecToLocationEntity` as their new home, moved over from the backend package where they now are marked as deprecated.
diff --git a/.changeset/rotten-cats-matter.md b/.changeset/rotten-cats-matter.md
new file mode 100644
index 0000000000..2515db9991
--- /dev/null
+++ b/.changeset/rotten-cats-matter.md
@@ -0,0 +1,19 @@
+---
+'@backstage/core-app-api': minor
+---
+
+`OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
+requested.
+
+This should not be considered a breaking change, because spec-compliant OIDC
+providers will already be returning ID tokens if and only if the `openid` scope
+is granted.
+
+This change makes the dependence explicit, and removes the burden on
+OAuth2-based providers which require an ID token (e.g. this is done by various
+default [auth
+handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
+`openid` to their default scopes. _That_ could carry another indirect benefit:
+by removing `openid` from the default scopes for a provider, grants for
+resource-specific access tokens can avoid requesting excess ID token-related
+scopes.
diff --git a/.changeset/silver-bikes-breathe.md b/.changeset/silver-bikes-breathe.md
index 63dabf7b2e..0288580bba 100644
--- a/.changeset/silver-bikes-breathe.md
+++ b/.changeset/silver-bikes-breathe.md
@@ -2,4 +2,23 @@
'@backstage/plugin-catalog': minor
---
-allow entity switch to render all cases that match the condition
+Allow `EntitySwitch` to render all cases that match the condition.
+
+This change introduces a new parameter for the `EntitySwitch` component
+`renderMultipleMatches`. In case the parameter value is `all`, the `EntitySwitch`
+will render all `EntitySwitch.Case` that contain `if` parameter, and it
+evaluates to true. In case none of the cases match, the default case will be
+rendered, if any.
+
+This means for example in the CI/CD page you can now do the following:
+
+```tsx
+
+ Jenkins
+ CodeBuild
+ No CI/CD
+
+```
+
+This allows the component to have multiple CI/CD systems and all of those are
+rendered on the same page.
diff --git a/.changeset/stupid-games-brake.md b/.changeset/stupid-games-brake.md
new file mode 100644
index 0000000000..0a50a32ffa
--- /dev/null
+++ b/.changeset/stupid-games-brake.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-events-backend': patch
+---
+
+Updated README instructions
diff --git a/.changeset/twenty-insects-live.md b/.changeset/twenty-insects-live.md
new file mode 100644
index 0000000000..d3f8cdfc25
--- /dev/null
+++ b/.changeset/twenty-insects-live.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-proxy-backend': patch
+---
+
+Ensure that `@backstage/plugin-proxy-backend` logs the requests that it proxies when log level is set to `debug`.
diff --git a/.changeset/witty-squids-fetch.md b/.changeset/witty-squids-fetch.md
new file mode 100644
index 0000000000..3e13421038
--- /dev/null
+++ b/.changeset/witty-squids-fetch.md
@@ -0,0 +1,5 @@
+---
+'@backstage/create-app': patch
+---
+
+Added to the template `packages/app/.eslintignore` file to packages to ignore the contents of `packages/app/public`.
diff --git a/.changeset/young-walls-prove.md b/.changeset/young-walls-prove.md
new file mode 100644
index 0000000000..33fafa1548
--- /dev/null
+++ b/.changeset/young-walls-prove.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-plugin-api': minor
+---
+
+The GitLab auth provider can now be used to get OpenID tokens.
diff --git a/ADOPTERS.md b/ADOPTERS.md
index 70b2992cf9..26f4331b70 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -233,4 +233,5 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/
| [Gumtree](https://www.gumtree.com.au) | [Kumar Gaurav](https://www.linkedin.com/in/kumargaurav517) | We are starting to use it as a single place to find all component information in a distributed architecture. |
| [N26](https://n26.com) | [Alexei Timofti](https://www.linkedin.com/in/alexeitimofti) | We use Backstage for our service catalog and are actively looking into adopting other plugins like TechDocs, TechInsights and Software Templates. |
| [The LEGO Group](https://www.lego.com) | [Waqas Ali](https://www.linkedin.com/in/waqasali47) | We are building our internal develper portal on top of Backstage. |
+| [CORS.gmbh](https://www.cors.gmbh) | [@dpfaffenbauer](https://github.com/dpfaffenbauer) | Developer Portal for our Projects we develop for our Customers and Hosting them On Kubernetes. |
diff --git a/docs/auth/gitlab/provider.md b/docs/auth/gitlab/provider.md
index 5041e161c5..dc41617812 100644
--- a/docs/auth/gitlab/provider.md
+++ b/docs/auth/gitlab/provider.md
@@ -18,7 +18,11 @@ Settings for local development:
- Name: Backstage (or your custom app name)
- Redirect URI: `http://localhost:7007/api/auth/gitlab/handler/frame`
-- Scopes: `read_api` and `read_user`
+- Scopes: `read_user` for sign-in. If you also need ID tokens (e.g. if you are
+ using the Kubernetes plugin and have clusters with `authProvider: oidc` and
+ [`oidcTokenProvider:
+gitlab`](https://backstage.io/docs/features/kubernetes/configuration/#clustersoidctokenprovider-optional)),
+ add the `openid` scope.
## Configuration
diff --git a/docs/features/kubernetes/configuration.md b/docs/features/kubernetes/configuration.md
index 837574aa9e..458637f316 100644
--- a/docs/features/kubernetes/configuration.md
+++ b/docs/features/kubernetes/configuration.md
@@ -160,8 +160,9 @@ auth:
audience: ${AUTH_OKTA_AUDIENCE}
```
-The following values are supported out-of-the-box by the frontend: `google`, `microsoft`,
-`okta`, `onelogin`.
+The following values are supported out-of-the-box by the frontend: `gitlab` (the
+application whose `clientId` is used by the auth provider should be granted the
+`openid` scope), `google`, `microsoft`, `okta`, `onelogin`.
Take note that `oidcTokenProvider` is just the issuer for the token, you can use any
of these with an OIDC enabled cluster, like using `microsoft` as the issuer for a EKS
diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md
index 5911e192b1..fbccf8848c 100644
--- a/docs/features/software-templates/index.md
+++ b/docs/features/software-templates/index.md
@@ -58,6 +58,10 @@ It shouldn't take too long, and you'll have a success screen!
If it fails, you'll be able to click on each section to get the log from the
step that failed which can be helpful in debugging.
+You can also cancel the running process. Once you clicked on button "Cancel", the abort signal
+will be sent to a task and all next steps won't be executed. The current step will be cancelled
+only if it supports it.
+

## View Component in Catalog
diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md
index 3e89e89582..7a841dfd0e 100644
--- a/docs/features/software-templates/writing-custom-actions.md
+++ b/docs/features/software-templates/writing-custom-actions.md
@@ -71,7 +71,7 @@ You can also choose to define your custom action using JSON schema instead of `z
```ts title="With JSON Schema"
import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
-import fs from 'fs-extra';
+import { writeFile } from 'fs';
export const createNewFileAction = () => {
return createTemplateAction<{ contents: string; filename: string }>({
@@ -95,9 +95,12 @@ export const createNewFileAction = () => {
},
},
async handler(ctx) {
- await fs.outputFile(
+ const { signal } = ctx;
+ await writeFile(
`${ctx.workspacePath}/${ctx.input.filename}`,
ctx.input.contents,
+ { signal },
+ _ => {},
);
},
});
diff --git a/docs/overview/adopting.md b/docs/overview/adopting.md
index 0765d4a452..15450c995b 100644
--- a/docs/overview/adopting.md
+++ b/docs/overview/adopting.md
@@ -153,7 +153,7 @@ Backstage as _the_ platform:
percentage of engineers is below 50%. Most engineers actually use Backstage on
a daily basis.
-Again, any feedback is appreciated. Please use the Edit button at the top of the
+Again, any feedback is appreciated. Please use the Edit button at the bottom of the
page to make a suggestion.
_**Note!** It might be tempting to try to optimize Backstage usage and
diff --git a/docs/releases/v1.12.0-next.2-changelog.md b/docs/releases/v1.12.0-next.2-changelog.md
new file mode 100644
index 0000000000..7a64ec5f84
--- /dev/null
+++ b/docs/releases/v1.12.0-next.2-changelog.md
@@ -0,0 +1,1833 @@
+# Release v1.12.0-next.2
+
+## @backstage/backend-tasks@0.5.0-next.2
+
+### Minor Changes
+
+- 1578276708a: add functionality to get descriptions from the scheduler for triggering
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/core-app-api@1.6.0-next.2
+
+### Minor Changes
+
+- 456eaa8cf83: `OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
+ requested.
+
+ This should not be considered a breaking change, because spec-compliant OIDC
+ providers will already be returning ID tokens if and only if the `openid` scope
+ is granted.
+
+ This change makes the dependence explicit, and removes the burden on
+ OAuth2-based providers which require an ID token (e.g. this is done by various
+ default [auth
+ handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
+ `openid` to their default scopes. _That_ could carry another indirect benefit:
+ by removing `openid` from the default scopes for a provider, grants for
+ resource-specific access tokens can avoid requesting excess ID token-related
+ scopes.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/core-plugin-api@1.5.0-next.2
+
+### Minor Changes
+
+- ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-catalog@1.9.0-next.2
+
+### Minor Changes
+
+- 23cc40039c0: allow entity switch to render all cases that match the condition
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+
+## @backstage/plugin-catalog-backend-module-puppetdb@0.1.0-next.0
+
+### Minor Changes
+
+- a1efcf9a658: Initial version of the plugin.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-scaffolder@1.12.0-next.2
+
+### Minor Changes
+
+- 0d61fcca9c3: Update `EntityPicker` to use the fully qualified entity ref instead of the humanized version.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- 0aae4596296: Fix the scaffolder validator for arrays when the item is a field in the object
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-scaffolder-react@1.2.0-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/app-defaults@1.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+
+## @backstage/backend-app-api@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/backend-common@0.18.3-next.2
+
+### Patch Changes
+
+- f75097868a7: Adds config option `backend.database.role` to set ownership for newly created schemas and tables in Postgres
+
+ The example config below connects to the database as user `v-backstage-123` but sets the ownership of
+ the create schemas and tables to `backstage`
+
+ ```yaml
+ backend:
+ database:
+ client: pg
+ pluginDivisionMode: schema
+ role: backstage
+ connection:
+ user: v-backstage-123
+ ...
+ ```
+
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+
+- Updated dependencies
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+ - @backstage/integration-aws-node@0.1.2-next.0
+
+## @backstage/backend-defaults@0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
+## @backstage/backend-plugin-api@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/backend-test-utils@0.1.35-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/core-components@0.12.5-next.2
+
+### Patch Changes
+
+- 8bbf95b5507: Button labels in the sidebar (previously displayed in uppercase) will be displayed in the case that is provided without any transformations.
+ For example, a sidebar button with the label "Search" will appear as Search, "search" will appear as search, "SEARCH" will appear as SEARCH etc.
+ This can potentially affect any overriding styles previously applied to change the appearance of Button labels in the Sidebar.
+- fa004f66871: Use media queries to change layout instead of `isMobile` prop in `BackstagePage` component
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/create-app@0.4.38-next.2
+
+### Patch Changes
+
+- Bumped create-app version.
+
+## @backstage/dev-utils@1.0.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
+## @backstage/integration-react@1.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @techdocs/cli@1.4.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/test-utils@1.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-adr@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+
+## @backstage/plugin-adr-backend@0.3.1-next.2
+
+### Patch Changes
+
+- 2a73ded3861: Support MADR v3 format
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-airbrake@0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/dev-utils@1.0.13-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
+## @backstage/plugin-airbrake-backend@0.2.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-allure@0.1.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-analytics-module-ga@0.1.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-apache-airflow@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-api-docs@0.9.1-next.2
+
+### Patch Changes
+
+- 8bc7dcec820: Fix dark theme Swagger's clear button font color.
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-apollo-explorer@0.1.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-app-backend@0.3.43-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-auth-backend@0.18.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-auth-node@0.2.12-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-azure-devops@0.2.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-azure-devops-backend@0.3.22-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-azure-sites@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-azure-sites-backend@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-badges@0.2.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-badges-backend@0.1.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-bazaar@0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/cli@0.22.4-next.1
+
+## @backstage/plugin-bazaar-backend@0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-bitrise@0.1.43-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-catalog-backend@1.8.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-aws@0.1.17-next.2
+
+### Patch Changes
+
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-azure@0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-bitbucket@0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-gerrit@0.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-github@0.2.6-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-gitlab@0.1.14-next.2
+
+### Patch Changes
+
+- be129f8f3cd: filter gitlab groups by prefix
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.3.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-catalog-backend-module-ldap@0.5.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-catalog-backend-module-msgraph@0.5.2-next.2
+
+### Patch Changes
+
+- 26eef93c547: Fixed msgraph catalog backend to use user.select option when fetching user from AzureAD
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-catalog-backend-module-openapi@0.1.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-graph@0.2.28-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-catalog-import@0.9.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-catalog-node@1.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
+## @backstage/plugin-catalog-react@1.4.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-cicd-statistics@0.1.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-cicd-statistics-module-gitlab@0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-cicd-statistics@0.1.18-next.2
+
+## @backstage/plugin-circleci@0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-cloudbuild@0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-code-climate@0.1.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-code-coverage@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-code-coverage-backend@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-codescene@0.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-config-schema@0.1.39-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-cost-insights@0.12.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-dynatrace@3.0.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-entity-feedback@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-entity-feedback-backend@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-entity-validation@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-events-backend@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-events-backend-module-aws-sqs@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-events-backend-module-azure@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
+## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
+## @backstage/plugin-events-backend-module-gerrit@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
+## @backstage/plugin-events-backend-module-github@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-events-backend-module-gitlab@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-events-backend-test-utils@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.4-next.2
+
+## @backstage/plugin-events-node@0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
+## @backstage/plugin-explore@0.4.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-explore-react@0.0.27-next.2
+
+## @backstage/plugin-explore-backend@0.0.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-explore-react@0.0.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-firehydrant@0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-fossa@0.2.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-gcalendar@0.3.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-gcp-projects@0.3.35-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-git-release-manager@0.3.29-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-github-actions@0.5.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-github-deployments@0.1.47-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-github-issues@0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-github-pull-requests-board@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-gitops-profiles@0.3.34-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-gocd@0.1.22-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-graphiql@0.2.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-graphql-backend@0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/plugin-catalog-graphql@0.3.19-next.1
+
+## @backstage/plugin-graphql-voyager@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-home@0.4.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-ilert@0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-jenkins@0.7.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-jenkins-backend@0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-kafka@0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-kafka-backend@0.2.36-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-kubernetes@0.7.9-next.2
+
+### Patch Changes
+
+- 8adeb19b37d: GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-kubernetes-backend@0.9.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-lighthouse@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-lighthouse-backend@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-linguist@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-linguist-backend@0.2.0-next.2
+
+### Patch Changes
+
+- 8a298b47240: Added support for linguist-js options using the linguistJSOptions in the plugin, the available config can be found [here](https://www.npmjs.com/package/linguist-js#API).
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-microsoft-calendar@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-newrelic@0.3.34-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-newrelic-dashboard@0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-octopus-deploy@0.1.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-org@0.6.6-next.2
+
+### Patch Changes
+
+- a06fcac4040: Add styling to the `MembersListCard` and `ComponentsGrid` to handle overflow text.
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-org-react@0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-pagerduty@0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-periskop@0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-periskop-backend@0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-permission-backend@0.5.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-permission-node@0.7.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-permission-react@0.4.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-playlist@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+
+## @backstage/plugin-playlist-backend@0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-proxy-backend@0.2.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-rollbar@0.4.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-rollbar-backend@0.1.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-scaffolder-backend@1.12.0-next.2
+
+### Patch Changes
+
+- 860de10fa67: Make identity valid if subject of token is a backstage server-2-server auth token
+- 65454876fb2: Minor API report tweaks
+- 9968f455921: catalog write action should allow any shape of object
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.18-next.2
+
+### Patch Changes
+
+- 62414770ead: allow container runner to be undefined in cookiecutter plugin
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-scaffolder-backend-module-rails@0.4.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-scaffolder-backend-module-sentry@0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-scaffolder-node@0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
+## @backstage/plugin-scaffolder-react@1.2.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- d9893263ba9: scaffolder/next: Fix for steps without properties
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-search@1.1.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-search-backend@1.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-search-backend-module-elasticsearch@1.1.4-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-search-backend-module-pg@0.5.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-search-backend-node@1.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-search-react@1.5.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 553f3c95011: Correctly disable next button in `SearchPagination` on last page
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-sentry@0.5.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-shortcuts@0.3.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-sonarqube@0.6.5-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-sonarqube-react@0.1.4-next.2
+
+## @backstage/plugin-sonarqube-backend@0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-sonarqube-react@0.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-splunk-on-call@0.4.5-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-stack-overflow@0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-home@0.4.32-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-stack-overflow-backend@0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-stackstorm@0.1.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-tech-insights@0.3.8-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-tech-insights-backend@0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-tech-insights-node@0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-tech-radar@0.6.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-techdocs@1.6.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-techdocs-addons-test-utils@1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
+## @backstage/plugin-techdocs-backend@1.5.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-techdocs-module-addons-contrib@1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-techdocs-node@1.6.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+ - @backstage/integration-aws-node@0.1.2-next.0
+
+## @backstage/plugin-techdocs-react@1.1.4-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-todo@0.2.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-todo-backend@0.1.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## @backstage/plugin-user-settings@0.7.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-user-settings-backend@0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
+## @backstage/plugin-vault@0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @backstage/plugin-vault-backend@0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @backstage/plugin-xcmetrics@0.2.36-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## example-app@0.2.81-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-scaffolder-react@1.2.0-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-tech-insights@0.3.8-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/plugin-scaffolder@1.12.0-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/plugin-explore@0.4.1-next.2
+ - @backstage/plugin-search@1.1.1-next.2
+ - @backstage/plugin-kubernetes@0.7.9-next.2
+ - @backstage/plugin-api-docs@0.9.1-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-org@0.6.6-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/cli@0.22.4-next.1
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/plugin-airbrake@0.3.16-next.2
+ - @backstage/plugin-apache-airflow@0.2.9-next.2
+ - @backstage/plugin-azure-devops@0.2.7-next.2
+ - @backstage/plugin-azure-sites@0.1.5-next.2
+ - @backstage/plugin-badges@0.2.40-next.2
+ - @backstage/plugin-catalog-graph@0.2.28-next.2
+ - @backstage/plugin-catalog-import@0.9.6-next.2
+ - @backstage/plugin-circleci@0.3.16-next.2
+ - @backstage/plugin-cloudbuild@0.3.16-next.2
+ - @backstage/plugin-code-coverage@0.2.9-next.2
+ - @backstage/plugin-cost-insights@0.12.5-next.2
+ - @backstage/plugin-dynatrace@3.0.0-next.2
+ - @backstage/plugin-entity-feedback@0.1.1-next.2
+ - @backstage/plugin-gcalendar@0.3.12-next.2
+ - @backstage/plugin-gcp-projects@0.3.35-next.2
+ - @backstage/plugin-github-actions@0.5.16-next.2
+ - @backstage/plugin-gocd@0.1.22-next.2
+ - @backstage/plugin-graphiql@0.2.48-next.2
+ - @backstage/plugin-home@0.4.32-next.2
+ - @backstage/plugin-jenkins@0.7.15-next.2
+ - @backstage/plugin-kafka@0.3.16-next.2
+ - @backstage/plugin-lighthouse@0.4.1-next.2
+ - @backstage/plugin-linguist@0.1.1-next.2
+ - @backstage/plugin-microsoft-calendar@0.1.1-next.2
+ - @backstage/plugin-newrelic@0.3.34-next.2
+ - @backstage/plugin-newrelic-dashboard@0.2.9-next.2
+ - @backstage/plugin-pagerduty@0.5.9-next.2
+ - @backstage/plugin-playlist@0.1.7-next.2
+ - @backstage/plugin-rollbar@0.4.16-next.2
+ - @backstage/plugin-sentry@0.5.1-next.2
+ - @backstage/plugin-shortcuts@0.3.8-next.2
+ - @backstage/plugin-stack-overflow@0.1.12-next.2
+ - @backstage/plugin-stackstorm@0.1.0-next.2
+ - @backstage/plugin-tech-radar@0.6.2-next.2
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.11-next.2
+ - @backstage/plugin-todo@0.2.18-next.2
+ - @backstage/plugin-user-settings@0.7.1-next.2
+ - @internal/plugin-catalog-customized@0.0.8-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+
+## example-backend@0.2.81-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/plugin-search-backend-module-elasticsearch@1.1.4-next.2
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27-next.2
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/plugin-adr-backend@0.3.1-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-linguist-backend@0.2.0-next.2
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.11-next.2
+ - example-app@0.2.81-next.2
+ - @backstage/plugin-techdocs-backend@1.5.4-next.2
+ - @backstage/plugin-auth-backend@0.18.1-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.1-next.2
+ - @backstage/plugin-jenkins-backend@0.1.33-next.2
+ - @backstage/plugin-kubernetes-backend@0.9.4-next.2
+ - @backstage/plugin-permission-backend@0.5.18-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-playlist-backend@0.2.6-next.2
+ - @backstage/plugin-search-backend@1.2.4-next.2
+ - @backstage/plugin-lighthouse-backend@0.1.1-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/plugin-tech-insights-backend@0.5.9-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/plugin-app-backend@0.3.43-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.22-next.2
+ - @backstage/plugin-azure-sites-backend@0.1.5-next.2
+ - @backstage/plugin-badges-backend@0.1.37-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-code-coverage-backend@0.2.9-next.2
+ - @backstage/plugin-events-backend@0.2.4-next.2
+ - @backstage/plugin-explore-backend@0.0.5-next.2
+ - @backstage/plugin-graphql-backend@0.1.33-next.2
+ - @backstage/plugin-kafka-backend@0.2.36-next.2
+ - @backstage/plugin-proxy-backend@0.2.37-next.2
+ - @backstage/plugin-rollbar-backend@0.1.40-next.2
+ - @backstage/plugin-search-backend-module-pg@0.5.4-next.2
+ - @backstage/plugin-todo-backend@0.1.40-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
+## example-backend-next@0.0.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-defaults@0.1.8-next.2
+ - @backstage/plugin-app-backend@0.3.43-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-todo-backend@0.1.40-next.2
+
+## e2e-test@0.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.4.38-next.2
+
+## techdocs-cli-embedded-app@0.2.80-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/cli@0.22.4-next.1
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+ - @backstage/config@1.0.7-next.0
+
+## @internal/plugin-catalog-customized@0.0.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+
+## @internal/plugin-todo-list@1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
+## @internal/plugin-todo-list-backend@1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
diff --git a/microsite-next/src/components/simpleCard/simpleCard.tsx b/microsite-next/src/components/simpleCard/simpleCard.tsx
new file mode 100644
index 0000000000..77be566f18
--- /dev/null
+++ b/microsite-next/src/components/simpleCard/simpleCard.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+
+export interface ICardData {
+ header: React.ReactNode;
+ body: React.ReactNode;
+ footer: React.ReactNode;
+}
+
+export const SimpleCard = ({ header, body, footer }: ICardData) => (
+
+
{header}
+
+
{body}
+
+
{footer}
+
+);
diff --git a/microsite-next/src/pages/on-demand/_onDemandCard.tsx b/microsite-next/src/pages/on-demand/_onDemandCard.tsx
new file mode 100644
index 0000000000..e203c80f9a
--- /dev/null
+++ b/microsite-next/src/pages/on-demand/_onDemandCard.tsx
@@ -0,0 +1,66 @@
+import Link from '@docusaurus/Link';
+import { SimpleCard } from '@site/src/components/simpleCard/simpleCard';
+import React from 'react';
+
+export interface IOnDemandData {
+ title: string;
+ category: string;
+ description: string;
+ date: string;
+ youtubeUrl: string;
+ youtubeImgUrl: string;
+ rsvpUrl: string;
+ eventUrl: string;
+}
+
+export const OnDemandCard = ({
+ title,
+ category,
+ description,
+ date,
+ youtubeUrl,
+ youtubeImgUrl,
+ rsvpUrl,
+ eventUrl,
+}: IOnDemandData) => (
+
+ {title}
+
+ on {date}
+
+ {category}
+
+
+ >
+ }
+ body={{description}
}
+ footer={
+ category.toLowerCase() === 'upcoming' ? (
+ <>
+
+ Event page
+
+
+
+ Remind me
+
+ >
+ ) : (
+
+ Watch on YouTube
+
+ )
+ }
+ />
+);
diff --git a/microsite-next/src/pages/on-demand/index.tsx b/microsite-next/src/pages/on-demand/index.tsx
new file mode 100644
index 0000000000..7262005f70
--- /dev/null
+++ b/microsite-next/src/pages/on-demand/index.tsx
@@ -0,0 +1,78 @@
+import Layout from '@theme/Layout';
+import clsx from 'clsx';
+import React from 'react';
+
+import { IOnDemandData, OnDemandCard } from './_onDemandCard';
+import pluginsStyles from './onDemand.module.scss';
+import { truncateDescription } from '@site/src/util/truncateDescription';
+import Link from '@docusaurus/Link';
+
+//#region Plugin data import
+const onDemandContext = require.context(
+ '../../../../microsite/data/on-demand',
+ false,
+ /\.ya?ml/,
+);
+
+const onDemandData = onDemandContext.keys().reduce(
+ (acum, id) => {
+ const pluginData: IOnDemandData = onDemandContext(id).default;
+
+ acum[
+ pluginData.category === 'Upcoming' ? 'upcomingEvents' : 'onDemandEvents'
+ ].push(truncateDescription(pluginData));
+
+ return acum;
+ },
+ {
+ upcomingEvents: [] as IOnDemandData[],
+ onDemandEvents: [] as IOnDemandData[],
+ },
+);
+//#endregion
+
+const Plugins = () => (
+
+
+
+
+
Community sessions
+
+
+ Upcoming events and recorded sessions about updates, demos and
+ discussions.
+
+
+
+
+ Add an event or recording
+
+
+
+
+
+
Upcoming live events
+
+
+ {onDemandData.upcomingEvents.map(eventData => (
+
+ ))}
+
+
+
Community on demand
+
+
+ {onDemandData.onDemandEvents.map(eventData => (
+
+ ))}
+
+
+
+);
+
+export default Plugins;
diff --git a/microsite-next/src/pages/on-demand/onDemand.module.scss b/microsite-next/src/pages/on-demand/onDemand.module.scss
new file mode 100644
index 0000000000..fba051ec97
--- /dev/null
+++ b/microsite-next/src/pages/on-demand/onDemand.module.scss
@@ -0,0 +1,44 @@
+.onDemandPage {
+ :global(.marketplaceBanner) {
+ display: flex;
+ align-items: center;
+ }
+
+ :global(.marketplaceContent) {
+ flex: 1;
+ }
+
+ :global(.card) {
+ max-width: 100%;
+ }
+
+ :global(.card .card__header) {
+ display: grid;
+ row-gap: 0.25rem;
+ column-gap: 1rem;
+ justify-items: start;
+
+ > * {
+ margin: 0;
+ }
+
+ :global(img) {
+ width: 250px;
+ max-width: 100%;
+ justify-self: center;
+ }
+ }
+
+ :global(.card .card__footer) {
+ gap: 1rem;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
+ }
+
+ :global(.cardsContainer) {
+ gap: 1rem;
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
+ justify-items: start;
+ }
+}
diff --git a/microsite-next/src/pages/plugins/_pluginCard.tsx b/microsite-next/src/pages/plugins/_pluginCard.tsx
index dec62af06f..99f27b865d 100644
--- a/microsite-next/src/pages/plugins/_pluginCard.tsx
+++ b/microsite-next/src/pages/plugins/_pluginCard.tsx
@@ -1,4 +1,5 @@
import Link from '@docusaurus/Link';
+import { SimpleCard } from '@site/src/components/simpleCard/simpleCard';
import React from 'react';
export interface IPluginData {
@@ -23,32 +24,30 @@ export const PluginCard = ({
iconUrl,
title,
}: IPluginData) => (
-
-
-

+
+
- {title}
+ {title}
-
- by {author}
-
+
+ by {author}
+
-
- {category}
-
-
-
-
-
-
+
+ {category}
+
+ >
+ }
+ body={
{description}
}
+ footer={
Explore
-
-
+ }
+ />
);
diff --git a/microsite-next/src/pages/plugins/index.tsx b/microsite-next/src/pages/plugins/index.tsx
index f8c6f78819..0e57e01994 100644
--- a/microsite-next/src/pages/plugins/index.tsx
+++ b/microsite-next/src/pages/plugins/index.tsx
@@ -5,18 +5,9 @@ import React from 'react';
import { IPluginData, PluginCard } from './_pluginCard';
import pluginsStyles from './plugins.module.scss';
+import { truncateDescription } from '@site/src/util/truncateDescription';
//#region Plugin data import
-const maxDescLength = 160;
-
-const truncatePluginDescription = (pluginData: IPluginData) =>
- pluginData.description.length > maxDescLength
- ? {
- ...pluginData,
- description: pluginData.description.slice(0, maxDescLength) + '...',
- }
- : pluginData;
-
const pluginsContext = require.context(
'../../../../microsite/data/plugins',
false,
@@ -29,7 +20,7 @@ const plugins = pluginsContext.keys().reduce(
acum[
pluginData.category === 'Core Feature' ? 'corePlugins' : 'otherPlugins'
- ].push(truncatePluginDescription(pluginData));
+ ].push(truncateDescription(pluginData));
return acum;
},
diff --git a/microsite-next/src/util/truncateDescription.tsx b/microsite-next/src/util/truncateDescription.tsx
new file mode 100644
index 0000000000..dc661cbd49
--- /dev/null
+++ b/microsite-next/src/util/truncateDescription.tsx
@@ -0,0 +1,11 @@
+export const maxDescLength = 160;
+
+export const truncateDescription = (
+ itemData: T,
+) =>
+ itemData.description.length > maxDescLength
+ ? {
+ ...itemData,
+ description: itemData.description.slice(0, maxDescLength) + '...',
+ }
+ : itemData;
diff --git a/microsite/pages/en/plugins.js b/microsite/pages/en/plugins.js
index 237161b98a..6e2e1c09ad 100644
--- a/microsite/pages/en/plugins.js
+++ b/microsite/pages/en/plugins.js
@@ -24,7 +24,7 @@ const truncate = text =>
const newForDays = 100;
const addPluginDocsLink = '/docs/plugins/add-to-marketplace';
-const defaultIconUrl = 'img/logo-gradient-on-dark.svg';
+const defaultIconUrl = '/img/logo-gradient-on-dark.svg';
const Plugins = () => (
diff --git a/package.json b/package.json
index 1bdaa670c8..43a146e0a1 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"@types/react": "^17",
"@types/react-dom": "^17"
},
- "version": "1.12.0-next.1",
+ "version": "1.12.0-next.2",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3"
diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md
index 648fad21b9..0b2b813d14 100644
--- a/packages/app-defaults/CHANGELOG.md
+++ b/packages/app-defaults/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/app-defaults
+## 1.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+
## 1.2.1-next.1
### Patch Changes
diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json
index 76af117a84..873a2fa28f 100644
--- a/packages/app-defaults/package.json
+++ b/packages/app-defaults/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
- "version": "1.2.1-next.1",
+ "version": "1.2.1-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md
index 301c3684fc..ac21cbad07 100644
--- a/packages/app/CHANGELOG.md
+++ b/packages/app/CHANGELOG.md
@@ -1,5 +1,69 @@
# example-app
+## 0.2.81-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-scaffolder-react@1.2.0-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-tech-insights@0.3.8-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/plugin-scaffolder@1.12.0-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/plugin-explore@0.4.1-next.2
+ - @backstage/plugin-search@1.1.1-next.2
+ - @backstage/plugin-kubernetes@0.7.9-next.2
+ - @backstage/plugin-api-docs@0.9.1-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-org@0.6.6-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/cli@0.22.4-next.1
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/plugin-airbrake@0.3.16-next.2
+ - @backstage/plugin-apache-airflow@0.2.9-next.2
+ - @backstage/plugin-azure-devops@0.2.7-next.2
+ - @backstage/plugin-azure-sites@0.1.5-next.2
+ - @backstage/plugin-badges@0.2.40-next.2
+ - @backstage/plugin-catalog-graph@0.2.28-next.2
+ - @backstage/plugin-catalog-import@0.9.6-next.2
+ - @backstage/plugin-circleci@0.3.16-next.2
+ - @backstage/plugin-cloudbuild@0.3.16-next.2
+ - @backstage/plugin-code-coverage@0.2.9-next.2
+ - @backstage/plugin-cost-insights@0.12.5-next.2
+ - @backstage/plugin-dynatrace@3.0.0-next.2
+ - @backstage/plugin-entity-feedback@0.1.1-next.2
+ - @backstage/plugin-gcalendar@0.3.12-next.2
+ - @backstage/plugin-gcp-projects@0.3.35-next.2
+ - @backstage/plugin-github-actions@0.5.16-next.2
+ - @backstage/plugin-gocd@0.1.22-next.2
+ - @backstage/plugin-graphiql@0.2.48-next.2
+ - @backstage/plugin-home@0.4.32-next.2
+ - @backstage/plugin-jenkins@0.7.15-next.2
+ - @backstage/plugin-kafka@0.3.16-next.2
+ - @backstage/plugin-lighthouse@0.4.1-next.2
+ - @backstage/plugin-linguist@0.1.1-next.2
+ - @backstage/plugin-microsoft-calendar@0.1.1-next.2
+ - @backstage/plugin-newrelic@0.3.34-next.2
+ - @backstage/plugin-newrelic-dashboard@0.2.9-next.2
+ - @backstage/plugin-pagerduty@0.5.9-next.2
+ - @backstage/plugin-playlist@0.1.7-next.2
+ - @backstage/plugin-rollbar@0.4.16-next.2
+ - @backstage/plugin-sentry@0.5.1-next.2
+ - @backstage/plugin-shortcuts@0.3.8-next.2
+ - @backstage/plugin-stack-overflow@0.1.12-next.2
+ - @backstage/plugin-stackstorm@0.1.0-next.2
+ - @backstage/plugin-tech-radar@0.6.2-next.2
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.11-next.2
+ - @backstage/plugin-todo@0.2.18-next.2
+ - @backstage/plugin-user-settings@0.7.1-next.2
+ - @internal/plugin-catalog-customized@0.0.8-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.81-next.1
### Patch Changes
diff --git a/packages/app/package.json b/packages/app/package.json
index b74a2c7a6e..c51f8be911 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -1,6 +1,6 @@
{
"name": "example-app",
- "version": "0.2.81-next.1",
+ "version": "0.2.81-next.2",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md
index 4cbc4fa844..6ea78e983f 100644
--- a/packages/backend-app-api/CHANGELOG.md
+++ b/packages/backend-app-api/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/backend-app-api
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.1-next.1
### Patch Changes
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index dd5a404118..f59e39ef09 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.4.1-next.1",
+ "version": "0.4.1-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 a3dfe498e9..06968a3c8a 100644
--- a/packages/backend-common/CHANGELOG.md
+++ b/packages/backend-common/CHANGELOG.md
@@ -1,5 +1,33 @@
# @backstage/backend-common
+## 0.18.3-next.2
+
+### Patch Changes
+
+- f75097868a7: Adds config option `backend.database.role` to set ownership for newly created schemas and tables in Postgres
+
+ The example config below connects to the database as user `v-backstage-123` but sets the ownership of
+ the create schemas and tables to `backstage`
+
+ ```yaml
+ backend:
+ database:
+ client: pg
+ pluginDivisionMode: schema
+ role: backstage
+ connection:
+ user: v-backstage-123
+ ...
+ ```
+
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- Updated dependencies
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+ - @backstage/integration-aws-node@0.1.2-next.0
+
## 0.18.3-next.1
### Patch Changes
diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json
index 665b14e2dd..beee72c860 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.18.3-next.1",
+ "version": "0.18.3-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
index dad12c7660..0bd4d2636f 100644
--- a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
+++ b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
@@ -265,10 +265,8 @@ describe('AwsS3UrlReader', () => {
reader.readUrl(
'https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml',
),
- ).rejects.toThrow(
- Error(
- `Could not retrieve file from S3; caused by Error: Invalid AWS S3 URL https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml`,
- ),
+ ).rejects.toMatchInlineSnapshot(
+ `[Error: Could not retrieve file from S3; caused by Error: Invalid AWS S3 URL https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml]`,
);
});
});
@@ -325,10 +323,8 @@ describe('AwsS3UrlReader', () => {
reader.readUrl!(
'https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml',
),
- ).rejects.toThrow(
- Error(
- `Could not retrieve file from S3; caused by Error: Invalid AWS S3 URL https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml`,
- ),
+ ).rejects.toMatchInlineSnapshot(
+ `[Error: Could not retrieve file from S3; caused by Error: Invalid AWS S3 URL https://test-bucket.s3.us-east-2.NOTamazonaws.com/file.yaml]`,
);
});
});
diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md
index bbf760d6e2..7283ae89e2 100644
--- a/packages/backend-defaults/CHANGELOG.md
+++ b/packages/backend-defaults/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/backend-defaults
+## 0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
## 0.1.8-next.1
### Patch Changes
diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json
index 468bcfd4ce..2ae0074849 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.1.8-next.1",
+ "version": "0.1.8-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 fdce1b2096..91ded2391f 100644
--- a/packages/backend-next/CHANGELOG.md
+++ b/packages/backend-next/CHANGELOG.md
@@ -1,5 +1,16 @@
# example-backend-next
+## 0.0.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-defaults@0.1.8-next.2
+ - @backstage/plugin-app-backend@0.3.43-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-todo-backend@0.1.40-next.2
+
## 0.0.9-next.1
### Patch Changes
diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json
index 1540803b3b..9f7ec8306a 100644
--- a/packages/backend-next/package.json
+++ b/packages/backend-next/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend-next",
- "version": "0.0.9-next.1",
+ "version": "0.0.9-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 8319475840..5125411eb6 100644
--- a/packages/backend-plugin-api/CHANGELOG.md
+++ b/packages/backend-plugin-api/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/backend-plugin-api
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.1-next.1
### Patch Changes
diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json
index 856f2a70e2..4d97fdcd74 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.4.1-next.1",
+ "version": "0.4.1-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 acce10665a..7eb43c4677 100644
--- a/packages/backend-tasks/CHANGELOG.md
+++ b/packages/backend-tasks/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/backend-tasks
+## 0.5.0-next.2
+
+### Minor Changes
+
+- 1578276708a: add functionality to get descriptions from the scheduler for triggering
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.4-next.1
### Patch Changes
diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json
index 3f3c594cd4..fa826067c8 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.4.4-next.1",
+ "version": "0.5.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-tasks/src/migrations.test.ts b/packages/backend-tasks/src/migrations.test.ts
index 4d37b9d39e..74503ab9a7 100644
--- a/packages/backend-tasks/src/migrations.test.ts
+++ b/packages/backend-tasks/src/migrations.test.ts
@@ -71,8 +71,11 @@ describe('migrations', () => {
await migrateDownOnce(knex);
- await expect(knex('backstage_backend_tasks__tasks')).rejects.toThrow(
- /backstage_backend_tasks__tasks/,
+ // This looks odd - you might expect a .toThrow at the end but that
+ // actually is flaky for some reason specifically on sqlite when
+ // performing multiple runs in sequence
+ await expect(knex('backstage_backend_tasks__tasks')).rejects.toEqual(
+ expect.anything(),
);
await knex.destroy();
diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md
index d1f383bf43..3b20fe92d5 100644
--- a/packages/backend-test-utils/CHANGELOG.md
+++ b/packages/backend-test-utils/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/backend-test-utils
+## 0.1.35-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-app-api@0.4.1-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.35-next.1
### Patch Changes
diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json
index d5ace4b8f3..e797e346ff 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.1.35-next.1",
+ "version": "0.1.35-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md
index 8430961cc5..933d9688b9 100644
--- a/packages/backend/CHANGELOG.md
+++ b/packages/backend/CHANGELOG.md
@@ -1,5 +1,52 @@
# example-backend
+## 0.2.81-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/plugin-search-backend-module-elasticsearch@1.1.4-next.2
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27-next.2
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/plugin-adr-backend@0.3.1-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-linguist-backend@0.2.0-next.2
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.11-next.2
+ - example-app@0.2.81-next.2
+ - @backstage/plugin-techdocs-backend@1.5.4-next.2
+ - @backstage/plugin-auth-backend@0.18.1-next.2
+ - @backstage/plugin-entity-feedback-backend@0.1.1-next.2
+ - @backstage/plugin-jenkins-backend@0.1.33-next.2
+ - @backstage/plugin-kubernetes-backend@0.9.4-next.2
+ - @backstage/plugin-permission-backend@0.5.18-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-playlist-backend@0.2.6-next.2
+ - @backstage/plugin-search-backend@1.2.4-next.2
+ - @backstage/plugin-lighthouse-backend@0.1.1-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/plugin-tech-insights-backend@0.5.9-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/plugin-app-backend@0.3.43-next.2
+ - @backstage/plugin-azure-devops-backend@0.3.22-next.2
+ - @backstage/plugin-azure-sites-backend@0.1.5-next.2
+ - @backstage/plugin-badges-backend@0.1.37-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-code-coverage-backend@0.2.9-next.2
+ - @backstage/plugin-events-backend@0.2.4-next.2
+ - @backstage/plugin-explore-backend@0.0.5-next.2
+ - @backstage/plugin-graphql-backend@0.1.33-next.2
+ - @backstage/plugin-kafka-backend@0.2.36-next.2
+ - @backstage/plugin-proxy-backend@0.2.37-next.2
+ - @backstage/plugin-rollbar-backend@0.1.40-next.2
+ - @backstage/plugin-search-backend-module-pg@0.5.4-next.2
+ - @backstage/plugin-todo-backend@0.1.40-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.81-next.1
### Patch Changes
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 40b47bbc7b..107a1147f1 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend",
- "version": "0.2.81-next.1",
+ "version": "0.2.81-next.2",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md
index 092a43cfe0..d91fa44f05 100644
--- a/packages/core-app-api/CHANGELOG.md
+++ b/packages/core-app-api/CHANGELOG.md
@@ -1,5 +1,31 @@
# @backstage/core-app-api
+## 1.6.0-next.2
+
+### Minor Changes
+
+- 456eaa8cf83: `OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
+ requested.
+
+ This should not be considered a breaking change, because spec-compliant OIDC
+ providers will already be returning ID tokens if and only if the `openid` scope
+ is granted.
+
+ This change makes the dependence explicit, and removes the burden on
+ OAuth2-based providers which require an ID token (e.g. this is done by various
+ default [auth
+ handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
+ `openid` to their default scopes. _That_ could carry another indirect benefit:
+ by removing `openid` from the default scopes for a provider, grants for
+ resource-specific access tokens can avoid requesting excess ID token-related
+ scopes.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.5.1-next.1
### Patch Changes
diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json
index d17e05fdea..073a5a22b2 100644
--- a/packages/core-app-api/package.json
+++ b/packages/core-app-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-app-api",
"description": "Core app API used by Backstage apps",
- "version": "1.5.1-next.1",
+ "version": "1.6.0-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.test.ts b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.test.ts
index 0bb40c23fc..63070120ef 100644
--- a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.test.ts
+++ b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.test.ts
@@ -48,9 +48,8 @@ describe('OAuth2', () => {
expect(await oauth2.getAccessToken('my-scope my-scope2')).toBe(
'access-token',
);
- expect(getSession).toHaveBeenCalledTimes(1);
- expect(getSession.mock.calls[0][0].scopes).toEqual(
- new Set(['my-scope', 'my-scope2']),
+ expect(getSession).toHaveBeenCalledWith(
+ expect.objectContaining({ scopes: new Set(['my-scope', 'my-scope2']) }),
);
});
@@ -65,9 +64,10 @@ describe('OAuth2', () => {
});
expect(await oauth2.getAccessToken('my-scope')).toBe('access-token');
- expect(getSession).toHaveBeenCalledTimes(1);
- expect(getSession.mock.calls[0][0].scopes).toEqual(
- new Set(['my-prefix/my-scope']),
+ expect(getSession).toHaveBeenCalledWith(
+ expect.objectContaining({
+ scopes: new Set(['my-prefix/my-scope']),
+ }),
);
});
@@ -82,7 +82,11 @@ describe('OAuth2', () => {
});
expect(await oauth2.getIdToken()).toBe('id-token');
- expect(getSession).toHaveBeenCalledTimes(1);
+ expect(getSession).toHaveBeenCalledWith(
+ expect.objectContaining({
+ scopes: new Set(['openid']),
+ }),
+ );
});
it('should get optional id token', async () => {
@@ -96,7 +100,11 @@ describe('OAuth2', () => {
});
expect(await oauth2.getIdToken({ optional: true })).toBe('id-token');
- expect(getSession).toHaveBeenCalledTimes(1);
+ expect(getSession).toHaveBeenCalledWith(
+ expect.objectContaining({
+ scopes: new Set(['openid']),
+ }),
+ );
});
it('should share popup closed errors', async () => {
diff --git a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts
index ad2d04cb56..6f88178415 100644
--- a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts
+++ b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts
@@ -153,7 +153,10 @@ export default class OAuth2
}
async getIdToken(options: AuthRequestOptions = {}) {
- const session = await this.sessionManager.getSession(options);
+ const session = await this.sessionManager.getSession({
+ ...options,
+ scopes: new Set(['openid']),
+ });
return session?.providerInfo.idToken ?? '';
}
diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md
index 4dbeaea64c..0eac19716d 100644
--- a/packages/core-components/CHANGELOG.md
+++ b/packages/core-components/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/core-components
+## 0.12.5-next.2
+
+### Patch Changes
+
+- 8bbf95b5507: Button labels in the sidebar (previously displayed in uppercase) will be displayed in the case that is provided without any transformations.
+ For example, a sidebar button with the label "Search" will appear as Search, "search" will appear as search, "SEARCH" will appear as SEARCH etc.
+ This can potentially affect any overriding styles previously applied to change the appearance of Button labels in the Sidebar.
+- fa004f66871: Use media queries to change layout instead of `isMobile` prop in `BackstagePage` component
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.12.5-next.1
### Patch Changes
diff --git a/packages/core-components/package.json b/packages/core-components/package.json
index 47f882d2cc..9630d7d706 100644
--- a/packages/core-components/package.json
+++ b/packages/core-components/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-components",
"description": "Core components used by Backstage plugins and apps",
- "version": "0.12.5-next.1",
+ "version": "0.12.5-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md
index 278d8d6d02..1001c01e52 100644
--- a/packages/core-plugin-api/CHANGELOG.md
+++ b/packages/core-plugin-api/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/core-plugin-api
+## 1.5.0-next.2
+
+### Minor Changes
+
+- ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7-next.0
+
## 1.4.1-next.1
### Patch Changes
diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md
index 4887f0b7f2..eabd300fc6 100644
--- a/packages/core-plugin-api/api-report.md
+++ b/packages/core-plugin-api/api-report.md
@@ -482,7 +482,11 @@ export const githubAuthApiRef: ApiRef<
// @public
export const gitlabAuthApiRef: ApiRef<
- OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionApi
+ OAuthApi &
+ OpenIdConnectApi &
+ ProfileInfoApi &
+ BackstageIdentityApi &
+ SessionApi
>;
// @public
diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json
index e765762a8a..335f0f0efd 100644
--- a/packages/core-plugin-api/package.json
+++ b/packages/core-plugin-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-plugin-api",
"description": "Core API used by Backstage plugins",
- "version": "1.4.1-next.1",
+ "version": "1.5.0-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/packages/core-plugin-api/src/apis/definitions/auth.ts b/packages/core-plugin-api/src/apis/definitions/auth.ts
index 43597639b6..62d0d5c810 100644
--- a/packages/core-plugin-api/src/apis/definitions/auth.ts
+++ b/packages/core-plugin-api/src/apis/definitions/auth.ts
@@ -357,7 +357,11 @@ export const oktaAuthApiRef: ApiRef<
* for a full list of supported scopes.
*/
export const gitlabAuthApiRef: ApiRef<
- OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionApi
+ OAuthApi &
+ OpenIdConnectApi &
+ ProfileInfoApi &
+ BackstageIdentityApi &
+ SessionApi
> = createApiRef({
id: 'core.auth.gitlab',
});
diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md
index 3a9a28e3ac..b17da7ba7b 100644
--- a/packages/create-app/CHANGELOG.md
+++ b/packages/create-app/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/create-app
+## 0.4.38-next.2
+
+### Patch Changes
+
+- Bumped create-app version.
+
## 0.4.38-next.1
### Patch Changes
diff --git a/packages/create-app/package.json b/packages/create-app/package.json
index ef569aee6b..4097e3bd57 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.4.38-next.1",
+ "version": "0.4.38-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/packages/create-app/templates/default-app/packages/app/.eslintignore b/packages/create-app/templates/default-app/packages/app/.eslintignore
new file mode 100644
index 0000000000..a48cf0de7a
--- /dev/null
+++ b/packages/create-app/templates/default-app/packages/app/.eslintignore
@@ -0,0 +1 @@
+public
diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md
index abfd8997f3..85a0c81ee7 100644
--- a/packages/dev-utils/CHANGELOG.md
+++ b/packages/dev-utils/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/dev-utils
+## 1.0.13-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
## 1.0.13-next.1
### Patch Changes
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index 119564ceae..d4f120b359 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.13-next.1",
+ "version": "1.0.13-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 9829e00e7f..7c3dcdbc36 100644
--- a/packages/e2e-test/CHANGELOG.md
+++ b/packages/e2e-test/CHANGELOG.md
@@ -1,5 +1,12 @@
# e2e-test
+## 0.2.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.4.38-next.2
+
## 0.2.1-next.1
### Patch Changes
diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json
index ecc377c6e2..f8c6f815e8 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.1-next.1",
+ "version": "0.2.1-next.2",
"private": true,
"backstage": {
"role": "cli"
diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md
index b1d72eec52..028c939822 100644
--- a/packages/integration-react/CHANGELOG.md
+++ b/packages/integration-react/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/integration-react
+## 1.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.1.11-next.1
### Patch Changes
diff --git a/packages/integration-react/api-report.md b/packages/integration-react/api-report.md
index 5b0c9d6174..3af0704990 100644
--- a/packages/integration-react/api-report.md
+++ b/packages/integration-react/api-report.md
@@ -23,7 +23,11 @@ export class ScmAuth implements ScmAuthApi {
ScmAuthApi,
{
github: OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionApi;
- gitlab: OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionApi;
+ gitlab: OAuthApi &
+ OpenIdConnectApi &
+ ProfileInfoApi &
+ BackstageIdentityApi &
+ SessionApi;
azure: OAuthApi &
OpenIdConnectApi &
ProfileInfoApi &
diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json
index 62e3234439..119a8683d6 100644
--- a/packages/integration-react/package.json
+++ b/packages/integration-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration-react",
"description": "Frontend package for managing integrations towards external systems",
- "version": "1.1.11-next.1",
+ "version": "1.1.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md
index a350735be4..2d2b669e38 100644
--- a/packages/techdocs-cli-embedded-app/CHANGELOG.md
+++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md
@@ -1,5 +1,22 @@
# techdocs-cli-embedded-app
+## 0.2.80-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/app-defaults@1.2.1-next.2
+ - @backstage/cli@0.22.4-next.1
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.80-next.1
### Patch Changes
diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json
index cc5d64e234..2cbb1aabc8 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.80-next.1",
+ "version": "0.2.80-next.2",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md
index bddbd4a2d0..facd967e90 100644
--- a/packages/techdocs-cli/CHANGELOG.md
+++ b/packages/techdocs-cli/CHANGELOG.md
@@ -1,5 +1,14 @@
# @techdocs/cli
+## 1.4.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.4.0-next.1
### Minor Changes
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index 169ef04a47..e8d9277871 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.0-next.1",
+ "version": "1.4.0-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md
index c5a30b5629..e521e9af91 100644
--- a/packages/test-utils/CHANGELOG.md
+++ b/packages/test-utils/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/test-utils
+## 1.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.2.6-next.1
### Patch Changes
diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json
index e43ca2a8b3..59ec2ce989 100644
--- a/packages/test-utils/package.json
+++ b/packages/test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/test-utils",
"description": "Utilities to test Backstage plugins and apps.",
- "version": "1.2.6-next.1",
+ "version": "1.2.6-next.2",
"publishConfig": {
"access": "public"
},
diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md
index 6b96383f68..58b37f1731 100644
--- a/plugins/adr-backend/CHANGELOG.md
+++ b/plugins/adr-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-adr-backend
+## 0.3.1-next.2
+
+### Patch Changes
+
+- 2a73ded3861: Support MADR v3 format
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.3.1-next.1
### Patch Changes
diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json
index 452a58f4e5..f73bf159b0 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.1-next.1",
+ "version": "0.3.1-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 13e8ad37a2..a50f1a60d3 100644
--- a/plugins/adr/CHANGELOG.md
+++ b/plugins/adr/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-adr
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+
## 0.4.1-next.1
### Patch Changes
diff --git a/plugins/adr/package.json b/plugins/adr/package.json
index 0456e3961a..5e56c39638 100644
--- a/plugins/adr/package.json
+++ b/plugins/adr/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr",
- "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/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md
index a88cf895d0..bcbd88a755 100644
--- a/plugins/airbrake-backend/CHANGELOG.md
+++ b/plugins/airbrake-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-airbrake-backend
+## 0.2.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.16-next.1
### Patch Changes
diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json
index 0e5b160a86..52bd89e909 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.16-next.1",
+ "version": "0.2.16-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 406564d8cf..088bfbdcf9 100644
--- a/plugins/airbrake/CHANGELOG.md
+++ b/plugins/airbrake/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-airbrake
+## 0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/dev-utils@1.0.13-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
## 0.3.16-next.1
### Patch Changes
diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json
index 4c31a2b5e7..e577ee8862 100644
--- a/plugins/airbrake/package.json
+++ b/plugins/airbrake/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake",
- "version": "0.3.16-next.1",
+ "version": "0.3.16-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 48ce2bd75c..efde01c0b5 100644
--- a/plugins/allure/CHANGELOG.md
+++ b/plugins/allure/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-allure
+## 0.1.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.32-next.1
### Patch Changes
diff --git a/plugins/allure/package.json b/plugins/allure/package.json
index f6dcdda941..18bf52feab 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.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/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md
index c65f20cedd..e457b76bf8 100644
--- a/plugins/analytics-module-ga/CHANGELOG.md
+++ b/plugins/analytics-module-ga/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-analytics-module-ga
+## 0.1.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.27-next.1
### Patch Changes
diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json
index 722c34895e..b7152b1f69 100644
--- a/plugins/analytics-module-ga/package.json
+++ b/plugins/analytics-module-ga/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-analytics-module-ga",
- "version": "0.1.27-next.1",
+ "version": "0.1.27-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md
index 8fec434e37..acc474e6e3 100644
--- a/plugins/apache-airflow/CHANGELOG.md
+++ b/plugins/apache-airflow/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-apache-airflow
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json
index 87889f6c86..070cbc4136 100644
--- a/plugins/apache-airflow/package.json
+++ b/plugins/apache-airflow/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-apache-airflow",
- "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/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md
index 3966fa5ee8..56644c2322 100644
--- a/plugins/api-docs/CHANGELOG.md
+++ b/plugins/api-docs/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-api-docs
+## 0.9.1-next.2
+
+### Patch Changes
+
+- 8bc7dcec820: Fix dark theme Swagger's clear button font color.
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.9.1-next.1
### Patch Changes
diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json
index a3d14e7fa2..d7db6566f9 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.1-next.1",
+ "version": "0.9.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md
index 57b6934d5b..8e48be2ab8 100644
--- a/plugins/apollo-explorer/CHANGELOG.md
+++ b/plugins/apollo-explorer/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-apollo-explorer
+## 0.1.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.9-next.1
### Patch Changes
diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json
index 2aab81c0d3..0fcc315797 100644
--- a/plugins/apollo-explorer/package.json
+++ b/plugins/apollo-explorer/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-apollo-explorer",
- "version": "0.1.9-next.1",
+ "version": "0.1.9-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 784c2d23c4..79c8276eeb 100644
--- a/plugins/app-backend/CHANGELOG.md
+++ b/plugins/app-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-app-backend
+## 0.3.43-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.3.43-next.1
### Patch Changes
diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json
index 43152faca1..77804372d1 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.43-next.1",
+ "version": "0.3.43-next.2",
"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 97124b3a3e..a22b2e40ee 100644
--- a/plugins/auth-backend/CHANGELOG.md
+++ b/plugins/auth-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-auth-backend
+## 0.18.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.18.1-next.1
### Patch Changes
diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json
index f399028594..bcc62814ed 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.1-next.1",
+ "version": "0.18.1-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 71e17743b4..0e7bcefae2 100644
--- a/plugins/auth-node/CHANGELOG.md
+++ b/plugins/auth-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-auth-node
+## 0.2.12-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.12-next.1
### Patch Changes
diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json
index ffecaf44ba..093b23add9 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.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/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md
index bc92e8cdd4..a4a7492ffc 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.22-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.3.22-next.1
### Patch Changes
diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json
index dd46929944..1d921a468a 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.22-next.1",
+ "version": "0.3.22-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 3d82d3a0dd..b9fcc646b7 100644
--- a/plugins/azure-devops/CHANGELOG.md
+++ b/plugins/azure-devops/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-azure-devops
+## 0.2.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.7-next.1
### Patch Changes
diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json
index bec734c09b..f8bc46f422 100644
--- a/plugins/azure-devops/package.json
+++ b/plugins/azure-devops/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops",
- "version": "0.2.7-next.1",
+ "version": "0.2.7-next.2",
"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 439163b00d..9bc9b99388 100644
--- a/plugins/azure-sites-backend/CHANGELOG.md
+++ b/plugins/azure-sites-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-azure-sites-backend
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json
index e4a739d730..3cb7023933 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.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/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md
index 2bb6cfba96..1de9e7a804 100644
--- a/plugins/azure-sites/CHANGELOG.md
+++ b/plugins/azure-sites/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-azure-sites
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json
index 4c17e880ea..6daadf199a 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.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/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md
index b2e06a5a0e..837e71bcce 100644
--- a/plugins/badges-backend/CHANGELOG.md
+++ b/plugins/badges-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-badges-backend
+## 0.1.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.37-next.1
### Patch Changes
diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json
index 73d4930130..f570a47874 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.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/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md
index 0d4f78a5ba..567c3e81d6 100644
--- a/plugins/badges/CHANGELOG.md
+++ b/plugins/badges/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-badges
+## 0.2.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.40-next.1
### Patch Changes
diff --git a/plugins/badges/package.json b/plugins/badges/package.json
index ebed209962..7e817c024d 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.40-next.1",
+ "version": "0.2.40-next.2",
"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 4e579285b0..203c1ef67f 100644
--- a/plugins/bazaar-backend/CHANGELOG.md
+++ b/plugins/bazaar-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-bazaar-backend
+## 0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.6-next.1
### Patch Changes
diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json
index bac1f58a41..c9221e5c69 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.6-next.1",
+ "version": "0.2.6-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 d13b98ef23..57ba471000 100644
--- a/plugins/bazaar/CHANGELOG.md
+++ b/plugins/bazaar/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-bazaar
+## 0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/cli@0.22.4-next.1
+
## 0.2.6-next.1
### Patch Changes
diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json
index d1a3b435cb..6a2311004b 100644
--- a/plugins/bazaar/package.json
+++ b/plugins/bazaar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar",
- "version": "0.2.6-next.1",
+ "version": "0.2.6-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 856f77b655..1a9d86268d 100644
--- a/plugins/bitrise/CHANGELOG.md
+++ b/plugins/bitrise/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-bitrise
+## 0.1.43-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.43-next.1
### Patch Changes
diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json
index ab34c9ef88..41cb8562b5 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.43-next.1",
+ "version": "0.1.43-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 76cd99d3c1..f4e268aae7 100644
--- a/plugins/catalog-backend-module-aws/CHANGELOG.md
+++ b/plugins/catalog-backend-module-aws/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-backend-module-aws
+## 0.1.17-next.2
+
+### Patch Changes
+
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.17-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-aws/alpha-api-report.md b/plugins/catalog-backend-module-aws/alpha-api-report.md
index 8781975085..f78f6a802d 100644
--- a/plugins/catalog-backend-module-aws/alpha-api-report.md
+++ b/plugins/catalog-backend-module-aws/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const awsS3EntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleAwsS3EntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-aws/api-report.md b/plugins/catalog-backend-module-aws/api-report.md
index 5086ec1ea7..491dbf497e 100644
--- a/plugins/catalog-backend-module-aws/api-report.md
+++ b/plugins/catalog-backend-module-aws/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 { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorParser } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorParser } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
import { Credentials } from 'aws-sdk';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json
index 18b210ae67..79271cf4de 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.1.17-next.1",
+ "version": "0.1.17-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -53,7 +53,6 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/plugin-kubernetes-common": "workspace:^",
diff --git a/plugins/catalog-backend-module-aws/src/alpha.ts b/plugins/catalog-backend-module-aws/src/alpha.ts
index 3ae30df0cb..c277a0a680 100644
--- a/plugins/catalog-backend-module-aws/src/alpha.ts
+++ b/plugins/catalog-backend-module-aws/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { awsS3EntityProviderCatalogModule } from './service/AwsS3EntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts
index 868a9535b4..1475da9e79 100644
--- a/plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { awsS3EntityProviderCatalogModule } from './AwsS3EntityProviderCatalogModule';
+import { catalogModuleAwsS3EntityProvider } from './catalogModuleAwsS3EntityProvider';
import { AwsS3EntityProvider } from '../providers';
-describe('awsS3EntityProviderCatalogModule', () => {
+describe('catalogModuleAwsS3EntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -66,7 +66,7 @@ describe('awsS3EntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [awsS3EntityProviderCatalogModule()],
+ features: [catalogModuleAwsS3EntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.ts b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.ts
index 5d4170ec1c..452284e526 100644
--- a/plugins/catalog-backend-module-aws/src/service/AwsS3EntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.ts
@@ -27,7 +27,7 @@ import { AwsS3EntityProvider } from '../providers';
*
* @alpha
*/
-export const awsS3EntityProviderCatalogModule = createBackendModule({
+export const catalogModuleAwsS3EntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'awsS3EntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-aws/src/module/index.ts b/plugins/catalog-backend-module-aws/src/module/index.ts
new file mode 100644
index 0000000000..5644c034ea
--- /dev/null
+++ b/plugins/catalog-backend-module-aws/src/module/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 { catalogModuleAwsS3EntityProvider } from './catalogModuleAwsS3EntityProvider';
diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts
index b6418ade03..05c85c7426 100644
--- a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts
+++ b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts
@@ -17,7 +17,7 @@
import {
CatalogProcessor,
CatalogProcessorEmit,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import {
ANNOTATION_KUBERNETES_API_SERVER,
diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts
index ecc42e69ea..c0ba1e3e98 100644
--- a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts
+++ b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts
@@ -20,7 +20,7 @@ import {
CatalogProcessor,
CatalogProcessorEmit,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import AWS, { Credentials, Organizations } from 'aws-sdk';
import { Account, ListAccountsResponse } from 'aws-sdk/clients/organizations';
diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.test.ts b/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.test.ts
index ef540da7f5..7818b21bd1 100644
--- a/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.test.ts
+++ b/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.test.ts
@@ -21,7 +21,7 @@ import {
CatalogProcessorEntityResult,
CatalogProcessorResult,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import {
S3Client,
ListObjectsV2Command,
diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.ts
index 072c3d8384..d6722d046e 100644
--- a/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.ts
+++ b/plugins/catalog-backend-module-aws/src/processors/AwsS3DiscoveryProcessor.ts
@@ -21,7 +21,7 @@ import {
CatalogProcessorEmit,
CatalogProcessorParser,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import limiterFactory from 'p-limit';
diff --git a/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.test.ts b/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.test.ts
index 134a3c6338..821fb6d4f4 100644
--- a/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.test.ts
+++ b/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.test.ts
@@ -21,7 +21,7 @@ import {
TaskRunner,
} from '@backstage/backend-tasks';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { AwsS3EntityProvider } from './AwsS3EntityProvider';
import aws from 'aws-sdk';
import AWSMock from 'aws-sdk-mock';
diff --git a/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.ts b/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.ts
index 5e24d4dc13..8212f9279a 100644
--- a/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.ts
+++ b/plugins/catalog-backend-module-aws/src/providers/AwsS3EntityProvider.ts
@@ -21,7 +21,7 @@ import {
EntityProvider,
EntityProviderConnection,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { AwsCredentials } from '../credentials/AwsCredentials';
import { readAwsS3Configs } from './config';
diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md
index 1dd3f48c2d..86566d383f 100644
--- a/plugins/catalog-backend-module-azure/CHANGELOG.md
+++ b/plugins/catalog-backend-module-azure/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-azure
+## 0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-azure/alpha-api-report.md b/plugins/catalog-backend-module-azure/alpha-api-report.md
index 486aac7775..66551a2856 100644
--- a/plugins/catalog-backend-module-azure/alpha-api-report.md
+++ b/plugins/catalog-backend-module-azure/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const azureDevOpsEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleAzureDevOpsEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-azure/api-report.md b/plugins/catalog-backend-module-azure/api-report.md
index 8fb7edeb53..a1b9d706a9 100644
--- a/plugins/catalog-backend-module-azure/api-report.md
+++ b/plugins/catalog-backend-module-azure/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 { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { ScmIntegrationRegistry } from '@backstage/integration';
diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json
index c9a8d4b921..afe85243db 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.14-next.1",
+ "version": "0.1.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -52,7 +52,6 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"lodash": "^4.17.21",
diff --git a/plugins/catalog-backend-module-azure/src/alpha.ts b/plugins/catalog-backend-module-azure/src/alpha.ts
index cc3c4a83af..c277a0a680 100644
--- a/plugins/catalog-backend-module-azure/src/alpha.ts
+++ b/plugins/catalog-backend-module-azure/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { azureDevOpsEntityProviderCatalogModule } from './service/AzureDevOpsEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts
index a8e526e871..fa3b3d865e 100644
--- a/plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { azureDevOpsEntityProviderCatalogModule } from './AzureDevOpsEntityProviderCatalogModule';
+import { catalogModuleAzureDevOpsEntityProvider } from './catalogModuleAzureDevOpsEntityProvider';
import { AzureDevOpsEntityProvider } from '../providers';
-describe('azureDevOpsEntityProviderCatalogModule', () => {
+describe('catalogModuleAzureDevOpsEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -69,7 +69,7 @@ describe('azureDevOpsEntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [azureDevOpsEntityProviderCatalogModule()],
+ features: [catalogModuleAzureDevOpsEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.ts
index 3fc1ddf3a4..ec8b6441ba 100644
--- a/plugins/catalog-backend-module-azure/src/service/AzureDevOpsEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.ts
@@ -27,7 +27,7 @@ import { AzureDevOpsEntityProvider } from '../providers';
*
* @alpha
*/
-export const azureDevOpsEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleAzureDevOpsEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'azureDevOpsEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-azure/src/module/index.ts b/plugins/catalog-backend-module-azure/src/module/index.ts
new file mode 100644
index 0000000000..cfa8c78548
--- /dev/null
+++ b/plugins/catalog-backend-module-azure/src/module/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 { catalogModuleAzureDevOpsEntityProvider } from './catalogModuleAzureDevOpsEntityProvider';
diff --git a/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.test.ts
index 38df737179..0a1ec1e3cf 100644
--- a/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.test.ts
+++ b/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.test.ts
@@ -16,7 +16,7 @@
import { getVoidLogger } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import {
AzureDevOpsDiscoveryProcessor,
parseUrl,
diff --git a/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts b/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts
index 8893d5d42d..fde59046ef 100644
--- a/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts
+++ b/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts
@@ -24,7 +24,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { codeSearch } from '../lib';
diff --git a/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.test.ts b/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.test.ts
index dff1164899..23a668d60b 100644
--- a/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.test.ts
@@ -21,7 +21,7 @@ import {
TaskRunner,
} from '@backstage/backend-tasks';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { CodeSearchResultItem } from '../lib';
import { AzureDevOpsEntityProvider } from './AzureDevOpsEntityProvider';
import { codeSearch } from '../lib';
diff --git a/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts b/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts
index 788b9c2f05..89572286a1 100644
--- a/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts
+++ b/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts
@@ -22,7 +22,7 @@ import {
EntityProviderConnection,
LocationSpec,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { readAzureDevOpsConfigs } from './config';
import { Logger } from 'winston';
import { AzureDevOpsConfig } from './types';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
index 6992b44c87..b1de810710 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-backend-module-bitbucket-cloud
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.10-next.1
### Patch Changes
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 77b4b77410..a5d0ffc665 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const bitbucketCloudEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleBitbucketCloudEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/api-report.md b/plugins/catalog-backend-module-bitbucket-cloud/api-report.md
index 456ea62dd3..22eeddea3a 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/api-report.md
@@ -5,8 +5,8 @@
```ts
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { EventParams } from '@backstage/plugin-events-node';
import { Events } from '@backstage/plugin-bitbucket-cloud-common';
import { EventSubscriber } from '@backstage/plugin-events-node';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json
index 96922c7a8c..8ed58f0333 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.10-next.1",
+ "version": "0.1.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -53,7 +53,6 @@
"@backstage/config": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-bitbucket-cloud-common": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/plugin-events-node": "workspace:^",
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/alpha.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/alpha.ts
index e949dcb894..c277a0a680 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/alpha.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { bitbucketCloudEntityProviderCatalogModule } from './service/BitbucketCloudEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/index.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/index.ts
index 1c15ad4e8f..d730d8618d 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/index.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/index.ts
@@ -20,4 +20,4 @@
* @packageDocumentation
*/
-export { BitbucketCloudEntityProvider } from './BitbucketCloudEntityProvider';
+export { BitbucketCloudEntityProvider } from './providers/BitbucketCloudEntityProvider';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts
similarity index 90%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts
index 630c18b134..a34eae3750 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts
@@ -23,10 +23,10 @@ import { startTestBackend, mockServices } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
import { Duration } from 'luxon';
-import { bitbucketCloudEntityProviderCatalogModule } from './BitbucketCloudEntityProviderCatalogModule';
-import { BitbucketCloudEntityProvider } from '../BitbucketCloudEntityProvider';
+import { catalogModuleBitbucketCloudEntityProvider } from './catalogModuleBitbucketCloudEntityProvider';
+import { BitbucketCloudEntityProvider } from '../providers/BitbucketCloudEntityProvider';
-describe('bitbucketCloudEntityProviderCatalogModule', () => {
+describe('catalogModuleBitbucketCloudEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let addedSubscribers: Array | undefined;
@@ -73,7 +73,7 @@ describe('bitbucketCloudEntityProviderCatalogModule', () => {
}),
[coreServices.scheduler, scheduler],
],
- features: [bitbucketCloudEntityProviderCatalogModule()],
+ features: [catalogModuleBitbucketCloudEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.ts
similarity index 93%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.ts
index a95d99ceef..7c4f4a30b2 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/service/BitbucketCloudEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.ts
@@ -24,12 +24,12 @@ import {
catalogServiceRef,
} from '@backstage/plugin-catalog-node/alpha';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { BitbucketCloudEntityProvider } from '../BitbucketCloudEntityProvider';
+import { BitbucketCloudEntityProvider } from '../providers/BitbucketCloudEntityProvider';
/**
* @alpha
*/
-export const bitbucketCloudEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleBitbucketCloudEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'bitbucketCloudEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/module/index.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/module/index.ts
new file mode 100644
index 0000000000..f9654971be
--- /dev/null
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/module/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 { catalogModuleBitbucketCloudEntityProvider } from './catalogModuleBitbucketCloudEntityProvider';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts
similarity index 99%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.test.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts
index 367e95b99b..727b7fd40c 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts
@@ -27,7 +27,7 @@ import { ConfigReader } from '@backstage/config';
import {
EntityProviderConnection,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Events } from '@backstage/plugin-bitbucket-cloud-common';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts
similarity index 99%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts
index a139bd7d8d..11c872cf7b 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProvider.ts
+++ b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts
@@ -33,7 +33,7 @@ import {
EntityProvider,
EntityProviderConnection,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { EventParams, EventSubscriber } from '@backstage/plugin-events-node';
import {
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProviderConfig.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProviderConfig.test.ts
similarity index 100%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProviderConfig.test.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProviderConfig.test.ts
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProviderConfig.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProviderConfig.ts
similarity index 100%
rename from plugins/catalog-backend-module-bitbucket-cloud/src/BitbucketCloudEntityProviderConfig.ts
rename to plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProviderConfig.ts
diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
index 3dbe16771d..00341a3870 100644
--- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-bitbucket-server
+## 0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.8-next.1
### Patch Changes
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 3177828f51..2cc53a3c16 100644
--- a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const bitbucketServerEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleBitbucketServerEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-bitbucket-server/api-report.md b/plugins/catalog-backend-module-bitbucket-server/api-report.md
index 6c840883af..467294f3b0 100644
--- a/plugins/catalog-backend-module-bitbucket-server/api-report.md
+++ b/plugins/catalog-backend-module-bitbucket-server/api-report.md
@@ -6,9 +6,9 @@
import { BitbucketServerIntegrationConfig } from '@backstage/integration';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { Response as Response_2 } from 'node-fetch';
diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json
index 3c58377976..433d4bc907 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.8-next.1",
+ "version": "0.1.8-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -51,7 +51,6 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@types/node-fetch": "^2.5.12",
"node-fetch": "^2.6.7",
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/alpha.ts b/plugins/catalog-backend-module-bitbucket-server/src/alpha.ts
index d6227c29f1..c277a0a680 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/alpha.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { bitbucketServerEntityProviderCatalogModule } from './service/BitbucketServerEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts
index bdd7209364..d17b4a4c96 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts
@@ -23,11 +23,11 @@ import {
} from '@backstage/backend-tasks';
import { startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
-import { bitbucketServerEntityProviderCatalogModule } from './BitbucketServerEntityProviderCatalogModule';
+import { catalogModuleBitbucketServerEntityProvider } from './catalogModuleBitbucketServerEntityProvider';
import { Duration } from 'luxon';
import { BitbucketServerEntityProvider } from '../providers';
-describe('bitbucketServerEntityProviderCatalogModule', () => {
+describe('catalogModuleBitbucketServerEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -73,7 +73,7 @@ describe('bitbucketServerEntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [bitbucketServerEntityProviderCatalogModule()],
+ features: [catalogModuleBitbucketServerEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.ts
index deab47c9e9..354bce7d6d 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/service/BitbucketServerEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.ts
@@ -25,7 +25,7 @@ import { BitbucketServerEntityProvider } from '../providers';
/**
* @alpha
*/
-export const bitbucketServerEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleBitbucketServerEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'bitbucketServerEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/module/index.ts b/plugins/catalog-backend-module-bitbucket-server/src/module/index.ts
new file mode 100644
index 0000000000..160f099ae0
--- /dev/null
+++ b/plugins/catalog-backend-module-bitbucket-server/src/module/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 { catalogModuleBitbucketServerEntityProvider } from './catalogModuleBitbucketServerEntityProvider';
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts
index 20299e3452..bc3fa2ae23 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.test.ts
@@ -22,7 +22,7 @@ import {
} from '@backstage/backend-tasks';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { BitbucketServerEntityProvider } from './BitbucketServerEntityProvider';
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts
index 2ecdd79019..fd2b3e3959 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerEntityProvider.ts
@@ -25,7 +25,7 @@ import {
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import * as uuid from 'uuid';
import { BitbucketServerClient, paginated } from '../lib';
diff --git a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts
index 7f6dae8872..e5d48f92b8 100644
--- a/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts
+++ b/plugins/catalog-backend-module-bitbucket-server/src/providers/BitbucketServerLocationParser.ts
@@ -17,7 +17,7 @@
import {
LocationSpec,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Entity } from '@backstage/catalog-model';
import { Logger } from 'winston';
import { BitbucketServerClient } from '../lib';
diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
index 3ede5969ae..eef6da4c0e 100644
--- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-backend-module-bitbucket
+## 0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.10-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket/api-report.md b/plugins/catalog-backend-module-bitbucket/api-report.md
index 053c6040a4..30b2a89826 100644
--- a/plugins/catalog-backend-module-bitbucket/api-report.md
+++ b/plugins/catalog-backend-module-bitbucket/api-report.md
@@ -4,11 +4,11 @@
```ts
import { BitbucketIntegration } from '@backstage/integration';
-import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorResult } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorResult } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { ScmIntegrationRegistry } from '@backstage/integration';
diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json
index 39b5399e21..79fbbe08c4 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.10-next.1",
+ "version": "0.2.10-next.2",
"deprecated": true,
"main": "src/index.ts",
"types": "src/index.ts",
@@ -39,7 +39,7 @@
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-bitbucket-cloud-common": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
+ "@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"lodash": "^4.17.21",
"node-fetch": "^2.6.7",
diff --git a/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.test.ts
index f7a56ebc8f..262fb4e6c4 100644
--- a/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.test.ts
+++ b/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.test.ts
@@ -18,10 +18,7 @@ import { getVoidLogger } from '@backstage/backend-common';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { Models } from '@backstage/plugin-bitbucket-cloud-common';
-import {
- LocationSpec,
- processingResult,
-} from '@backstage/plugin-catalog-backend';
+import { LocationSpec, processingResult } from '@backstage/plugin-catalog-node';
import { RequestHandler, rest } from 'msw';
import { setupServer } from 'msw/node';
import { BitbucketDiscoveryProcessor } from './BitbucketDiscoveryProcessor';
diff --git a/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.ts b/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.ts
index 78aa3eacfd..3f25d6ed7b 100644
--- a/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.ts
+++ b/plugins/catalog-backend-module-bitbucket/src/BitbucketDiscoveryProcessor.ts
@@ -28,7 +28,7 @@ import {
CatalogProcessor,
CatalogProcessorEmit,
LocationSpec,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import {
BitbucketRepository,
diff --git a/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.test.ts b/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.test.ts
index 41f467ebaa..478ccd7c52 100644
--- a/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.test.ts
+++ b/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.test.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { processingResult } from '@backstage/plugin-catalog-backend';
+import { processingResult } from '@backstage/plugin-catalog-node';
import { defaultRepositoryParser } from './BitbucketRepositoryParser';
describe('BitbucketRepositoryParser', () => {
diff --git a/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.ts b/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.ts
index 97225e2579..aa973f87c2 100644
--- a/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.ts
+++ b/plugins/catalog-backend-module-bitbucket/src/lib/BitbucketRepositoryParser.ts
@@ -18,7 +18,7 @@ import { BitbucketIntegration } from '@backstage/integration';
import {
CatalogProcessorResult,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
/**
diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
index 7cd5eb2bb5..07ab61c8c4 100644
--- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-gerrit
+## 0.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.11-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-gerrit/alpha-api-report.md b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
index 03f5d099b9..5aee61f28a 100644
--- a/plugins/catalog-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gerrit/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha (undocumented)
-export const gerritEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleGerritEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gerrit/api-report.md b/plugins/catalog-backend-module-gerrit/api-report.md
index 1dee786da1..f64e697555 100644
--- a/plugins/catalog-backend-module-gerrit/api-report.md
+++ b/plugins/catalog-backend-module-gerrit/api-report.md
@@ -4,8 +4,8 @@
```ts
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json
index 357b5416bf..af9727cbf9 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.11-next.1",
+ "version": "0.1.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -48,7 +48,6 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"fs-extra": "10.1.0",
"node-fetch": "^2.6.7",
diff --git a/plugins/catalog-backend-module-gerrit/src/alpha.ts b/plugins/catalog-backend-module-gerrit/src/alpha.ts
index 8b03d9312a..c277a0a680 100644
--- a/plugins/catalog-backend-module-gerrit/src/alpha.ts
+++ b/plugins/catalog-backend-module-gerrit/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { gerritEntityProviderCatalogModule } from './service/GerritEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts
similarity index 93%
rename from plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts
index 51c1749c66..0511aa7b4c 100644
--- a/plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { gerritEntityProviderCatalogModule } from './GerritEntityProviderCatalogModule';
+import { catalogModuleGerritEntityProvider } from './catalogModuleGerritEntityProvider';
import { GerritEntityProvider } from '../providers/GerritEntityProvider';
-describe('gerritEntityProviderCatalogModule', () => {
+describe('catalogModuleGerritEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -79,7 +79,7 @@ describe('gerritEntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [gerritEntityProviderCatalogModule()],
+ features: [catalogModuleGerritEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.ts
index 782c724094..814259fb40 100644
--- a/plugins/catalog-backend-module-gerrit/src/service/GerritEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.ts
@@ -25,7 +25,7 @@ import { GerritEntityProvider } from '../providers/GerritEntityProvider';
/**
* @alpha
*/
-export const gerritEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleGerritEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'gerritEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-gerrit/src/module/index.ts b/plugins/catalog-backend-module-gerrit/src/module/index.ts
new file mode 100644
index 0000000000..95760538e7
--- /dev/null
+++ b/plugins/catalog-backend-module-gerrit/src/module/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 { catalogModuleGerritEntityProvider } from './catalogModuleGerritEntityProvider';
diff --git a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts
index 5d258ee94f..9892b60a21 100644
--- a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts
@@ -22,7 +22,7 @@ import {
} from '@backstage/backend-tasks';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import fs from 'fs-extra';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
diff --git a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.ts b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.ts
index 986f8ae60c..76cccaf37b 100644
--- a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.ts
+++ b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.ts
@@ -22,7 +22,7 @@ import {
EntityProviderConnection,
LocationSpec,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import fetch, { Response } from 'node-fetch';
import {
GerritIntegration,
diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md
index c7e9e756ba..1e0c455391 100644
--- a/plugins/catalog-backend-module-github/CHANGELOG.md
+++ b/plugins/catalog-backend-module-github/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-catalog-backend-module-github
+## 0.2.6-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.6-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-github/alpha-api-report.md b/plugins/catalog-backend-module-github/alpha-api-report.md
index eb13ec4558..0d4e16b4ea 100644
--- a/plugins/catalog-backend-module-github/alpha-api-report.md
+++ b/plugins/catalog-backend-module-github/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const githubEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleGithubEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md
index c732740997..23faa31495 100644
--- a/plugins/catalog-backend-module-github/api-report.md
+++ b/plugins/catalog-backend-module-github/api-report.md
@@ -4,19 +4,19 @@
```ts
import { AnalyzeOptions } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { EventParams } from '@backstage/plugin-events-node';
import { EventSubscriber } from '@backstage/plugin-events-node';
import { GithubCredentialsProvider } from '@backstage/integration';
import { GithubIntegrationConfig } from '@backstage/integration';
import { graphql } from '@octokit/graphql';
import { GroupEntity } from '@backstage/catalog-model';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json
index 733c3e8dc3..fe9183917e 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.2.6-next.1",
+ "version": "0.2.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-github/src/alpha.ts b/plugins/catalog-backend-module-github/src/alpha.ts
index 1b83eead82..c277a0a680 100644
--- a/plugins/catalog-backend-module-github/src/alpha.ts
+++ b/plugins/catalog-backend-module-github/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { githubEntityProviderCatalogModule } from './service/GithubEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-github/src/deprecated.ts b/plugins/catalog-backend-module-github/src/deprecated.ts
index d094bb4031..e27a856358 100644
--- a/plugins/catalog-backend-module-github/src/deprecated.ts
+++ b/plugins/catalog-backend-module-github/src/deprecated.ts
@@ -19,7 +19,7 @@ import { Config } from '@backstage/config';
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { GithubEntityProvider } from './providers/GithubEntityProvider';
import {
diff --git a/plugins/catalog-backend-module-github/src/lib/github.ts b/plugins/catalog-backend-module-github/src/lib/github.ts
index ae6e14fc23..30e7bd83d4 100644
--- a/plugins/catalog-backend-module-github/src/lib/github.ts
+++ b/plugins/catalog-backend-module-github/src/lib/github.ts
@@ -26,7 +26,7 @@ import {
} from './defaultTransformers';
import { withLocations } from '../providers/GithubOrgEntityProvider';
-import { DeferredEntity } from '@backstage/plugin-catalog-backend';
+import { DeferredEntity } from '@backstage/plugin-catalog-node';
// Graphql types
@@ -195,7 +195,7 @@ export async function getOrganizationTeams(
parentTeam { slug }
members(first: 100, membership: IMMEDIATE) {
pageInfo { hasNextPage }
- nodes {
+ nodes {
avatarUrl,
bio,
email,
diff --git a/plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts
index 7c08e8947d..82a5552dba 100644
--- a/plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { githubEntityProviderCatalogModule } from './GithubEntityProviderCatalogModule';
+import { catalogModuleGithubEntityProvider } from './catalogModuleGithubEntityProvider';
import { GithubEntityProvider } from '../providers/GithubEntityProvider';
-describe('githubEntityProviderCatalogModule', () => {
+describe('catalogModuleGithubEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -66,7 +66,7 @@ describe('githubEntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [githubEntityProviderCatalogModule()],
+ features: [catalogModuleGithubEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.ts
index 246f700248..997da3023b 100644
--- a/plugins/catalog-backend-module-github/src/service/GithubEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.ts
@@ -27,7 +27,7 @@ import { GithubEntityProvider } from '../providers/GithubEntityProvider';
*
* @alpha
*/
-export const githubEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleGithubEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'githubEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-github/src/module/index.ts b/plugins/catalog-backend-module-github/src/module/index.ts
new file mode 100644
index 0000000000..640a633093
--- /dev/null
+++ b/plugins/catalog-backend-module-github/src/module/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 { catalogModuleGithubEntityProvider } from './catalogModuleGithubEntityProvider';
diff --git a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts
index f30007c677..f008c88dbe 100644
--- a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts
+++ b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.test.ts
@@ -20,7 +20,7 @@ import {
DefaultGithubCredentialsProvider,
ScmIntegrations,
} from '@backstage/integration';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { GithubDiscoveryProcessor, parseUrl } from './GithubDiscoveryProcessor';
import { getOrganizationRepositories } from '../lib';
diff --git a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts
index c6733df13b..0907b8ac8d 100644
--- a/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts
+++ b/plugins/catalog-backend-module-github/src/processors/GithubDiscoveryProcessor.ts
@@ -26,7 +26,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import { Logger } from 'winston';
import { getOrganizationRepositories } from '../lib';
diff --git a/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts
index 7777da6b1b..9709977010 100644
--- a/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-github/src/processors/GithubMultiOrgReaderProcessor.ts
@@ -34,7 +34,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import { Logger } from 'winston';
import {
diff --git a/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts
index ce81e2cf42..195214d561 100644
--- a/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts
+++ b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.test.ts
@@ -20,7 +20,7 @@ import {
GithubCredentialsProvider,
ScmIntegrations,
} from '@backstage/integration';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import { GithubOrgReaderProcessor } from './GithubOrgReaderProcessor';
diff --git a/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts
index 90c168ccf4..654deb3079 100644
--- a/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-github/src/processors/GithubOrgReaderProcessor.ts
@@ -27,7 +27,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import { Logger } from 'winston';
import {
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts
index 2be5df09fe..21e6a46fbf 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.test.ts
@@ -21,7 +21,7 @@ import {
TaskRunner,
} from '@backstage/backend-tasks';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GithubEntityProvider } from './GithubEntityProvider';
import * as helpers from '../lib/github';
import { EventParams } from '@backstage/plugin-events-node';
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts
index 3c6fd43bd0..839f40e91a 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts
@@ -28,7 +28,7 @@ import {
EntityProvider,
EntityProviderConnection,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
index 2711425998..ff42e42718 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts
@@ -20,7 +20,7 @@ import {
GithubCredentialsProvider,
GithubIntegrationConfig,
} from '@backstage/integration';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import { EventParams } from '@backstage/plugin-events-node';
import {
diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
index 2a888e6f91..02e225c938 100644
--- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
+++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts
@@ -33,7 +33,7 @@ import { EventSubscriber } from '@backstage/plugin-events-node';
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { graphql } from '@octokit/graphql';
import {
OrganizationEvent,
diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
index c7e0a592ca..491d972754 100644
--- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-backend-module-gitlab
+## 0.1.14-next.2
+
+### Patch Changes
+
+- be129f8f3cd: filter gitlab groups by prefix
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-gitlab/alpha-api-report.md b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
index 8912b4a7b2..f14b41d6c5 100644
--- a/plugins/catalog-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/catalog-backend-module-gitlab/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const gitlabDiscoveryEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleGitlabDiscoveryEntityProvider: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/catalog-backend-module-gitlab/api-report.md b/plugins/catalog-backend-module-gitlab/api-report.md
index 68ea45169f..2596b5c99a 100644
--- a/plugins/catalog-backend-module-gitlab/api-report.md
+++ b/plugins/catalog-backend-module-gitlab/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 { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json
index f2042e4f8e..ed07ea842c 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.1.14-next.1",
+ "version": "0.1.14-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -52,7 +52,6 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"lodash": "^4.17.21",
diff --git a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts
index 385ce59bfb..6333184ea8 100644
--- a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.test.ts
@@ -17,7 +17,7 @@
import { getVoidLogger } from '@backstage/backend-common';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { rest, RestRequest } from 'msw';
import { setupServer } from 'msw/node';
import { GitLabDiscoveryProcessor, parseUrl } from './GitLabDiscoveryProcessor';
diff --git a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.ts b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.ts
index 756093bc56..9f2cd9b17a 100644
--- a/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.ts
+++ b/plugins/catalog-backend-module-gitlab/src/GitLabDiscoveryProcessor.ts
@@ -29,7 +29,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { GitLabClient, GitLabProject, paginated } from './lib';
diff --git a/plugins/catalog-backend-module-gitlab/src/alpha.ts b/plugins/catalog-backend-module-gitlab/src/alpha.ts
index 883ffc13c4..ace970e3aa 100644
--- a/plugins/catalog-backend-module-gitlab/src/alpha.ts
+++ b/plugins/catalog-backend-module-gitlab/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { gitlabDiscoveryEntityProviderCatalogModule } from './service/GitlabDiscoveryEntityProviderCatalogModule';
+export { catalogModuleGitlabDiscoveryEntityProvider } from './module/catalogModuleGitlabDiscoveryEntityProvider';
diff --git a/plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts
index efb86e4223..7a3d0a0e0d 100644
--- a/plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { gitlabDiscoveryEntityProviderCatalogModule } from './GitlabDiscoveryEntityProviderCatalogModule';
+import { catalogModuleGitlabDiscoveryEntityProvider } from './catalogModuleGitlabDiscoveryEntityProvider';
import { GitlabDiscoveryEntityProvider } from '../providers';
-describe('gitlabDiscoveryEntityProviderCatalogModule', () => {
+describe('catalogModuleGitlabDiscoveryEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -78,7 +78,7 @@ describe('gitlabDiscoveryEntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [gitlabDiscoveryEntityProviderCatalogModule()],
+ features: [catalogModuleGitlabDiscoveryEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M'));
diff --git a/plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.ts
similarity index 96%
rename from plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.ts
index 0adf5b18f2..ffae233319 100644
--- a/plugins/catalog-backend-module-gitlab/src/service/GitlabDiscoveryEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.ts
@@ -27,7 +27,7 @@ import { GitlabDiscoveryEntityProvider } from '../providers';
*
* @alpha
*/
-export const gitlabDiscoveryEntityProviderCatalogModule = createBackendModule({
+export const catalogModuleGitlabDiscoveryEntityProvider = createBackendModule({
pluginId: 'catalog',
moduleId: 'gitlabDiscoveryEntityProvider',
register(env) {
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts
index ae19edc48c..42fa1b471c 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.test.ts
@@ -22,7 +22,7 @@ import {
} from '@backstage/backend-tasks';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { GitlabDiscoveryEntityProvider } from './GitlabDiscoveryEntityProvider';
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts
index f0d88c34f5..ece10ee8c6 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts
@@ -22,7 +22,7 @@ import {
EntityProviderConnection,
LocationSpec,
locationSpecToLocationEntity,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import * as uuid from 'uuid';
import { Logger } from 'winston';
import {
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
index cff215acd3..5a323a8dec 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
@@ -22,7 +22,7 @@ import {
} from '@backstage/backend-tasks';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { GitlabOrgDiscoveryEntityProvider } from './GitlabOrgDiscoveryEntityProvider';
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
index db1efac86d..acfa784c2e 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
@@ -20,7 +20,7 @@ import { GitLabIntegration, ScmIntegrations } from '@backstage/integration';
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import * as uuid from 'uuid';
import { Logger } from 'winston';
import {
diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
index ad4649ab7f..11393c6db2 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-incremental-ingestion
+## 0.3.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.3.0-next.1
### Minor Changes
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 ec9c59a4c4..b11ec43cf5 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md
@@ -8,7 +8,7 @@ import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-mod
import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion';
// @alpha
-export const incrementalIngestionEntityProviderCatalogModule: (options: {
+export const catalogModuleIncrementalIngestionEntityProvider: (options: {
providers: {
provider: IncrementalEntityProvider;
options: IncrementalEntityProviderOptions;
diff --git a/plugins/catalog-backend-module-incremental-ingestion/api-report.md b/plugins/catalog-backend-module-incremental-ingestion/api-report.md
index 167c07f70f..c2fad4576c 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/api-report.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/api-report.md
@@ -7,7 +7,7 @@
import { CatalogBuilder } from '@backstage/plugin-catalog-backend';
import type { Config } from '@backstage/config';
-import type { DeferredEntity } from '@backstage/plugin-catalog-backend';
+import type { DeferredEntity } from '@backstage/plugin-catalog-node';
import type { DurationObjectUnits } from 'luxon';
import { EventParams } from '@backstage/plugin-events-node';
import { EventSubscriber } from '@backstage/plugin-events-node';
diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json
index a88e3af1fa..5b2a534fcb 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.3.0-next.1",
+ "version": "0.3.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -69,8 +69,7 @@
"@backstage/backend-app-api": "workspace:^",
"@backstage/backend-defaults": "workspace:^",
"@backstage/backend-test-utils": "workspace:^",
- "@backstage/cli": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/cli": "workspace:^"
},
"files": [
"dist",
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts
index cf47942754..527d345706 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts
@@ -15,7 +15,7 @@
*/
import { Knex } from 'knex';
-import type { DeferredEntity } from '@backstage/plugin-catalog-backend';
+import type { DeferredEntity } from '@backstage/plugin-catalog-node';
import { stringifyEntityRef } from '@backstage/catalog-model';
import { Duration } from 'luxon';
import { v4 } from 'uuid';
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts
index 228c7a2505..13d5bfff71 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import type { DeferredEntity } from '@backstage/plugin-catalog-backend';
+import type { DeferredEntity } from '@backstage/plugin-catalog-node';
import { IterationEngine, IterationEngineOptions } from '../types';
import { IncrementalIngestionDatabaseManager } from '../database/IncrementalIngestionDatabaseManager';
import { performance } from 'perf_hooks';
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts
similarity index 91%
rename from plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts
index dbadf573a4..ef07b4cb10 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts
@@ -20,9 +20,9 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { IncrementalEntityProvider } from '../types';
-import { incrementalIngestionEntityProviderCatalogModule } from './incrementalIngestionEntityProviderCatalogModule';
+import { catalogModuleIncrementalIngestionEntityProvider } from './catalogModuleIncrementalIngestionEntityProvider';
-describe('bitbucketServerEntityProviderCatalogModule', () => {
+describe('catalogModuleIncrementalIngestionEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
const provider1: IncrementalEntityProvider = {
getProviderName: () => 'provider1',
@@ -57,7 +57,7 @@ describe('bitbucketServerEntityProviderCatalogModule', () => {
[coreServices.scheduler, scheduler],
],
features: [
- incrementalIngestionEntityProviderCatalogModule({
+ catalogModuleIncrementalIngestionEntityProvider({
providers: [
{
provider: provider1,
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts
similarity index 97%
rename from plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts
index 261768c142..19d5742b46 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/module/incrementalIngestionEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts
@@ -30,7 +30,7 @@ import { WrapperProviders } from './WrapperProviders';
*
* @alpha
*/
-export const incrementalIngestionEntityProviderCatalogModule =
+export const catalogModuleIncrementalIngestionEntityProvider =
createBackendModule(
(options: {
providers: Array<{
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts
index 577cf193e2..9fcee99e01 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { incrementalIngestionEntityProviderCatalogModule } from './incrementalIngestionEntityProviderCatalogModule';
+export { catalogModuleIncrementalIngestionEntityProvider } from './catalogModuleIncrementalIngestionEntityProvider';
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts
index f1b6bd1529..f94c988237 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts
@@ -25,7 +25,7 @@ import {
import { ConfigReader } from '@backstage/config';
import { catalogPlugin } from '@backstage/plugin-catalog-backend/alpha';
import { IncrementalEntityProvider } from '.';
-import { incrementalIngestionEntityProviderCatalogModule } from './alpha';
+import { catalogModuleIncrementalIngestionEntityProvider } from './alpha';
const provider: IncrementalEntityProvider = {
getProviderName: () => 'test-provider',
@@ -63,7 +63,7 @@ async function main() {
backend.add(catalogPlugin());
backend.add(
- incrementalIngestionEntityProviderCatalogModule({
+ catalogModuleIncrementalIngestionEntityProvider({
providers: [
{
provider: provider,
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts
index c8458be09b..59cdf32391 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/service/IncrementalCatalogBuilder.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import {
IncrementalEntityProvider,
IncrementalEntityProviderOptions,
diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/types.ts b/plugins/catalog-backend-module-incremental-ingestion/src/types.ts
index cd1e63b044..5f9d0489e6 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/src/types.ts
+++ b/plugins/catalog-backend-module-incremental-ingestion/src/types.ts
@@ -26,7 +26,7 @@ import type { Config } from '@backstage/config';
import type {
DeferredEntity,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { EventParams } from '@backstage/plugin-events-node';
import type { PermissionEvaluator } from '@backstage/plugin-permission-common';
import type { DurationObjectUnits } from 'luxon';
diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md
index 78614a4c31..5e176f09ba 100644
--- a/plugins/catalog-backend-module-ldap/CHANGELOG.md
+++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-catalog-backend-module-ldap
+## 0.5.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.5.10-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-ldap/api-report.md b/plugins/catalog-backend-module-ldap/api-report.md
index 9876c163e8..088e34fc34 100644
--- a/plugins/catalog-backend-module-ldap/api-report.md
+++ b/plugins/catalog-backend-module-ldap/api-report.md
@@ -3,15 +3,15 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Client } from 'ldapjs';
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GroupEntity } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/types';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { SearchEntry } from 'ldapjs';
import { SearchOptions } from 'ldapjs';
diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json
index eb8bbd1f97..06b33f1db2 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.10-next.1",
+ "version": "0.5.10-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -36,7 +36,7 @@
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
+ "@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"@types/ldapjs": "^2.2.0",
"ldapjs": "^2.2.0",
diff --git a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts
index 64d56cc8bc..811f451b26 100644
--- a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts
+++ b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts
@@ -24,7 +24,7 @@ import { Config } from '@backstage/config';
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { merge } from 'lodash';
import * as uuid from 'uuid';
import { Logger } from 'winston';
diff --git a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
index fcfdb43eb1..9c5442ca0c 100644
--- a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
@@ -29,7 +29,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
/**
* Extracts teams and users out of an LDAP server.
diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
index 0d1f93299f..dc1a32f25a 100644
--- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md
+++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-msgraph
+## 0.5.2-next.2
+
+### Patch Changes
+
+- 26eef93c547: Fixed msgraph catalog backend to use user.select option when fetching user from AzureAD
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.5.2-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
index ed30b83bc8..0fa093a1bc 100644
--- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md
+++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md
@@ -9,10 +9,10 @@ import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-modul
import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph';
// @alpha
-export const microsoftGraphOrgEntityProviderCatalogModule: () => BackendFeature;
+export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature;
// @alpha
-export interface MicrosoftGraphOrgEntityProviderCatalogModuleOptions {
+export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions {
groupTransformer?: GroupTransformer | Record;
organizationTransformer?:
| OrganizationTransformer
diff --git a/plugins/catalog-backend-module-msgraph/api-report.md b/plugins/catalog-backend-module-msgraph/api-report.md
index 10a4f405c0..bde8c06fbb 100644
--- a/plugins/catalog-backend-module-msgraph/api-report.md
+++ b/plugins/catalog-backend-module-msgraph/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 { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GroupEntity } from '@backstage/catalog-model';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json
index 369daa1c6b..f66151bbc4 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.2-next.1",
+ "version": "0.5.2-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -51,7 +51,6 @@
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@microsoft/microsoft-graph-types": "^2.6.0",
"@types/node-fetch": "^2.5.12",
diff --git a/plugins/catalog-backend-module-msgraph/src/alpha.ts b/plugins/catalog-backend-module-msgraph/src/alpha.ts
index 137808d881..c277a0a680 100644
--- a/plugins/catalog-backend-module-msgraph/src/alpha.ts
+++ b/plugins/catalog-backend-module-msgraph/src/alpha.ts
@@ -14,5 +14,4 @@
* limitations under the License.
*/
-export { microsoftGraphOrgEntityProviderCatalogModule } from './service/MicrosoftGraphOrgEntityProviderCatalogModule';
-export type { MicrosoftGraphOrgEntityProviderCatalogModuleOptions } from './service/MicrosoftGraphOrgEntityProviderCatalogModule';
+export * from './module';
diff --git a/plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.test.ts b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts
similarity index 92%
rename from plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.test.ts
rename to plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts
index 3763553162..3362c75c95 100644
--- a/plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.test.ts
+++ b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts
@@ -24,10 +24,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { Duration } from 'luxon';
-import { microsoftGraphOrgEntityProviderCatalogModule } from './MicrosoftGraphOrgEntityProviderCatalogModule';
+import { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider';
import { MicrosoftGraphOrgEntityProvider } from '../processors';
-describe('awsS3EntityProviderCatalogModule', () => {
+describe('catalogModuleMicrosoftGraphOrgEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
@@ -71,7 +71,7 @@ describe('awsS3EntityProviderCatalogModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [microsoftGraphOrgEntityProviderCatalogModule()],
+ features: [catalogModuleMicrosoftGraphOrgEntityProvider()],
});
expect(usedSchedule?.frequency).toEqual(Duration.fromISO('PT30M'));
diff --git a/plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.ts b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts
similarity index 91%
rename from plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.ts
rename to plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts
index 11be567045..7cd8b65f0b 100644
--- a/plugins/catalog-backend-module-msgraph/src/service/MicrosoftGraphOrgEntityProviderCatalogModule.ts
+++ b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts
@@ -28,11 +28,11 @@ import {
import { MicrosoftGraphOrgEntityProvider } from '../processors';
/**
- * Options for {@link microsoftGraphOrgEntityProviderCatalogModule}.
+ * Options for {@link catalogModuleMicrosoftGraphOrgEntityProvider}.
*
* @alpha
*/
-export interface MicrosoftGraphOrgEntityProviderCatalogModuleOptions {
+export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions {
/**
* The function that transforms a user entry in msgraph to an entity.
* Optionally, you can pass separate transformers per provider ID.
@@ -59,13 +59,13 @@ export interface MicrosoftGraphOrgEntityProviderCatalogModuleOptions {
*
* @alpha
*/
-export const microsoftGraphOrgEntityProviderCatalogModule = createBackendModule(
+export const catalogModuleMicrosoftGraphOrgEntityProvider = createBackendModule(
{
pluginId: 'catalog',
moduleId: 'microsoftGraphOrgEntityProvider',
register(
env,
- options?: MicrosoftGraphOrgEntityProviderCatalogModuleOptions,
+ options?: CatalogModuleMicrosoftGraphOrgEntityProviderOptions,
) {
env.registerInit({
deps: {
diff --git a/plugins/catalog-backend-module-msgraph/src/module/index.ts b/plugins/catalog-backend-module-msgraph/src/module/index.ts
new file mode 100644
index 0000000000..f53f41141c
--- /dev/null
+++ b/plugins/catalog-backend-module-msgraph/src/module/index.ts
@@ -0,0 +1,18 @@
+/*
+ * 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 { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider';
+export type { CatalogModuleMicrosoftGraphOrgEntityProviderOptions } from './catalogModuleMicrosoftGraphOrgEntityProvider';
diff --git a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.test.ts b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.test.ts
index 8af327cf27..dccf7ed53d 100644
--- a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.test.ts
@@ -26,7 +26,7 @@ import {
GroupEntity,
UserEntity,
} from '@backstage/catalog-model';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import {
MicrosoftGraphClient,
MICROSOFT_GRAPH_USER_ID_ANNOTATION,
diff --git a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.ts b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.ts
index 071fa7f266..3ef02344eb 100644
--- a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.ts
+++ b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgEntityProvider.ts
@@ -24,7 +24,7 @@ import { Config } from '@backstage/config';
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { merge } from 'lodash';
import * as uuid from 'uuid';
import { Logger } from 'winston';
diff --git a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
index 1267648481..2beef51c31 100644
--- a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
@@ -20,7 +20,7 @@ import {
CatalogProcessorEmit,
LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import {
GroupTransformer,
diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md
index 954eff2c98..8bf478947a 100644
--- a/plugins/catalog-backend-module-openapi/CHANGELOG.md
+++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-backend-module-openapi
+## 0.1.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.9-next.1
### Patch Changes
diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json
index 691581bf77..fee080d1bf 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.9-next.1",
+ "version": "0.1.9-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
new file mode 100644
index 0000000000..5bc50ae148
--- /dev/null
+++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
@@ -0,0 +1,15 @@
+# @backstage/plugin-catalog-backend-module-puppetdb
+
+## 0.1.0-next.0
+
+### Minor Changes
+
+- a1efcf9a658: Initial version of the plugin.
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/config@1.0.7-next.0
diff --git a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
new file mode 100644
index 0000000000..0856fdb836
--- /dev/null
+++ b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md
@@ -0,0 +1,12 @@
+## API Report File for "@backstage/plugin-catalog-backend-module-puppetdb"
+
+> 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';
+
+// @alpha
+export const catalogModulePuppetDbEntityProvider: () => BackendFeature;
+
+// (No @packageDocumentation comment for this package)
+```
diff --git a/plugins/catalog-backend-module-puppetdb/api-report.md b/plugins/catalog-backend-module-puppetdb/api-report.md
index 8764ac1e7c..a4954ce6bd 100644
--- a/plugins/catalog-backend-module-puppetdb/api-report.md
+++ b/plugins/catalog-backend-module-puppetdb/api-report.md
@@ -4,8 +4,8 @@
```ts
import { Config } from '@backstage/config';
-import { EntityProvider } from '@backstage/plugin-catalog-backend';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-backend';
+import { EntityProvider } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { JsonValue } from '@backstage/types';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json
index b6539dbbe6..252fe21969 100644
--- a/plugins/catalog-backend-module-puppetdb/package.json
+++ b/plugins/catalog-backend-module-puppetdb/package.json
@@ -1,14 +1,27 @@
{
"name": "@backstage/plugin-catalog-backend-module-puppetdb",
"description": "A Backstage catalog backend module that helps integrate towards PuppetDB",
- "version": "0.0.1",
+ "version": "0.1.0-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
"publishConfig": {
- "access": "public",
- "main": "dist/index.cjs.js",
- "types": "dist/index.d.ts"
+ "access": "public"
+ },
+ "exports": {
+ ".": "./src/index.ts",
+ "./alpha": "./src/alpha.ts",
+ "./package.json": "./package.json"
+ },
+ "typesVersions": {
+ "*": {
+ "alpha": [
+ "src/alpha.ts"
+ ],
+ "package.json": [
+ "package.json"
+ ]
+ }
},
"backstage": {
"role": "backend-plugin-module"
@@ -35,11 +48,12 @@
},
"dependencies": {
"@backstage/backend-common": "workspace:^",
+ "@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
- "@backstage/plugin-catalog-backend": "workspace:^",
+ "@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"lodash": "^4.17.21",
"luxon": "^3.0.0",
diff --git a/plugins/catalog-backend/src/util/index.ts b/plugins/catalog-backend-module-puppetdb/src/alpha.ts
similarity index 84%
rename from plugins/catalog-backend/src/util/index.ts
rename to plugins/catalog-backend-module-puppetdb/src/alpha.ts
index b3bd4d5316..c277a0a680 100644
--- a/plugins/catalog-backend/src/util/index.ts
+++ b/plugins/catalog-backend-module-puppetdb/src/alpha.ts
@@ -1,5 +1,5 @@
/*
- * Copyright 2022 The Backstage Authors
+ * 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.
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { locationSpecToLocationEntity } from './conversion';
+export * from './module';
diff --git a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts
new file mode 100644
index 0000000000..e2745e9268
--- /dev/null
+++ b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2022 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 { getVoidLogger } from '@backstage/backend-common';
+import { coreServices } from '@backstage/backend-plugin-api';
+import {
+ PluginTaskScheduler,
+ TaskScheduleDefinition,
+} from '@backstage/backend-tasks';
+import { startTestBackend } from '@backstage/backend-test-utils';
+import { ConfigReader } from '@backstage/config';
+import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
+import { catalogModulePuppetDbEntityProvider } from './catalogModulePuppetDbEntityProvider';
+import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider';
+
+describe('catalogModulePuppetDbEntityProvider', () => {
+ it('should register provider at the catalog extension point', async () => {
+ let addedProviders: Array | undefined;
+ let usedSchedule: TaskScheduleDefinition | undefined;
+
+ const extensionPoint = {
+ addEntityProvider: (providers: any) => {
+ addedProviders = providers;
+ },
+ };
+ const runner = jest.fn();
+ const scheduler = {
+ createScheduledTaskRunner: (schedule: TaskScheduleDefinition) => {
+ usedSchedule = schedule;
+ return runner;
+ },
+ } as unknown as PluginTaskScheduler;
+
+ const config = new ConfigReader({
+ catalog: {
+ providers: {
+ puppetdb: {
+ baseUrl: 'http://puppetdb:8080',
+ schedule: {
+ frequency: { minutes: 10 },
+ timeout: { minutes: 10 },
+ },
+ },
+ },
+ },
+ });
+
+ await startTestBackend({
+ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]],
+ services: [
+ [coreServices.config, config],
+ [coreServices.logger, getVoidLogger()],
+ [coreServices.scheduler, scheduler],
+ ],
+ features: [catalogModulePuppetDbEntityProvider()],
+ });
+
+ expect(usedSchedule?.frequency).toEqual({ minutes: 10 });
+ expect(usedSchedule?.timeout).toEqual({ minutes: 10 });
+ expect(addedProviders?.length).toEqual(1);
+ expect(addedProviders?.pop()?.getProviderName()).toEqual(
+ 'puppetdb-provider:default',
+ );
+ expect(runner).not.toHaveBeenCalled();
+ });
+});
diff --git a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts
new file mode 100644
index 0000000000..9a7d279cd3
--- /dev/null
+++ b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2022 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 {
+ createBackendModule,
+ coreServices,
+} from '@backstage/backend-plugin-api';
+import { loggerToWinstonLogger } from '@backstage/backend-common';
+import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
+import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider';
+
+/**
+ * Registers the `PuppetDbEntityProvider` with the catalog processing extension point.
+ *
+ * @alpha
+ */
+export const catalogModulePuppetDbEntityProvider = createBackendModule({
+ pluginId: 'catalog',
+ moduleId: 'puppetDbEntityProvider',
+ register(env) {
+ env.registerInit({
+ deps: {
+ catalog: catalogProcessingExtensionPoint,
+ config: coreServices.config,
+ logger: coreServices.logger,
+ scheduler: coreServices.scheduler,
+ },
+ async init({ catalog, config, logger, scheduler }) {
+ catalog.addEntityProvider(
+ PuppetDbEntityProvider.fromConfig(config, {
+ logger: loggerToWinstonLogger(logger),
+ scheduler,
+ }),
+ );
+ },
+ });
+ },
+});
diff --git a/plugins/catalog-backend-module-puppetdb/src/module/index.ts b/plugins/catalog-backend-module-puppetdb/src/module/index.ts
new file mode 100644
index 0000000000..f30f236df4
--- /dev/null
+++ b/plugins/catalog-backend-module-puppetdb/src/module/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 { catalogModulePuppetDbEntityProvider } from './catalogModulePuppetDbEntityProvider';
diff --git a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.test.ts b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.test.ts
index 0ab6fb35b7..ad89e1fd9a 100644
--- a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.test.ts
@@ -21,7 +21,7 @@ import { PuppetDbEntityProvider } from './PuppetDbEntityProvider';
import {
DeferredEntity,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import * as puppetFunctions from '../puppet/read';
import { ANNOTATION_PUPPET_CERTNAME } from '../puppet';
import {
diff --git a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts
index b2d2738fd3..8c63baf467 100644
--- a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts
+++ b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts
@@ -17,7 +17,7 @@
import {
EntityProvider,
EntityProviderConnection,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import {
PuppetDbEntityProviderConfig,
@@ -116,13 +116,13 @@ export class PuppetDbEntityProvider implements EntityProvider {
this.transformer = transformer;
}
- /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.connect} */
+ /** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.connect} */
async connect(connection: EntityProviderConnection): Promise {
this.connection = connection;
await this.scheduleFn();
}
- /** {@inheritdoc @backstage/plugin-catalog-backend#EntityProvider.getProviderName} */
+ /** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.getProviderName} */
getProviderName(): string {
return `puppetdb-provider:${this.config.id}`;
}
diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md
index cbb5dd0fd4..1cc3b3620a 100644
--- a/plugins/catalog-backend/CHANGELOG.md
+++ b/plugins/catalog-backend/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-catalog-backend
+## 1.8.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.8.0-next.1
### Patch Changes
diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md
index 00c13a31ea..5e7b2dee02 100644
--- a/plugins/catalog-backend/api-report.md
+++ b/plugins/catalog-backend/api-report.md
@@ -12,29 +12,30 @@ import { AnalyzeLocationRequest as AnalyzeLocationRequest_2 } from '@backstage/p
import { AnalyzeLocationResponse as AnalyzeLocationResponse_2 } from '@backstage/plugin-catalog-common';
import { CatalogApi } from '@backstage/catalog-client';
import { CatalogEntityDocument } from '@backstage/plugin-catalog-common';
-import { CatalogProcessor } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorCache } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorEntityResult } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorErrorResult } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorLocationResult } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorParser } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorRefreshKeysResult } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorRelationResult } from '@backstage/plugin-catalog-node';
-import { CatalogProcessorResult } from '@backstage/plugin-catalog-node';
+import { CatalogProcessor as CatalogProcessor_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorCache as CatalogProcessorCache_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit as CatalogProcessorEmit_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEntityResult as CatalogProcessorEntityResult_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorErrorResult as CatalogProcessorErrorResult_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorLocationResult as CatalogProcessorLocationResult_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorParser as CatalogProcessorParser_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorRefreshKeysResult as CatalogProcessorRefreshKeysResult_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorRelationResult as CatalogProcessorRelationResult_2 } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorResult as CatalogProcessorResult_2 } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
-import { DeferredEntity } from '@backstage/plugin-catalog-node';
+import { DeferredEntity as DeferredEntity_2 } from '@backstage/plugin-catalog-node';
import { DocumentCollatorFactory } from '@backstage/plugin-search-common';
import { Entity } from '@backstage/catalog-model';
import { EntityPolicy } from '@backstage/catalog-model';
-import { EntityProvider } from '@backstage/plugin-catalog-node';
-import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
-import { EntityProviderMutation } from '@backstage/plugin-catalog-node';
-import { EntityRelationSpec } from '@backstage/plugin-catalog-node';
+import { EntityProvider as EntityProvider_2 } from '@backstage/plugin-catalog-node';
+import { EntityProviderConnection as EntityProviderConnection_2 } from '@backstage/plugin-catalog-node';
+import { EntityProviderMutation as EntityProviderMutation_2 } from '@backstage/plugin-catalog-node';
+import { EntityRelationSpec as EntityRelationSpec_2 } from '@backstage/plugin-catalog-node';
import { GetEntitiesRequest } from '@backstage/catalog-client';
import { JsonValue } from '@backstage/types';
-import { LocationEntityV1alpha1 } from '@backstage/catalog-model';
import { LocationSpec as LocationSpec_2 } from '@backstage/plugin-catalog-common';
+import { locationSpecToLocationEntity as locationSpecToLocationEntity_2 } from '@backstage/plugin-catalog-node';
+import { locationSpecToMetadataName as locationSpecToMetadataName_2 } from '@backstage/plugin-catalog-node';
import { Logger } from 'winston';
import { Permission } from '@backstage/plugin-permission-common';
import { PermissionAuthorizer } from '@backstage/plugin-permission-common';
@@ -43,7 +44,6 @@ import { PermissionRule } from '@backstage/plugin-permission-node';
import { PermissionRuleParams } from '@backstage/plugin-permission-common';
import { PluginDatabaseManager } from '@backstage/backend-common';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
-import { processingResult } from '@backstage/plugin-catalog-node';
import { Readable } from 'stream';
import { Router } from 'express';
import { ScmIntegrationRegistry } from '@backstage/integration';
@@ -73,7 +73,7 @@ export type AnalyzeOptions = {
};
// @public (undocumented)
-export class AnnotateLocationEntityProcessor implements CatalogProcessor {
+export class AnnotateLocationEntityProcessor implements CatalogProcessor_2 {
constructor(options: { integrations: ScmIntegrationRegistry });
// (undocumented)
getProcessorName(): string;
@@ -81,13 +81,13 @@ export class AnnotateLocationEntityProcessor implements CatalogProcessor {
preProcessEntity(
entity: Entity,
location: LocationSpec_2,
- _: CatalogProcessorEmit,
+ _: CatalogProcessorEmit_2,
originLocation: LocationSpec_2,
): Promise;
}
// @public (undocumented)
-export class AnnotateScmSlugEntityProcessor implements CatalogProcessor {
+export class AnnotateScmSlugEntityProcessor implements CatalogProcessor_2 {
constructor(opts: { scmIntegrationRegistry: ScmIntegrationRegistry });
// (undocumented)
static fromConfig(config: Config): AnnotateScmSlugEntityProcessor;
@@ -98,14 +98,14 @@ export class AnnotateScmSlugEntityProcessor implements CatalogProcessor {
}
// @public (undocumented)
-export class BuiltinKindsEntityProcessor implements CatalogProcessor {
+export class BuiltinKindsEntityProcessor implements CatalogProcessor_2 {
// (undocumented)
getProcessorName(): string;
// (undocumented)
postProcessEntity(
entity: Entity,
_location: LocationSpec_2,
- emit: CatalogProcessorEmit,
+ emit: CatalogProcessorEmit_2,
): Promise;
// (undocumented)
validateEntityKind(entity: Entity): Promise;
@@ -117,7 +117,7 @@ export class CatalogBuilder {
...policies: Array>
): CatalogBuilder;
addEntityProvider(
- ...providers: Array>
+ ...providers: Array>
): CatalogBuilder;
addLocationAnalyzers(
...analyzers: Array>
@@ -128,18 +128,18 @@ export class CatalogBuilder {
>
): this;
addProcessor(
- ...processors: Array>
+ ...processors: Array>
): CatalogBuilder;
build(): Promise<{
processingEngine: CatalogProcessingEngine;
router: Router;
}>;
static create(env: CatalogEnvironment): CatalogBuilder;
- getDefaultProcessors(): CatalogProcessor[];
+ getDefaultProcessors(): CatalogProcessor_2[];
replaceEntityPolicies(policies: EntityPolicy[]): CatalogBuilder;
- replaceProcessors(processors: CatalogProcessor[]): CatalogBuilder;
+ replaceProcessors(processors: CatalogProcessor_2[]): CatalogBuilder;
setAllowedLocationTypes(allowedLocationTypes: string[]): CatalogBuilder;
- setEntityDataParser(parser: CatalogProcessorParser): CatalogBuilder;
+ setEntityDataParser(parser: CatalogProcessorParser_2): CatalogBuilder;
setFieldFormatValidators(validators: Partial): CatalogBuilder;
setLocationAnalyzer(locationAnalyzer: LocationAnalyzer): CatalogBuilder;
setPlaceholderResolver(
@@ -187,28 +187,39 @@ export interface CatalogProcessingEngine {
stop(): Promise;
}
-export { CatalogProcessor };
+// @public @deprecated (undocumented)
+export type CatalogProcessor = CatalogProcessor_2;
-export { CatalogProcessorCache };
+// @public @deprecated (undocumented)
+export type CatalogProcessorCache = CatalogProcessorCache_2;
-export { CatalogProcessorEmit };
+// @public @deprecated (undocumented)
+export type CatalogProcessorEmit = CatalogProcessorEmit_2;
-export { CatalogProcessorEntityResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorEntityResult = CatalogProcessorEntityResult_2;
-export { CatalogProcessorErrorResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorErrorResult = CatalogProcessorErrorResult_2;
-export { CatalogProcessorLocationResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorLocationResult = CatalogProcessorLocationResult_2;
-export { CatalogProcessorParser };
+// @public @deprecated (undocumented)
+export type CatalogProcessorParser = CatalogProcessorParser_2;
-export { CatalogProcessorRefreshKeysResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorRefreshKeysResult =
+ CatalogProcessorRefreshKeysResult_2;
-export { CatalogProcessorRelationResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorRelationResult = CatalogProcessorRelationResult_2;
-export { CatalogProcessorResult };
+// @public @deprecated (undocumented)
+export type CatalogProcessorResult = CatalogProcessorResult_2;
// @public (undocumented)
-export class CodeOwnersProcessor implements CatalogProcessor {
+export class CodeOwnersProcessor implements CatalogProcessor_2 {
constructor(options: {
integrations: ScmIntegrationRegistry;
logger: Logger;
@@ -304,7 +315,8 @@ export type DefaultCatalogCollatorFactoryOptions = {
entityTransformer?: CatalogCollatorEntityTransformer;
};
-export { DeferredEntity };
+// @public @deprecated (undocumented)
+export type DeferredEntity = DeferredEntity_2;
// @public
export type EntitiesSearchFilter = {
@@ -325,24 +337,28 @@ export type EntityFilter =
}
| EntitiesSearchFilter;
-export { EntityProvider };
+// @public @deprecated (undocumented)
+export type EntityProvider = EntityProvider_2;
-export { EntityProviderConnection };
+// @public @deprecated (undocumented)
+export type EntityProviderConnection = EntityProviderConnection_2;
-export { EntityProviderMutation };
+// @public @deprecated (undocumented)
+export type EntityProviderMutation = EntityProviderMutation_2;
-export { EntityRelationSpec };
+// @public @deprecated (undocumented)
+export type EntityRelationSpec = EntityRelationSpec_2;
// @public (undocumented)
-export class FileReaderProcessor implements CatalogProcessor {
+export class FileReaderProcessor implements CatalogProcessor_2 {
// (undocumented)
getProcessorName(): string;
// (undocumented)
readLocation(
location: LocationSpec_2,
optional: boolean,
- emit: CatalogProcessorEmit,
- parser: CatalogProcessorParser,
+ emit: CatalogProcessorEmit_2,
+ parser: CatalogProcessorParser_2,
): Promise;
}
@@ -354,7 +370,7 @@ export type LocationAnalyzer = {
};
// @public (undocumented)
-export class LocationEntityProcessor implements CatalogProcessor {
+export class LocationEntityProcessor implements CatalogProcessor_2 {
constructor(options: LocationEntityProcessorOptions);
// (undocumented)
getProcessorName(): string;
@@ -362,7 +378,7 @@ export class LocationEntityProcessor implements CatalogProcessor {
postProcessEntity(
entity: Entity,
location: LocationSpec_2,
- emit: CatalogProcessorEmit,
+ emit: CatalogProcessorEmit_2,
): Promise;
}
@@ -374,20 +390,20 @@ export type LocationEntityProcessorOptions = {
// @public @deprecated
export type LocationSpec = LocationSpec_2;
-// @public (undocumented)
-export function locationSpecToLocationEntity(opts: {
- location: LocationSpec_2;
- parentEntity?: Entity;
-}): LocationEntityV1alpha1;
+// @public @deprecated (undocumented)
+export const locationSpecToLocationEntity: typeof locationSpecToLocationEntity_2;
+
+// @public @deprecated (undocumented)
+export const locationSpecToMetadataName: typeof locationSpecToMetadataName_2;
// @public (undocumented)
export function parseEntityYaml(
data: Buffer,
location: LocationSpec_2,
-): Iterable;
+): Iterable;
// @public
-export class PlaceholderProcessor implements CatalogProcessor {
+export class PlaceholderProcessor implements CatalogProcessor_2 {
constructor(options: PlaceholderProcessorOptions);
// (undocumented)
getProcessorName(): string;
@@ -395,7 +411,7 @@ export class PlaceholderProcessor implements CatalogProcessor {
preProcessEntity(
entity: Entity,
location: LocationSpec_2,
- emit: CatalogProcessorEmit,
+ emit: CatalogProcessorEmit_2,
): Promise;
}
@@ -418,7 +434,7 @@ export type PlaceholderResolverParams = {
baseUrl: string;
read: PlaceholderResolverRead;
resolveUrl: PlaceholderResolverResolveUrl;
- emit: CatalogProcessorEmit;
+ emit: CatalogProcessorEmit_2;
};
// @public (undocumented)
@@ -433,7 +449,28 @@ export type PlaceholderResolverResolveUrl = (
// @public
export type ProcessingIntervalFunction = () => number;
-export { processingResult };
+// @public @deprecated (undocumented)
+export const processingResult: Readonly<{
+ readonly notFoundError: (
+ atLocation: LocationSpec_2,
+ message: string,
+ ) => CatalogProcessorResult_2;
+ readonly inputError: (
+ atLocation: LocationSpec_2,
+ message: string,
+ ) => CatalogProcessorResult_2;
+ readonly generalError: (
+ atLocation: LocationSpec_2,
+ message: string,
+ ) => CatalogProcessorResult_2;
+ readonly location: (newLocation: LocationSpec_2) => CatalogProcessorResult_2;
+ readonly entity: (
+ atLocation: LocationSpec_2,
+ newEntity: Entity,
+ ) => CatalogProcessorResult_2;
+ readonly relation: (spec: EntityRelationSpec_2) => CatalogProcessorResult_2;
+ readonly refresh: (key: string) => CatalogProcessorResult_2;
+}>;
// @public (undocumented)
export type ScmLocationAnalyzer = {
@@ -444,7 +481,7 @@ export type ScmLocationAnalyzer = {
};
// @public (undocumented)
-export class UrlReaderProcessor implements CatalogProcessor {
+export class UrlReaderProcessor implements CatalogProcessor_2 {
constructor(options: { reader: UrlReader; logger: Logger });
// (undocumented)
getProcessorName(): string;
@@ -452,9 +489,9 @@ export class UrlReaderProcessor implements CatalogProcessor {
readLocation(
location: LocationSpec_2,
optional: boolean,
- emit: CatalogProcessorEmit,
- parser: CatalogProcessorParser,
- cache: CatalogProcessorCache,
+ emit: CatalogProcessorEmit_2,
+ parser: CatalogProcessorParser_2,
+ cache: CatalogProcessorCache_2,
): Promise;
}
```
diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json
index 5d221f2f41..35eac97cc1 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.8.0-next.1",
+ "version": "1.8.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend/src/deprecated.ts b/plugins/catalog-backend/src/deprecated.ts
new file mode 100644
index 0000000000..c92ec719b7
--- /dev/null
+++ b/plugins/catalog-backend/src/deprecated.ts
@@ -0,0 +1,143 @@
+/*
+ * 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 {
+ locationSpecToMetadataName as _locationSpecToMetadataName,
+ locationSpecToLocationEntity as _locationSpecToLocationEntity,
+ processingResult as _processingResult,
+ type DeferredEntity as _DeferredEntity,
+ type EntityRelationSpec as _EntityRelationSpec,
+ type CatalogProcessor as _CatalogProcessor,
+ type CatalogProcessorParser as _CatalogProcessorParser,
+ type CatalogProcessorCache as _CatalogProcessorCache,
+ type CatalogProcessorEmit as _CatalogProcessorEmit,
+ type CatalogProcessorLocationResult as _CatalogProcessorLocationResult,
+ type CatalogProcessorEntityResult as _CatalogProcessorEntityResult,
+ type CatalogProcessorRelationResult as _CatalogProcessorRelationResult,
+ type CatalogProcessorErrorResult as _CatalogProcessorErrorResult,
+ type CatalogProcessorRefreshKeysResult as _CatalogProcessorRefreshKeysResult,
+ type CatalogProcessorResult as _CatalogProcessorResult,
+ type EntityProvider as _EntityProvider,
+ type EntityProviderConnection as _EntityProviderConnection,
+ type EntityProviderMutation as _EntityProviderMutation,
+} from '@backstage/plugin-catalog-node';
+import { type LocationSpec as _LocationSpec } from '@backstage/plugin-catalog-common';
+
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export const locationSpecToMetadataName = _locationSpecToMetadataName;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export const locationSpecToLocationEntity = _locationSpecToLocationEntity;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export const processingResult = _processingResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type DeferredEntity = _DeferredEntity;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type EntityRelationSpec = _EntityRelationSpec;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessor = _CatalogProcessor;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorParser = _CatalogProcessorParser;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorCache = _CatalogProcessorCache;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorEmit = _CatalogProcessorEmit;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorLocationResult = _CatalogProcessorLocationResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorEntityResult = _CatalogProcessorEntityResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorRelationResult = _CatalogProcessorRelationResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorErrorResult = _CatalogProcessorErrorResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorRefreshKeysResult =
+ _CatalogProcessorRefreshKeysResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type CatalogProcessorResult = _CatalogProcessorResult;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type EntityProvider = _EntityProvider;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type EntityProviderConnection = _EntityProviderConnection;
+/**
+ * @public
+ * @deprecated import from `@backstage/plugin-catalog-node` instead
+ */
+export type EntityProviderMutation = _EntityProviderMutation;
+
+/**
+ * Holds the entity location information.
+ *
+ * @remarks
+ *
+ * `presence` flag: when using repo importer plugin, location is being created before the component yaml file is merged to the main branch.
+ * This flag is then set to indicate that the file can be not present.
+ * default value: 'required'.
+ *
+ * @public
+ * @deprecated use the same type from `@backstage/plugin-catalog-common` instead
+ */
+export type LocationSpec = _LocationSpec;
diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts
index e52336f036..b3d2bc95c7 100644
--- a/plugins/catalog-backend/src/index.ts
+++ b/plugins/catalog-backend/src/index.ts
@@ -20,45 +20,10 @@
* @packageDocumentation
*/
-export type {
- DeferredEntity,
- EntityRelationSpec,
- CatalogProcessor,
- CatalogProcessorParser,
- CatalogProcessorCache,
- CatalogProcessorEmit,
- CatalogProcessorLocationResult,
- CatalogProcessorEntityResult,
- CatalogProcessorRelationResult,
- CatalogProcessorErrorResult,
- CatalogProcessorRefreshKeysResult,
- CatalogProcessorResult,
- EntityProvider,
- EntityProviderConnection,
- EntityProviderMutation,
-} from '@backstage/plugin-catalog-node';
-export { processingResult } from '@backstage/plugin-catalog-node';
-
export * from './catalog';
export * from './ingestion';
export * from './modules';
export * from './processing';
export * from './search';
export * from './service';
-export * from './util';
-
-import { LocationSpec as NonDeprecatedLocationSpec } from '@backstage/plugin-catalog-common';
-
-/**
- * Holds the entity location information.
- *
- * @remarks
- *
- * `presence` flag: when using repo importer plugin, location is being created before the component yaml file is merged to the main branch.
- * This flag is then set to indicate that the file can be not present.
- * default value: 'required'.
- *
- * @public
- * @deprecated use the same type from `@backstage/plugin-catalog-common` instead
- */
-export type LocationSpec = NonDeprecatedLocationSpec;
+export * from './deprecated';
diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md
index 1b30333d89..654672a156 100644
--- a/plugins/catalog-customized/CHANGELOG.md
+++ b/plugins/catalog-customized/CHANGELOG.md
@@ -1,5 +1,13 @@
# @internal/plugin-catalog-customized
+## 0.0.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+
## 0.0.8-next.1
### Patch Changes
diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json
index b0b4b7aba3..20ef38355b 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.8-next.1",
+ "version": "0.0.8-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 418ae1f83a..bd0a9d7c76 100644
--- a/plugins/catalog-graph/CHANGELOG.md
+++ b/plugins/catalog-graph/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-catalog-graph
+## 0.2.28-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.28-next.1
### Patch Changes
diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json
index 2947b62b8c..ab7e7e78a9 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.28-next.1",
+ "version": "0.2.28-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 d8eac64d15..0451769b82 100644
--- a/plugins/catalog-import/CHANGELOG.md
+++ b/plugins/catalog-import/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-catalog-import
+## 0.9.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.9.6-next.1
### Patch Changes
diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json
index 6721a5bbd9..baddab4656 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.6-next.1",
+ "version": "0.9.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-import/src/api/CatalogImportClient.test.ts b/plugins/catalog-import/src/api/CatalogImportClient.test.ts
index e77abc8a85..646a3b7bf9 100644
--- a/plugins/catalog-import/src/api/CatalogImportClient.test.ts
+++ b/plugins/catalog-import/src/api/CatalogImportClient.test.ts
@@ -121,7 +121,6 @@ describe('CatalogImportClient', () => {
});
afterEach(() => {
- jest.restoreAllMocks();
jest.clearAllMocks();
});
diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md
index d1b629247f..8ed02981ca 100644
--- a/plugins/catalog-node/CHANGELOG.md
+++ b/plugins/catalog-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-catalog-node
+## 1.3.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
## 1.3.4-next.1
### Patch Changes
diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md
index 87da0b6944..47a8e66ca9 100644
--- a/plugins/catalog-node/api-report.md
+++ b/plugins/catalog-node/api-report.md
@@ -8,6 +8,7 @@
import { CompoundEntityRef } from '@backstage/catalog-model';
import { Entity } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/types';
+import { LocationEntityV1alpha1 } from '@backstage/catalog-model';
import { LocationSpec as LocationSpec_2 } from '@backstage/plugin-catalog-common';
// @public (undocumented)
@@ -142,6 +143,15 @@ export type EntityRelationSpec = {
// @public @deprecated
export type LocationSpec = LocationSpec_2;
+// @public
+export function locationSpecToLocationEntity(opts: {
+ location: LocationSpec_2;
+ parentEntity?: Entity;
+}): LocationEntityV1alpha1;
+
+// @public
+export function locationSpecToMetadataName(location: LocationSpec_2): string;
+
// @public
export const processingResult: Readonly<{
readonly notFoundError: (
diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json
index 677463c52b..d5ad3b86ea 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.3.4-next.1",
+ "version": "1.3.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-node/src/conversion.ts b/plugins/catalog-node/src/conversion.ts
new file mode 100644
index 0000000000..bbaebc7e35
--- /dev/null
+++ b/plugins/catalog-node/src/conversion.ts
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2021 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 {
+ Entity,
+ LocationEntityV1alpha1,
+ ANNOTATION_LOCATION,
+ ANNOTATION_ORIGIN_LOCATION,
+ stringifyEntityRef,
+ stringifyLocationRef,
+} from '@backstage/catalog-model';
+import { createHash } from 'crypto';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
+
+/**
+ * A standard way of producing a machine generated name for a location.
+ *
+ * @public
+ */
+export function locationSpecToMetadataName(location: LocationSpec) {
+ const hash = createHash('sha1')
+ .update(`${location.type}:${location.target}`)
+ .digest('hex');
+ return `generated-${hash}`;
+}
+
+/**
+ * A standard way of producing a machine generated Location kind entity for a
+ * location.
+ *
+ * @public
+ */
+export function locationSpecToLocationEntity(opts: {
+ location: LocationSpec;
+ parentEntity?: Entity;
+}): LocationEntityV1alpha1 {
+ const location = opts.location;
+ const parentEntity = opts.parentEntity;
+
+ let ownLocation: string;
+ let originLocation: string;
+ if (parentEntity) {
+ const maybeOwnLocation =
+ parentEntity.metadata.annotations?.[ANNOTATION_LOCATION];
+ if (!maybeOwnLocation) {
+ throw new Error(
+ `Parent entity '${stringifyEntityRef(
+ parentEntity,
+ )}' of location '${stringifyLocationRef(
+ location,
+ )}' does not have a location annotation`,
+ );
+ }
+ ownLocation = maybeOwnLocation;
+ const maybeOriginLocation =
+ parentEntity.metadata.annotations?.[ANNOTATION_ORIGIN_LOCATION];
+ if (!maybeOriginLocation) {
+ throw new Error(
+ `Parent entity '${stringifyEntityRef(
+ parentEntity,
+ )}' of location '${stringifyLocationRef(
+ location,
+ )}' does not have an origin location annotation`,
+ );
+ }
+ originLocation = maybeOriginLocation;
+ } else {
+ ownLocation = stringifyLocationRef(location);
+ originLocation = ownLocation;
+ }
+
+ const result: LocationEntityV1alpha1 = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Location',
+ metadata: {
+ name: locationSpecToMetadataName(location),
+ annotations: {
+ [ANNOTATION_LOCATION]: ownLocation,
+ [ANNOTATION_ORIGIN_LOCATION]: originLocation,
+ },
+ },
+ spec: {
+ type: location.type,
+ target: location.target,
+ presence: location.presence,
+ },
+ };
+
+ return result;
+}
diff --git a/plugins/catalog-node/src/index.ts b/plugins/catalog-node/src/index.ts
index 6a1accfcbd..2dd8b5fd5a 100644
--- a/plugins/catalog-node/src/index.ts
+++ b/plugins/catalog-node/src/index.ts
@@ -21,4 +21,5 @@
*/
export * from './api';
+export * from './conversion';
export * from './processing';
diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md
index e1b9da465e..4d8acf0936 100644
--- a/plugins/catalog-react/CHANGELOG.md
+++ b/plugins/catalog-react/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-catalog-react
+## 1.4.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 1.4.0-next.1
### Patch Changes
diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json
index 81f91374e6..8f0b9627c7 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.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/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md
index 0b3ade1136..873c90de07 100644
--- a/plugins/catalog/CHANGELOG.md
+++ b/plugins/catalog/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-catalog
+## 1.9.0-next.2
+
+### Minor Changes
+
+- 23cc40039c0: allow entity switch to render all cases that match the condition
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+
## 1.9.0-next.1
### Minor Changes
diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json
index c65cfccfaa..c66ae8fb5e 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.9.0-next.1",
+ "version": "1.9.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
index 8ee44041c8..13e214d823 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx
@@ -173,6 +173,42 @@ describe('EntitySwitch', () => {
expect(screen.getByText('C')).toBeInTheDocument();
});
+ it('should render nothing if no default case is set for multiple matches', () => {
+ const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
+
+ render(
+
+
+
+ A
} />
+ B} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('A')).not.toBeInTheDocument();
+ expect(screen.queryByText('B')).not.toBeInTheDocument();
+ });
+
+ it('should render nothing if no default case is set for default', () => {
+ const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity;
+
+ render(
+
+
+
+ A} />
+ B} />
+
+
+ ,
+ );
+
+ expect(screen.queryByText('A')).not.toBeInTheDocument();
+ expect(screen.queryByText('B')).not.toBeInTheDocument();
+ });
+
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 6ad3c66ab3..3cd806faa5 100644
--- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
+++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx
@@ -169,7 +169,7 @@ function AsyncEntitySwitch({
}
function getDefaultChildren(results: SwitchCaseResult[]) {
- return results.filter(r => r.if === undefined)[0].children ?? null;
+ return results.filter(r => r.if === undefined)[0]?.children ?? null;
}
EntitySwitch.Case = EntitySwitchCaseComponent;
diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
index dc47a327c0..55ec192258 100644
--- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
+++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-cicd-statistics-module-gitlab
+## 0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-cicd-statistics@0.1.18-next.2
+
## 0.1.12-next.1
### Patch Changes
diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json
index c5b999fefb..38de7c6799 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.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/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md
index 37deb19ea9..97434f99c7 100644
--- a/plugins/cicd-statistics/CHANGELOG.md
+++ b/plugins/cicd-statistics/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-cicd-statistics
+## 0.1.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.18-next.1
### Patch Changes
diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json
index 6078d3a641..8262235489 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.18-next.1",
+ "version": "0.1.18-next.2",
"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 e91f34eb87..c43162fe14 100644
--- a/plugins/circleci/CHANGELOG.md
+++ b/plugins/circleci/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-circleci
+## 0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.16-next.1
### Patch Changes
diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json
index 1ba2a8f7b1..55d02ce8bd 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.16-next.1",
+ "version": "0.3.16-next.2",
"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 c5c915d5a4..bc5f71d8e1 100644
--- a/plugins/cloudbuild/CHANGELOG.md
+++ b/plugins/cloudbuild/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-cloudbuild
+## 0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.16-next.1
### Patch Changes
diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json
index f5787447c8..04fa511cb6 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.16-next.1",
+ "version": "0.3.16-next.2",
"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 90a9895eac..e98be293b8 100644
--- a/plugins/code-climate/CHANGELOG.md
+++ b/plugins/code-climate/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-code-climate
+## 0.1.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.16-next.1
### Patch Changes
diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json
index b6c2a04942..9890f8b95e 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.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/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md
index b425cc02da..74336f32c8 100644
--- a/plugins/code-coverage-backend/CHANGELOG.md
+++ b/plugins/code-coverage-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-code-coverage-backend
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json
index 9a060d1f0f..fca52bdebc 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.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/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md
index 73cabd8ca1..914768f638 100644
--- a/plugins/code-coverage/CHANGELOG.md
+++ b/plugins/code-coverage/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-code-coverage
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json
index ae2b03416b..cfdddfc6af 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.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/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md
index 610487334c..7390729c48 100644
--- a/plugins/codescene/CHANGELOG.md
+++ b/plugins/codescene/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-codescene
+## 0.1.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.11-next.1
### Patch Changes
diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json
index a4b1bf6d75..49cedd3bc4 100644
--- a/plugins/codescene/package.json
+++ b/plugins/codescene/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-codescene",
- "version": "0.1.11-next.1",
+ "version": "0.1.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md
index def33080f2..5e0de80621 100644
--- a/plugins/config-schema/CHANGELOG.md
+++ b/plugins/config-schema/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-config-schema
+## 0.1.39-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.39-next.1
### Patch Changes
diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json
index bb0b43729b..730265cbea 100644
--- a/plugins/config-schema/package.json
+++ b/plugins/config-schema/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-config-schema",
"description": "A Backstage plugin that lets you browse the configuration schema of your app",
- "version": "0.1.39-next.1",
+ "version": "0.1.39-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 d673749859..f108804cb6 100644
--- a/plugins/cost-insights/CHANGELOG.md
+++ b/plugins/cost-insights/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-cost-insights
+## 0.12.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.12.5-next.1
### Patch Changes
diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json
index f2a907dfb3..aabd4d340d 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.5-next.1",
+ "version": "0.12.5-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 4949fd5e16..402ee43c1e 100644
--- a/plugins/dynatrace/CHANGELOG.md
+++ b/plugins/dynatrace/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-dynatrace
+## 3.0.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 3.0.0-next.1
### Patch Changes
diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json
index 49c408fff3..c66ef32c7b 100644
--- a/plugins/dynatrace/package.json
+++ b/plugins/dynatrace/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-dynatrace",
- "version": "3.0.0-next.1",
+ "version": "3.0.0-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 f0acfaef30..cac724d7ef 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.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json
index 9ac805295e..b482fdb212 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.1-next.1",
+ "version": "0.1.1-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 23016c805f..72cb7b272a 100644
--- a/plugins/entity-feedback/CHANGELOG.md
+++ b/plugins/entity-feedback/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-entity-feedback
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json
index da0bc0b0ca..760b192440 100644
--- a/plugins/entity-feedback/package.json
+++ b/plugins/entity-feedback/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-feedback",
- "version": "0.1.1-next.1",
+ "version": "0.1.1-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 cd37ad05f9..43ecb6527d 100644
--- a/plugins/entity-validation/CHANGELOG.md
+++ b/plugins/entity-validation/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-entity-validation
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json
index 33f0d8fc60..81c13cc46b 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.1-next.1",
+ "version": "0.1.1-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 e80ae855d6..0e5659c538 100644
--- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md
+++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-events-backend-module-aws-sqs
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.5-next.1
### Patch Changes
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 b9f60c4437..e48515a414 100644
--- a/plugins/events-backend-module-aws-sqs/alpha-api-report.md
+++ b/plugins/events-backend-module-aws-sqs/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const awsSqsConsumingEventPublisherEventsModule: () => BackendFeature;
+export const eventsModuleAwsSqsConsumingEventPublisher: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json
index 050e13a15f..9278099801 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.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/events-backend-module-aws-sqs/src/alpha.ts b/plugins/events-backend-module-aws-sqs/src/alpha.ts
index 00f08e4417..4f3ae09c42 100644
--- a/plugins/events-backend-module-aws-sqs/src/alpha.ts
+++ b/plugins/events-backend-module-aws-sqs/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { awsSqsConsumingEventPublisherEventsModule } from './service/AwsSqsConsumingEventPublisherEventsModule';
+export { eventsModuleAwsSqsConsumingEventPublisher } from './service/eventsModuleAwsSqsConsumingEventPublisher';
diff --git a/plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.test.ts b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts
similarity index 92%
rename from plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.test.ts
rename to plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts
index 3963b9a8b6..921dc38552 100644
--- a/plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.test.ts
+++ b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts
@@ -20,10 +20,10 @@ import { startTestBackend } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
import { TestEventBroker } from '@backstage/plugin-events-backend-test-utils';
-import { awsSqsConsumingEventPublisherEventsModule } from './AwsSqsConsumingEventPublisherEventsModule';
+import { eventsModuleAwsSqsConsumingEventPublisher } from './eventsModuleAwsSqsConsumingEventPublisher';
import { AwsSqsConsumingEventPublisher } from '../publisher/AwsSqsConsumingEventPublisher';
-describe('awsSqsEventsModule', () => {
+describe('eventsModuleAwsSqsConsumingEventPublisher', () => {
it('should be correctly wired and set up', async () => {
const config = new ConfigReader({
events: {
@@ -68,7 +68,7 @@ describe('awsSqsEventsModule', () => {
[coreServices.logger, getVoidLogger()],
[coreServices.scheduler, scheduler],
],
- features: [awsSqsConsumingEventPublisherEventsModule()],
+ features: [eventsModuleAwsSqsConsumingEventPublisher()],
});
expect(addedPublishers).not.toBeUndefined();
diff --git a/plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.ts b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.ts
similarity index 92%
rename from plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.ts
rename to plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.ts
index 4205bd231b..41ae2d80d7 100644
--- a/plugins/events-backend-module-aws-sqs/src/service/AwsSqsConsumingEventPublisherEventsModule.ts
+++ b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.ts
@@ -27,9 +27,9 @@ import { AwsSqsConsumingEventPublisher } from '../publisher/AwsSqsConsumingEvent
*
* @alpha
*/
-export const awsSqsConsumingEventPublisherEventsModule = createBackendModule({
+export const eventsModuleAwsSqsConsumingEventPublisher = createBackendModule({
pluginId: 'events',
- moduleId: 'awsSqsConsumingEventPublisherEventsModule',
+ moduleId: 'awsSqsConsumingEventPublisher',
register(env) {
env.registerInit({
deps: {
diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md
index df7cfc4aa9..159603d965 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.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-azure/alpha-api-report.md b/plugins/events-backend-module-azure/alpha-api-report.md
index e3fed2cab0..1bd568d1df 100644
--- a/plugins/events-backend-module-azure/alpha-api-report.md
+++ b/plugins/events-backend-module-azure/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const azureDevOpsEventRouterEventsModule: () => BackendFeature;
+export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json
index ca0e0e614f..ef00f0f3b9 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.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/events-backend-module-azure/src/alpha.ts b/plugins/events-backend-module-azure/src/alpha.ts
index 8eacbd8270..07334fcbda 100644
--- a/plugins/events-backend-module-azure/src/alpha.ts
+++ b/plugins/events-backend-module-azure/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { azureDevOpsEventRouterEventsModule } from './service/AzureDevOpsEventRouterEventsModule';
+export { eventsModuleAzureDevOpsEventRouter } from './service/eventsModuleAzureDevOpsEventRouter';
diff --git a/plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.test.ts b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts
similarity index 88%
rename from plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.test.ts
rename to plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts
index dbd61782ae..1ff756a2d2 100644
--- a/plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.test.ts
+++ b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts
@@ -16,10 +16,10 @@
import { startTestBackend } from '@backstage/backend-test-utils';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { azureDevOpsEventRouterEventsModule } from './AzureDevOpsEventRouterEventsModule';
+import { eventsModuleAzureDevOpsEventRouter } from './eventsModuleAzureDevOpsEventRouter';
import { AzureDevOpsEventRouter } from '../router/AzureDevOpsEventRouter';
-describe('azureDevOpsEventRouterEventsModule', () => {
+describe('eventsModuleAzureDevOpsEventRouter', () => {
it('should be correctly wired and set up', async () => {
let addedPublisher: AzureDevOpsEventRouter | undefined;
let addedSubscriber: AzureDevOpsEventRouter | undefined;
@@ -35,7 +35,7 @@ describe('azureDevOpsEventRouterEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [],
- features: [azureDevOpsEventRouterEventsModule()],
+ features: [eventsModuleAzureDevOpsEventRouter()],
});
expect(addedPublisher).not.toBeUndefined();
diff --git a/plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.ts b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.ts
similarity index 95%
rename from plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.ts
rename to plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.ts
index 18851befa4..36f3acada0 100644
--- a/plugins/events-backend-module-azure/src/service/AzureDevOpsEventRouterEventsModule.ts
+++ b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.ts
@@ -25,7 +25,7 @@ import { AzureDevOpsEventRouter } from '../router/AzureDevOpsEventRouter';
*
* @alpha
*/
-export const azureDevOpsEventRouterEventsModule = createBackendModule({
+export const eventsModuleAzureDevOpsEventRouter = createBackendModule({
pluginId: 'events',
moduleId: 'azureDevOpsEventRouter',
register(env) {
diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
index 5f2a679c67..9cf0d0a70e 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.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
## 0.1.5-next.1
### Patch Changes
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 f8e550bf98..5e63ae36c8 100644
--- a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
+++ b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const bitbucketCloudEventRouterEventsModule: () => BackendFeature;
+export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json
index 44849ff0fc..fa7dba892e 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.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/events-backend-module-bitbucket-cloud/src/alpha.ts b/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts
index e19ff9c9b5..75cda4327d 100644
--- a/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts
+++ b/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { bitbucketCloudEventRouterEventsModule } from './service/BitbucketCloudEventRouterEventsModule';
+export { eventsModuleBitbucketCloudEventRouter } from './service/eventsModuleBitbucketCloudEventRouter';
diff --git a/plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.test.ts b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts
similarity index 88%
rename from plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.test.ts
rename to plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts
index 60ce5b713e..17d2252c7b 100644
--- a/plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.test.ts
+++ b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts
@@ -16,10 +16,10 @@
import { startTestBackend } from '@backstage/backend-test-utils';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { bitbucketCloudEventRouterEventsModule } from './BitbucketCloudEventRouterEventsModule';
+import { eventsModuleBitbucketCloudEventRouter } from './eventsModuleBitbucketCloudEventRouter';
import { BitbucketCloudEventRouter } from '../router/BitbucketCloudEventRouter';
-describe('bitbucketCloudEventRouterEventsModule', () => {
+describe('eventsModuleBitbucketCloudEventRouter', () => {
it('should be correctly wired and set up', async () => {
let addedPublisher: BitbucketCloudEventRouter | undefined;
let addedSubscriber: BitbucketCloudEventRouter | undefined;
@@ -35,7 +35,7 @@ describe('bitbucketCloudEventRouterEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [],
- features: [bitbucketCloudEventRouterEventsModule()],
+ features: [eventsModuleBitbucketCloudEventRouter()],
});
expect(addedPublisher).not.toBeUndefined();
diff --git a/plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.ts b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.ts
similarity index 95%
rename from plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.ts
rename to plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.ts
index 9516651aa3..60a8cc31c8 100644
--- a/plugins/events-backend-module-bitbucket-cloud/src/service/BitbucketCloudEventRouterEventsModule.ts
+++ b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.ts
@@ -25,7 +25,7 @@ import { BitbucketCloudEventRouter } from '../router/BitbucketCloudEventRouter';
*
* @alpha
*/
-export const bitbucketCloudEventRouterEventsModule = createBackendModule({
+export const eventsModuleBitbucketCloudEventRouter = createBackendModule({
pluginId: 'events',
moduleId: 'bitbucketCloudEventRouter',
register(env) {
diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md
index 263fe8ac5b..accd659217 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.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-gerrit/alpha-api-report.md b/plugins/events-backend-module-gerrit/alpha-api-report.md
index f610d518e7..d1be54730f 100644
--- a/plugins/events-backend-module-gerrit/alpha-api-report.md
+++ b/plugins/events-backend-module-gerrit/alpha-api-report.md
@@ -6,7 +6,7 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const gerritEventRouterEventsModule: () => BackendFeature;
+export const eventsModuleGerritEventRouter: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json
index 3a407cb786..de5d104781 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.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/events-backend-module-gerrit/src/alpha.ts b/plugins/events-backend-module-gerrit/src/alpha.ts
index 26fd89b14d..788331b998 100644
--- a/plugins/events-backend-module-gerrit/src/alpha.ts
+++ b/plugins/events-backend-module-gerrit/src/alpha.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { gerritEventRouterEventsModule } from './service/GerritEventRouterEventsModule';
+export { eventsModuleGerritEventRouter } from './service/eventsModuleGerritEventRouter';
diff --git a/plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.test.ts b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts
similarity index 89%
rename from plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.test.ts
rename to plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts
index 6a8f4f46ff..88ef995966 100644
--- a/plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.test.ts
+++ b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts
@@ -16,10 +16,10 @@
import { startTestBackend } from '@backstage/backend-test-utils';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { gerritEventRouterEventsModule } from './GerritEventRouterEventsModule';
+import { eventsModuleGerritEventRouter } from './eventsModuleGerritEventRouter';
import { GerritEventRouter } from '../router/GerritEventRouter';
-describe('gerritEventRouterEventsModule', () => {
+describe('eventsModuleGerritEventRouter', () => {
it('should be correctly wired and set up', async () => {
let addedPublisher: GerritEventRouter | undefined;
let addedSubscriber: GerritEventRouter | undefined;
@@ -35,7 +35,7 @@ describe('gerritEventRouterEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [],
- features: [gerritEventRouterEventsModule()],
+ features: [eventsModuleGerritEventRouter()],
});
expect(addedPublisher).not.toBeUndefined();
diff --git a/plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.ts b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.ts
similarity index 95%
rename from plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.ts
rename to plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.ts
index 31f5c9b384..8d490ea0b2 100644
--- a/plugins/events-backend-module-gerrit/src/service/GerritEventRouterEventsModule.ts
+++ b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.ts
@@ -25,7 +25,7 @@ import { GerritEventRouter } from '../router/GerritEventRouter';
*
* @alpha
*/
-export const gerritEventRouterEventsModule = createBackendModule({
+export const eventsModuleGerritEventRouter = createBackendModule({
pluginId: 'events',
moduleId: 'gerritEventRouter',
register(env) {
diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md
index ca28508b5c..b531c5db52 100644
--- a/plugins/events-backend-module-github/CHANGELOG.md
+++ b/plugins/events-backend-module-github/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-events-backend-module-github
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-github/alpha-api-report.md b/plugins/events-backend-module-github/alpha-api-report.md
index cb95928b17..c233df8634 100644
--- a/plugins/events-backend-module-github/alpha-api-report.md
+++ b/plugins/events-backend-module-github/alpha-api-report.md
@@ -6,10 +6,10 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const githubEventRouterEventsModule: () => BackendFeature;
+export const eventsModuleGithubEventRouter: () => BackendFeature;
// @alpha
-export const githubWebhookEventsModule: () => BackendFeature;
+export const eventsModuleGithubWebhook: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json
index e19f5a66e1..4a010f5841 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.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/events-backend-module-github/src/alpha.ts b/plugins/events-backend-module-github/src/alpha.ts
index 8a712cacb1..2db8e9d9aa 100644
--- a/plugins/events-backend-module-github/src/alpha.ts
+++ b/plugins/events-backend-module-github/src/alpha.ts
@@ -14,5 +14,5 @@
* limitations under the License.
*/
-export { githubEventRouterEventsModule } from './service/GithubEventRouterEventsModule';
-export { githubWebhookEventsModule } from './service/GithubWebhookEventsModule';
+export { eventsModuleGithubEventRouter } from './service/eventsModuleGithubEventRouter';
+export { eventsModuleGithubWebhook } from './service/eventsModuleGithubWebhook';
diff --git a/plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.test.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts
similarity index 89%
rename from plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.test.ts
rename to plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts
index 0e2ca69366..bfa186c7bc 100644
--- a/plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.test.ts
+++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts
@@ -16,10 +16,10 @@
import { startTestBackend } from '@backstage/backend-test-utils';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { githubEventRouterEventsModule } from './GithubEventRouterEventsModule';
+import { eventsModuleGithubEventRouter } from './eventsModuleGithubEventRouter';
import { GithubEventRouter } from '../router/GithubEventRouter';
-describe('githubEventRouterEventsModule', () => {
+describe('eventsModuleGithubEventRouter', () => {
it('should be correctly wired and set up', async () => {
let addedPublisher: GithubEventRouter | undefined;
let addedSubscriber: GithubEventRouter | undefined;
@@ -35,7 +35,7 @@ describe('githubEventRouterEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [],
- features: [githubEventRouterEventsModule()],
+ features: [eventsModuleGithubEventRouter()],
});
expect(addedPublisher).not.toBeUndefined();
diff --git a/plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.ts
similarity index 95%
rename from plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.ts
rename to plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.ts
index 56cc571763..17485098c2 100644
--- a/plugins/events-backend-module-github/src/service/GithubEventRouterEventsModule.ts
+++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.ts
@@ -25,7 +25,7 @@ import { GithubEventRouter } from '../router/GithubEventRouter';
*
* @alpha
*/
-export const githubEventRouterEventsModule = createBackendModule({
+export const eventsModuleGithubEventRouter = createBackendModule({
pluginId: 'events',
moduleId: 'githubEventRouter',
register(env) {
diff --git a/plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.test.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts
similarity index 94%
rename from plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.test.ts
rename to plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts
index 9e33cac6a0..b8a252aaba 100644
--- a/plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.test.ts
+++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts
@@ -23,9 +23,9 @@ import {
RequestDetails,
} from '@backstage/plugin-events-node';
import { sign } from '@octokit/webhooks-methods';
-import { githubWebhookEventsModule } from './GithubWebhookEventsModule';
+import { eventsModuleGithubWebhook } from './eventsModuleGithubWebhook';
-describe('githubWebhookEventsModule', () => {
+describe('eventsModuleGithubWebhook', () => {
const secret = 'valid-secret';
const payload = { test: 'payload' };
const payloadString = JSON.stringify(payload);
@@ -60,7 +60,7 @@ describe('githubWebhookEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [[coreServices.config, config]],
- features: [githubWebhookEventsModule()],
+ features: [eventsModuleGithubWebhook()],
});
expect(addedIngress).not.toBeUndefined();
diff --git a/plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.ts
similarity index 95%
rename from plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.ts
rename to plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.ts
index 10cb12e431..7e89ceead7 100644
--- a/plugins/events-backend-module-github/src/service/GithubWebhookEventsModule.ts
+++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.ts
@@ -28,7 +28,7 @@ import { createGithubSignatureValidator } from '../http/createGithubSignatureVal
*
* @alpha
*/
-export const githubWebhookEventsModule = createBackendModule({
+export const eventsModuleGithubWebhook = createBackendModule({
pluginId: 'events',
moduleId: 'githubWebhook',
register(env) {
diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md
index ea0787ca23..f992585219 100644
--- a/plugins/events-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/events-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-events-backend-module-gitlab
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/events-backend-module-gitlab/alpha-api-report.md b/plugins/events-backend-module-gitlab/alpha-api-report.md
index 64727cc844..bf61f66a4b 100644
--- a/plugins/events-backend-module-gitlab/alpha-api-report.md
+++ b/plugins/events-backend-module-gitlab/alpha-api-report.md
@@ -6,10 +6,10 @@
import { BackendFeature } from '@backstage/backend-plugin-api';
// @alpha
-export const gitlabEventRouterEventsModule: () => BackendFeature;
+export const eventsModuleGitlabEventRouter: () => BackendFeature;
// @alpha
-export const gitlabWebhookEventsModule: () => BackendFeature;
+export const eventsModuleGitlabWebhook: () => BackendFeature;
// (No @packageDocumentation comment for this package)
```
diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json
index 4e9510ad80..917f9fdb89 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.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/events-backend-module-gitlab/src/alpha.ts b/plugins/events-backend-module-gitlab/src/alpha.ts
index 357c9f81ce..65610af96c 100644
--- a/plugins/events-backend-module-gitlab/src/alpha.ts
+++ b/plugins/events-backend-module-gitlab/src/alpha.ts
@@ -14,5 +14,5 @@
* limitations under the License.
*/
-export { gitlabEventRouterEventsModule } from './service/GitlabEventRouterEventsModule';
-export { gitlabWebhookEventsModule } from './service/GitlabWebhookEventsModule';
+export { eventsModuleGitlabEventRouter } from './service/eventsModuleGitlabEventRouter';
+export { eventsModuleGitlabWebhook } from './service/eventsModuleGitlabWebhook';
diff --git a/plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.test.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts
similarity index 89%
rename from plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.test.ts
rename to plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts
index f8b03bc0f3..86a0df6e68 100644
--- a/plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.test.ts
+++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts
@@ -16,10 +16,10 @@
import { startTestBackend } from '@backstage/backend-test-utils';
import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha';
-import { gitlabEventRouterEventsModule } from './GitlabEventRouterEventsModule';
+import { eventsModuleGitlabEventRouter } from './eventsModuleGitlabEventRouter';
import { GitlabEventRouter } from '../router/GitlabEventRouter';
-describe('gitlabEventRouterEventsModule', () => {
+describe('eventsModuleGitlabEventRouter', () => {
it('should be correctly wired and set up', async () => {
let addedPublisher: GitlabEventRouter | undefined;
let addedSubscriber: GitlabEventRouter | undefined;
@@ -35,7 +35,7 @@ describe('gitlabEventRouterEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [],
- features: [gitlabEventRouterEventsModule()],
+ features: [eventsModuleGitlabEventRouter()],
});
expect(addedPublisher).not.toBeUndefined();
diff --git a/plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.ts
similarity index 95%
rename from plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.ts
rename to plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.ts
index 39ccd5cd60..3425601529 100644
--- a/plugins/events-backend-module-gitlab/src/service/GitlabEventRouterEventsModule.ts
+++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.ts
@@ -25,7 +25,7 @@ import { GitlabEventRouter } from '../router/GitlabEventRouter';
*
* @alpha
*/
-export const gitlabEventRouterEventsModule = createBackendModule({
+export const eventsModuleGitlabEventRouter = createBackendModule({
pluginId: 'events',
moduleId: 'gitlabEventRouter',
register(env) {
diff --git a/plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.test.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts
similarity index 95%
rename from plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.test.ts
rename to plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts
index b42f2c474e..c38233ecfd 100644
--- a/plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.test.ts
+++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts
@@ -22,7 +22,7 @@ import {
HttpPostIngressOptions,
RequestDetails,
} from '@backstage/plugin-events-node';
-import { gitlabWebhookEventsModule } from './GitlabWebhookEventsModule';
+import { eventsModuleGitlabWebhook } from './eventsModuleGitlabWebhook';
describe('gitlabWebhookEventsModule', () => {
const requestWithToken = (token?: string) => {
@@ -55,7 +55,7 @@ describe('gitlabWebhookEventsModule', () => {
await startTestBackend({
extensionPoints: [[eventsExtensionPoint, extensionPoint]],
services: [[coreServices.config, config]],
- features: [gitlabWebhookEventsModule()],
+ features: [eventsModuleGitlabWebhook()],
});
expect(addedIngress).not.toBeUndefined();
diff --git a/plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.ts
similarity index 95%
rename from plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.ts
rename to plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.ts
index c20e55caa9..0933ef342a 100644
--- a/plugins/events-backend-module-gitlab/src/service/GitlabWebhookEventsModule.ts
+++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.ts
@@ -30,7 +30,7 @@ import { createGitlabTokenValidator } from '../http/createGitlabTokenValidator';
*
* @alpha
*/
-export const gitlabWebhookEventsModule = createBackendModule({
+export const eventsModuleGitlabWebhook = createBackendModule({
pluginId: 'events',
moduleId: 'gitlabWebhook',
register(env) {
diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md
index 73b92152bd..aaf14aa68b 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.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.4-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json
index 115645436b..67d6671497 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.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/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md
index 9d78dc77c1..82fb0c6fc1 100644
--- a/plugins/events-backend/CHANGELOG.md
+++ b/plugins/events-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-events-backend
+## 0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-events-node@0.2.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/events-backend/README.md b/plugins/events-backend/README.md
index cef8ac7330..cf89f389b2 100644
--- a/plugins/events-backend/README.md
+++ b/plugins/events-backend/README.md
@@ -186,9 +186,9 @@ import { eventsExtensionPoint } from '@backstage/plugin-events-node';
// [...]
-export const yourModuleEventsModule = createBackendModule({
+export const eventsModuleYourFeature = createBackendModule({
pluginId: 'events',
- moduleId: 'yourModule',
+ moduleId: 'yourFeature',
register(env) {
// [...]
env.registerInit({
diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json
index 6e4b1684e5..4a51e56b6a 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.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/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md
index 0e1853b101..a19d9badc2 100644
--- a/plugins/events-node/CHANGELOG.md
+++ b/plugins/events-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-events-node
+## 0.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
## 0.2.4-next.1
### Patch Changes
diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json
index bd473abaa7..76eb1b2bf3 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.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/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md
index 628d6e419d..edde9b9d54 100644
--- a/plugins/example-todo-list-backend/CHANGELOG.md
+++ b/plugins/example-todo-list-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @internal/plugin-todo-list-backend
+## 1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.0.11-next.1
### Patch Changes
diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json
index 562bbc0c7f..5579f748b2 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.11-next.1",
+ "version": "1.0.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md
index 281928f88a..4739ab303e 100644
--- a/plugins/example-todo-list/CHANGELOG.md
+++ b/plugins/example-todo-list/CHANGELOG.md
@@ -1,5 +1,13 @@
# @internal/plugin-todo-list
+## 1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 1.0.11-next.1
### Patch Changes
diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json
index b572bfc215..a7366ce36f 100644
--- a/plugins/example-todo-list/package.json
+++ b/plugins/example-todo-list/package.json
@@ -1,6 +1,6 @@
{
"name": "@internal/plugin-todo-list",
- "version": "1.0.11-next.1",
+ "version": "1.0.11-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 bb9023f693..7874062954 100644
--- a/plugins/explore-backend/CHANGELOG.md
+++ b/plugins/explore-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-explore-backend
+## 0.0.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.0.5-next.1
### Patch Changes
diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json
index f16954ad47..dbdab19329 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.5-next.1",
+ "version": "0.0.5-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore-react/CHANGELOG.md b/plugins/explore-react/CHANGELOG.md
index 135369b215..1f68752e6e 100644
--- a/plugins/explore-react/CHANGELOG.md
+++ b/plugins/explore-react/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-explore-react
+## 0.0.27-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.0.27-next.1
### Patch Changes
diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json
index 26d5b8465c..6bb7ad5f0a 100644
--- a/plugins/explore-react/package.json
+++ b/plugins/explore-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-explore-react",
"description": "A frontend library for Backstage plugins that want to interact with the explore plugin",
- "version": "0.0.27-next.1",
+ "version": "0.0.27-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 8942e1f286..72d93cf927 100644
--- a/plugins/explore/CHANGELOG.md
+++ b/plugins/explore/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-explore
+## 0.4.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-explore-react@0.0.27-next.2
+
## 0.4.1-next.1
### Patch Changes
diff --git a/plugins/explore/package.json b/plugins/explore/package.json
index 15d642af77..c91671c816 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.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/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md
index 81e7c9b7c7..1fbf09d8d4 100644
--- a/plugins/firehydrant/CHANGELOG.md
+++ b/plugins/firehydrant/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-firehydrant
+## 0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.33-next.1
### Patch Changes
diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json
index 3f4b86a192..293679c2ea 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.1.33-next.1",
+ "version": "0.1.33-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 ec2b669edb..af439b6fd0 100644
--- a/plugins/fossa/CHANGELOG.md
+++ b/plugins/fossa/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-fossa
+## 0.2.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.48-next.1
### Patch Changes
diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json
index ff2d936880..1135c76bb1 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.48-next.1",
+ "version": "0.2.48-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md
index 0f3c21ee25..2460deb73c 100644
--- a/plugins/gcalendar/CHANGELOG.md
+++ b/plugins/gcalendar/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-gcalendar
+## 0.3.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.12-next.1
### Patch Changes
diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json
index fc0c8961f5..83471340b8 100644
--- a/plugins/gcalendar/package.json
+++ b/plugins/gcalendar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-gcalendar",
- "version": "0.3.12-next.1",
+ "version": "0.3.12-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md
index 3857a37d0f..ecb3ec60fc 100644
--- a/plugins/gcp-projects/CHANGELOG.md
+++ b/plugins/gcp-projects/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-gcp-projects
+## 0.3.35-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.35-next.1
### Patch Changes
diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json
index e62870eb11..1029b37cd0 100644
--- a/plugins/gcp-projects/package.json
+++ b/plugins/gcp-projects/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gcp-projects",
"description": "A Backstage plugin that helps you manage projects in GCP",
- "version": "0.3.35-next.1",
+ "version": "0.3.35-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md
index 52b1bfe29e..c97568b076 100644
--- a/plugins/git-release-manager/CHANGELOG.md
+++ b/plugins/git-release-manager/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-git-release-manager
+## 0.3.29-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 0.3.29-next.1
### Patch Changes
diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json
index ce2577c7b9..0c9507bc24 100644
--- a/plugins/git-release-manager/package.json
+++ b/plugins/git-release-manager/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-git-release-manager",
"description": "A Backstage plugin that helps you manage releases in git",
- "version": "0.3.29-next.1",
+ "version": "0.3.29-next.2",
"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 112d5ff49f..ffec353673 100644
--- a/plugins/github-actions/CHANGELOG.md
+++ b/plugins/github-actions/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-github-actions
+## 0.5.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 0.5.16-next.1
### Patch Changes
diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json
index 6d8103b349..d26249218e 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.5.16-next.1",
+ "version": "0.5.16-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 3aa2e656bc..cc8c6a838e 100644
--- a/plugins/github-deployments/CHANGELOG.md
+++ b/plugins/github-deployments/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-github-deployments
+## 0.1.47-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.47-next.1
### Patch Changes
diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json
index 2c93cf3bc4..f9019b5029 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.47-next.1",
+ "version": "0.1.47-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 6a4910e4af..5a440a28f3 100644
--- a/plugins/github-issues/CHANGELOG.md
+++ b/plugins/github-issues/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-github-issues
+## 0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.5-next.1
### Patch Changes
diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json
index 6192130475..83e457a606 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.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/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md
index 38abb67517..ae15428eed 100644
--- a/plugins/github-pull-requests-board/CHANGELOG.md
+++ b/plugins/github-pull-requests-board/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-github-pull-requests-board
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json
index 5872f0608d..ff5393988b 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.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/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md
index a276f24d9e..8522e1e16c 100644
--- a/plugins/gitops-profiles/CHANGELOG.md
+++ b/plugins/gitops-profiles/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-gitops-profiles
+## 0.3.34-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.34-next.1
### Patch Changes
diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json
index c12c487f24..291b73b308 100644
--- a/plugins/gitops-profiles/package.json
+++ b/plugins/gitops-profiles/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gitops-profiles",
"description": "A Backstage plugin that helps you manage GitOps profiles",
- "version": "0.3.34-next.1",
+ "version": "0.3.34-next.2",
"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 68cdfced64..71d7aa3af0 100644
--- a/plugins/gocd/CHANGELOG.md
+++ b/plugins/gocd/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-gocd
+## 0.1.22-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.22-next.1
### Patch Changes
diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json
index 9f1f299d29..f9789ffde4 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.22-next.1",
+ "version": "0.1.22-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md
index 85e7cf021d..f110d7b813 100644
--- a/plugins/graphiql/CHANGELOG.md
+++ b/plugins/graphiql/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-graphiql
+## 0.2.48-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.48-next.1
### Patch Changes
diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json
index 27a1ad7e07..a608ecb8db 100644
--- a/plugins/graphiql/package.json
+++ b/plugins/graphiql/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphiql",
"description": "Backstage plugin for browsing GraphQL APIs",
- "version": "0.2.48-next.1",
+ "version": "0.2.48-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md
index 79405f2635..0ab0918031 100644
--- a/plugins/graphql-backend/CHANGELOG.md
+++ b/plugins/graphql-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-graphql-backend
+## 0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/plugin-catalog-graphql@0.3.19-next.1
+
## 0.1.33-next.1
### Patch Changes
diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json
index 5293a2dbcb..401119b052 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.33-next.1",
+ "version": "0.1.33-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 556bff7f8a..982dfec9dc 100644
--- a/plugins/graphql-voyager/CHANGELOG.md
+++ b/plugins/graphql-voyager/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-graphql-voyager
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json
index cfaf9bb449..5d2b809bb3 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.1-next.1",
+ "version": "0.1.1-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 cbab27bfd6..51552a0135 100644
--- a/plugins/home/CHANGELOG.md
+++ b/plugins/home/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-home
+## 0.4.32-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.32-next.1
### Patch Changes
diff --git a/plugins/home/package.json b/plugins/home/package.json
index 1c1d7da24d..2957625478 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.4.32-next.1",
+ "version": "0.4.32-next.2",
"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 9b672bb3ab..e3d63efd71 100644
--- a/plugins/ilert/CHANGELOG.md
+++ b/plugins/ilert/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-ilert
+## 0.2.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.5-next.1
### Patch Changes
diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json
index ccfc5dbc3a..cc8183d6cb 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.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/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md
index 787e930973..f18f75d0a4 100644
--- a/plugins/jenkins-backend/CHANGELOG.md
+++ b/plugins/jenkins-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-jenkins-backend
+## 0.1.33-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.33-next.1
### Patch Changes
diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json
index 6228f6e83e..daf5073792 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.1.33-next.1",
+ "version": "0.1.33-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 098d3154c4..fe8f1e2d13 100644
--- a/plugins/jenkins/CHANGELOG.md
+++ b/plugins/jenkins/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-jenkins
+## 0.7.15-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.7.15-next.1
### Patch Changes
diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json
index 59c3d92f6c..204d88db60 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.7.15-next.1",
+ "version": "0.7.15-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 02c498e3fe..92bcf3de3f 100644
--- a/plugins/kafka-backend/CHANGELOG.md
+++ b/plugins/kafka-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-kafka-backend
+## 0.2.36-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.36-next.1
### Patch Changes
diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json
index 61e32c8177..38b1f60fcb 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.36-next.1",
+ "version": "0.2.36-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 d55d1f74ec..1706f206e7 100644
--- a/plugins/kafka/CHANGELOG.md
+++ b/plugins/kafka/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-kafka
+## 0.3.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.3.16-next.1
### Patch Changes
diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json
index 04cb3c0da0..017c14881a 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.16-next.1",
+ "version": "0.3.16-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 a502089e13..ac1287f8aa 100644
--- a/plugins/kubernetes-backend/CHANGELOG.md
+++ b/plugins/kubernetes-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-kubernetes-backend
+## 0.9.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.9.4-next.1
### Patch Changes
diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json
index 3e45bed285..ee7844c76e 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.9.4-next.1",
+ "version": "0.9.4-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 ea6a7f0732..05929a7d46 100644
--- a/plugins/kubernetes/CHANGELOG.md
+++ b/plugins/kubernetes/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-kubernetes
+## 0.7.9-next.2
+
+### Patch Changes
+
+- 8adeb19b37d: GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.7.9-next.1
### Patch Changes
diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json
index 39d4cfdec6..ed806ee521 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.7.9-next.1",
+ "version": "0.7.9-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes/src/plugin.ts b/plugins/kubernetes/src/plugin.ts
index 124bff831b..e2b13f43fe 100644
--- a/plugins/kubernetes/src/plugin.ts
+++ b/plugins/kubernetes/src/plugin.ts
@@ -23,6 +23,7 @@ import {
createRouteRef,
discoveryApiRef,
identityApiRef,
+ gitlabAuthApiRef,
googleAuthApiRef,
microsoftAuthApiRef,
oktaAuthApiRef,
@@ -49,18 +50,21 @@ export const kubernetesPlugin = createPlugin({
createApiFactory({
api: kubernetesAuthProvidersApiRef,
deps: {
+ gitlabAuthApi: gitlabAuthApiRef,
googleAuthApi: googleAuthApiRef,
microsoftAuthApi: microsoftAuthApiRef,
oktaAuthApi: oktaAuthApiRef,
oneloginAuthApi: oneloginAuthApiRef,
},
factory: ({
+ gitlabAuthApi,
googleAuthApi,
microsoftAuthApi,
oktaAuthApi,
oneloginAuthApi,
}) => {
const oidcProviders = {
+ gitlab: gitlabAuthApi,
google: googleAuthApi,
microsoft: microsoftAuthApi,
okta: oktaAuthApi,
diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md
index 9eac651564..0caf949bd6 100644
--- a/plugins/lighthouse-backend/CHANGELOG.md
+++ b/plugins/lighthouse-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-lighthouse-backend
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json
index cb70cc6746..7fa51b3446 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.1.1-next.1",
+ "version": "0.1.1-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 219a59b025..f326707dfa 100644
--- a/plugins/lighthouse/CHANGELOG.md
+++ b/plugins/lighthouse/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-lighthouse
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.1-next.1
### Patch Changes
diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json
index 6928c32e6a..3fcb24986d 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.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/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md
index c7ea736e5a..ac922c735b 100644
--- a/plugins/linguist-backend/CHANGELOG.md
+++ b/plugins/linguist-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-linguist-backend
+## 0.2.0-next.2
+
+### Patch Changes
+
+- 8a298b47240: Added support for linguist-js options using the linguistJSOptions in the plugin, the available config can be found [here](https://www.npmjs.com/package/linguist-js#API).
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.0-next.1
### Patch Changes
diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json
index 15d4496bc8..01c4f12afa 100644
--- a/plugins/linguist-backend/package.json
+++ b/plugins/linguist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist-backend",
- "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/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md
index 471fbf4042..3d83855122 100644
--- a/plugins/linguist/CHANGELOG.md
+++ b/plugins/linguist/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-linguist
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json
index a26813a1b4..276bb81574 100644
--- a/plugins/linguist/package.json
+++ b/plugins/linguist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist",
- "version": "0.1.1-next.1",
+ "version": "0.1.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/microsoft-calendar/CHANGELOG.md b/plugins/microsoft-calendar/CHANGELOG.md
index 6347b1bcf7..69a93bc320 100644
--- a/plugins/microsoft-calendar/CHANGELOG.md
+++ b/plugins/microsoft-calendar/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-microsoft-calendar
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json
index 04f466598e..8d20a5de70 100644
--- a/plugins/microsoft-calendar/package.json
+++ b/plugins/microsoft-calendar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-microsoft-calendar",
- "version": "0.1.1-next.1",
+ "version": "0.1.1-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 0cf1afb2f6..93b27ba385 100644
--- a/plugins/newrelic-dashboard/CHANGELOG.md
+++ b/plugins/newrelic-dashboard/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-newrelic-dashboard
+## 0.2.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.9-next.1
### Patch Changes
diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json
index 93b3af02d0..9958741b5f 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.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/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md
index 4c319caeed..bd0ef0d06f 100644
--- a/plugins/newrelic/CHANGELOG.md
+++ b/plugins/newrelic/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-newrelic
+## 0.3.34-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.34-next.1
### Patch Changes
diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json
index bacfc2e2f1..3ad74b3949 100644
--- a/plugins/newrelic/package.json
+++ b/plugins/newrelic/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-newrelic",
"description": "A Backstage plugin that integrates towards New Relic",
- "version": "0.3.34-next.1",
+ "version": "0.3.34-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 a9020f76c3..a3743722b8 100644
--- a/plugins/octopus-deploy/CHANGELOG.md
+++ b/plugins/octopus-deploy/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-octopus-deploy
+## 0.1.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.0-next.1
### Patch Changes
diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json
index c5cdf1fed4..9ba86f1587 100644
--- a/plugins/octopus-deploy/package.json
+++ b/plugins/octopus-deploy/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-octopus-deploy",
- "version": "0.1.0-next.1",
+ "version": "0.1.0-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 c67228c438..cb59276110 100644
--- a/plugins/org-react/CHANGELOG.md
+++ b/plugins/org-react/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-org-react
+## 0.1.5-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.5-next.1
### Patch Changes
diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json
index 853ba7058d..a2e6623523 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.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/org/CHANGELOG.md b/plugins/org/CHANGELOG.md
index 15cb675035..4728f8be20 100644
--- a/plugins/org/CHANGELOG.md
+++ b/plugins/org/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-org
+## 0.6.6-next.2
+
+### Patch Changes
+
+- a06fcac4040: Add styling to the `MembersListCard` and `ComponentsGrid` to handle overflow text.
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.6.6-next.1
### Patch Changes
diff --git a/plugins/org/package.json b/plugins/org/package.json
index 08cadc11db..bd7ea9a344 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.6-next.1",
+ "version": "0.6.6-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 e6e2519fba..37189de162 100644
--- a/plugins/pagerduty/CHANGELOG.md
+++ b/plugins/pagerduty/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-pagerduty
+## 0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.5.9-next.1
### Patch Changes
diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json
index 9f57e8bfcd..0ae7623240 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.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/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md
index 79c9e4c931..aa43870b1d 100644
--- a/plugins/periskop-backend/CHANGELOG.md
+++ b/plugins/periskop-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-periskop-backend
+## 0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json
index bc72277f12..11e38bcd36 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.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/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md
index 6be9142f0e..d41640b55c 100644
--- a/plugins/periskop/CHANGELOG.md
+++ b/plugins/periskop/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-periskop
+## 0.1.14-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json
index 06d5827ebe..1e7ca292d1 100644
--- a/plugins/periskop/package.json
+++ b/plugins/periskop/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-periskop",
- "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/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md
index d9062aa03f..a55c711386 100644
--- a/plugins/permission-backend/CHANGELOG.md
+++ b/plugins/permission-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-permission-backend
+## 0.5.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.5.18-next.1
### Patch Changes
diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json
index 734e8c63b0..a7202c9672 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.18-next.1",
+ "version": "0.5.18-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 c9c0fc5005..59052c2184 100644
--- a/plugins/permission-node/CHANGELOG.md
+++ b/plugins/permission-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-permission-node
+## 0.7.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.7.6-next.1
### Patch Changes
diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json
index 1a9dacffa0..92c0a7685a 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.6-next.1",
+ "version": "0.7.6-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md
index ce5346c846..31832e9a83 100644
--- a/plugins/permission-react/CHANGELOG.md
+++ b/plugins/permission-react/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-permission-react
+## 0.4.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.11-next.1
### Patch Changes
diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json
index f904830280..1d5d0713b7 100644
--- a/plugins/permission-react/package.json
+++ b/plugins/permission-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-permission-react",
- "version": "0.4.11-next.1",
+ "version": "0.4.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 7ababd2832..da2697188a 100644
--- a/plugins/playlist-backend/CHANGELOG.md
+++ b/plugins/playlist-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-playlist-backend
+## 0.2.6-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.6-next.1
### Patch Changes
diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json
index 990a651ccb..2d868b950a 100644
--- a/plugins/playlist-backend/package.json
+++ b/plugins/playlist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist-backend",
- "version": "0.2.6-next.1",
+ "version": "0.2.6-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 450fc880f2..bc0263fd00 100644
--- a/plugins/playlist/CHANGELOG.md
+++ b/plugins/playlist/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-playlist
+## 0.1.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+
## 0.1.7-next.1
### Patch Changes
diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json
index 18faa09cc8..445171f9b8 100644
--- a/plugins/playlist/package.json
+++ b/plugins/playlist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist",
- "version": "0.1.7-next.1",
+ "version": "0.1.7-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 dc5562369c..8b649c44de 100644
--- a/plugins/proxy-backend/CHANGELOG.md
+++ b/plugins/proxy-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-proxy-backend
+## 0.2.37-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.37-next.1
### Patch Changes
diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json
index 72bbef0750..a7d320c37c 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.37-next.1",
+ "version": "0.2.37-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/proxy-backend/src/service/router.ts b/plugins/proxy-backend/src/service/router.ts
index b669e82f3f..6912965659 100644
--- a/plugins/proxy-backend/src/service/router.ts
+++ b/plugins/proxy-backend/src/service/router.ts
@@ -121,6 +121,11 @@ export function buildMiddleware(
// Attach the logger to the proxy config
fullConfig.logProvider = () => logger;
+ // http-proxy-middleware uses this log level to check if it should log the
+ // requests that it proxies. Setting this to the most verbose log level
+ // ensures that it always logs these requests. Our logger ends up deciding
+ // if the logs are displayed or not.
+ fullConfig.logLevel = 'debug';
// Only return the allowed HTTP headers to not forward unwanted secret headers
const requestHeaderAllowList = new Set(
diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md
index 2e1a515b5d..edda54dcd1 100644
--- a/plugins/rollbar-backend/CHANGELOG.md
+++ b/plugins/rollbar-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-rollbar-backend
+## 0.1.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.40-next.1
### Patch Changes
diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json
index 1fcb4d288b..31d802dece 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.40-next.1",
+ "version": "0.1.40-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 df90e7f8bf..943db21cce 100644
--- a/plugins/rollbar/CHANGELOG.md
+++ b/plugins/rollbar/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-rollbar
+## 0.4.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.4.16-next.1
### Patch Changes
diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json
index ff4e1d3539..a3189c147d 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.16-next.1",
+ "version": "0.4.16-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 e7a96b1596..2dcb0eb279 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-scaffolder-backend-module-cookiecutter
+## 0.2.18-next.2
+
+### Patch Changes
+
+- 62414770ead: allow container runner to be undefined in cookiecutter plugin
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.2.18-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-cookiecutter/README.md b/plugins/scaffolder-backend-module-cookiecutter/README.md
index ae34e09c96..0e8e11ef7d 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/README.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/README.md
@@ -161,3 +161,5 @@ You can do so by including the following lines in the last step of your Dockerfi
RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install cookiecutter
```
+
+In this case, you don't have to include `containerRunner` in the action configuration.
diff --git a/plugins/scaffolder-backend-module-cookiecutter/api-report.md b/plugins/scaffolder-backend-module-cookiecutter/api-report.md
index 76f2ced66f..2944f5240e 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/api-report.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/api-report.md
@@ -15,7 +15,7 @@ import { UrlReader } from '@backstage/backend-common';
export function createFetchCookiecutterAction(options: {
reader: UrlReader;
integrations: ScmIntegrations;
- containerRunner: ContainerRunner;
+ containerRunner?: ContainerRunner;
}): TemplateAction<{
url: string;
targetPath?: string | undefined;
diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json
index e0f2368664..373320191a 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.18-next.1",
+ "version": "0.2.18-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
index f8b049f95f..9d7f06afc8 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
+++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
@@ -223,4 +223,16 @@ describe('fetch:cookiecutter', () => {
}),
);
});
+
+ it('should throw error if cookiecutter is not installed and containerRunner is undefined', async () => {
+ commandExists.mockResolvedValue(false);
+ const ccAction = createFetchCookiecutterAction({
+ integrations,
+ reader: mockReader,
+ });
+
+ await expect(ccAction.handler(mockContext)).rejects.toThrow(
+ /Invalid state: containerRunner cannot be undefined when cookiecutter is not installed/,
+ );
+ });
});
diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
index 5c69b9dce2..b63a044a20 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
+++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
@@ -33,9 +33,9 @@ import {
import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
export class CookiecutterRunner {
- private readonly containerRunner: ContainerRunner;
+ private readonly containerRunner?: ContainerRunner;
- constructor({ containerRunner }: { containerRunner: ContainerRunner }) {
+ constructor({ containerRunner }: { containerRunner?: ContainerRunner }) {
this.containerRunner = containerRunner;
}
@@ -101,6 +101,11 @@ export class CookiecutterRunner {
logStream,
});
} else {
+ if (this.containerRunner === undefined) {
+ throw new Error(
+ 'Invalid state: containerRunner cannot be undefined when cookiecutter is not installed',
+ );
+ }
await this.containerRunner.runContainer({
imageName: imageName ?? 'spotify/backstage-cookiecutter',
command: 'cookiecutter',
@@ -139,7 +144,7 @@ export class CookiecutterRunner {
export function createFetchCookiecutterAction(options: {
reader: UrlReader;
integrations: ScmIntegrations;
- containerRunner: ContainerRunner;
+ containerRunner?: ContainerRunner;
}) {
const { reader, containerRunner, integrations } = options;
diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
index e816de1aa9..5c7fb1dc2d 100644
--- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-scaffolder-backend-module-rails
+## 0.4.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.4.11-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json
index 2ba80b2e32..be9d053340 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.11-next.1",
+ "version": "0.4.11-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts
index 56f85d002e..37d0bcac4a 100644
--- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts
+++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts
@@ -91,7 +91,7 @@ describe('fetch:rails', () => {
beforeEach(() => {
mockFs({ [`${mockContext.workspacePath}/result`]: {} });
- jest.restoreAllMocks();
+ jest.clearAllMocks();
});
afterEach(() => {
diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
index e804b6c33b..ae6d8734c9 100644
--- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-sentry
+## 0.1.3-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.3-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json
index acd7030e29..36f5139b28 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.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/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
index 786a2d1f2b..e87cf64167 100644
--- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-backend-module-yeoman
+## 0.2.16-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.16-next.1
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json
index 82651cf781..01ba3f5eea 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.16-next.1",
+ "version": "0.2.16-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 2ffbda38db..65a827797f 100644
--- a/plugins/scaffolder-backend/CHANGELOG.md
+++ b/plugins/scaffolder-backend/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-scaffolder-backend
+## 1.12.0-next.2
+
+### Patch Changes
+
+- 860de10fa67: Make identity valid if subject of token is a backstage server-2-server auth token
+- 65454876fb2: Minor API report tweaks
+- 9968f455921: catalog write action should allow any shape of object
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-backend@1.8.0-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/plugin-scaffolder-node@0.1.1-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.12.0-next.1
### Minor Changes
diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md
index ca9b3543af..e0f7ddb441 100644
--- a/plugins/scaffolder-backend/api-report.md
+++ b/plugins/scaffolder-backend/api-report.md
@@ -11,9 +11,11 @@ import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
import { Config } from '@backstage/config';
import { createPullRequest } from 'octokit-plugin-create-pull-request';
+import { Duration } from 'luxon';
import { Entity } from '@backstage/catalog-model';
import express from 'express';
import { GithubCredentialsProvider } from '@backstage/integration';
+import { HumanDuration } from '@backstage/types';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { JsonObject } from '@backstage/types';
import { JsonValue } from '@backstage/types';
@@ -527,6 +529,11 @@ export const createTemplateAction: <
action: TemplateActionOptions,
) => TemplateAction_2;
+// @public
+export function createWaitAction(options?: {
+ maxWaitTime?: Duration | HumanDuration;
+}): TemplateAction_2;
+
// @public
export type CreateWorkerOptions = {
taskBroker: TaskBroker;
@@ -549,6 +556,14 @@ export interface CurrentClaimedTask {
// @public
export class DatabaseTaskStore implements TaskStore {
+ // (undocumented)
+ cancelTask(
+ options: TaskStoreEmitOptions<
+ {
+ message: string;
+ } & JsonObject
+ >,
+ ): Promise;
// (undocumented)
claimTask(): Promise;
// (undocumented)
@@ -693,6 +708,8 @@ export type SerializedTaskEvent = {
// @public
export interface TaskBroker {
+ // (undocumented)
+ cancel?(taskId: string): Promise;
// (undocumented)
claim(): Promise;
// (undocumented)
@@ -730,6 +747,8 @@ export type TaskCompletionState = 'failed' | 'completed';
// @public
export interface TaskContext {
+ // (undocumented)
+ cancelSignal: AbortSignal;
// (undocumented)
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
// (undocumented)
@@ -749,16 +768,19 @@ export interface TaskContext {
}
// @public
-export type TaskEventType = 'completion' | 'log';
+export type TaskEventType = 'completion' | 'log' | 'cancelled';
// @public
export class TaskManager implements TaskContext {
+ // (undocumented)
+ get cancelSignal(): AbortSignal;
// (undocumented)
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
// (undocumented)
static create(
task: CurrentClaimedTask,
storage: TaskStore,
+ abortSignal: AbortSignal,
logger: Logger,
): TaskManager;
// (undocumented)
@@ -780,14 +802,16 @@ export type TaskSecrets = TaskSecrets_2;
// @public
export type TaskStatus =
- | 'open'
- | 'processing'
- | 'failed'
| 'cancelled'
- | 'completed';
+ | 'completed'
+ | 'failed'
+ | 'open'
+ | 'processing';
// @public
export interface TaskStore {
+ // (undocumented)
+ cancelTask?(options: TaskStoreEmitOptions): Promise;
// (undocumented)
claimTask(): Promise;
// (undocumented)
diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json
index bc4ecb8bf9..e27f3ecead 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.12.0-next.1",
+ "version": "1.12.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -64,6 +64,7 @@
"@gitbeaker/node": "^35.1.0",
"@octokit/webhooks": "^10.0.0",
"@types/express": "^4.17.6",
+ "@types/luxon": "^3.0.0",
"azure-devops-node-api": "^11.0.1",
"command-exists": "^1.2.9",
"compression": "^1.7.4",
@@ -109,6 +110,7 @@
"mock-fs": "^5.1.0",
"msw": "^1.0.0",
"supertest": "^6.1.3",
+ "wait-for-expect": "^3.0.2",
"yaml": "^2.0.0"
},
"files": [
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
index aaaf504833..9e823d2574 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
@@ -70,6 +70,7 @@ export function createCatalogWriteAction() {
// TODO: this should reference an zod entity validator if it existed.
entity: z
.object({})
+ .passthrough()
.describe(
'You can provide the same values used in the Entity schema.',
),
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
index 9ba4a27b1a..d4c8de3604 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
@@ -30,7 +30,7 @@ import {
} from './catalog';
import { TemplateFilter, TemplateGlobal } from '../../../lib';
-import { createDebugLogAction } from './debug';
+import { createDebugLogAction, createWaitAction } from './debug';
import { createFetchPlainAction, createFetchTemplateAction } from './fetch';
import {
createFilesystemDeleteAction,
@@ -159,6 +159,7 @@ export const createBuiltinActions = (
config,
}),
createDebugLogAction(),
+ createWaitAction(),
createCatalogRegisterAction({ catalogClient, integrations }),
createFetchCatalogEntityAction({ catalogClient }),
createCatalogWriteAction(),
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
index 8cc50a7eba..3776ce7f03 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
@@ -15,3 +15,4 @@
*/
export { createDebugLogAction } from './log';
+export { createWaitAction } from './wait';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts
new file mode 100644
index 0000000000..0d4cdaba4b
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2021 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 { getVoidLogger } from '@backstage/backend-common';
+import mockFs from 'mock-fs';
+import { createWaitAction } from './wait';
+import { Writable } from 'stream';
+import os from 'os';
+
+describe('debug:wait', () => {
+ const action = createWaitAction();
+
+ const logStream = {
+ write: jest.fn(),
+ } as jest.Mocked> as jest.Mocked;
+
+ const mockTmpDir = os.tmpdir();
+ const mockContext = {
+ input: {},
+ baseUrl: 'somebase',
+ workspacePath: mockTmpDir,
+ logger: getVoidLogger(),
+ logStream,
+ output: jest.fn(),
+ createTemporaryDirectory: jest.fn().mockResolvedValue(mockTmpDir),
+ };
+
+ beforeEach(() => {
+ jest.resetAllMocks();
+ });
+
+ afterEach(() => {
+ mockFs.restore();
+ });
+
+ it('should wait for specified period of time', async () => {
+ const context = {
+ ...mockContext,
+ input: {
+ milliseconds: 50,
+ },
+ };
+ const start = new Date().getTime();
+ await action.handler(context);
+ const end = new Date().getTime();
+ expect(end - start).toBeGreaterThanOrEqual(50);
+ });
+
+ it('should not allow to set waiting time longer than the max waiting time', async () => {
+ const context = {
+ ...mockContext,
+ input: {
+ minutes: 11,
+ },
+ };
+
+ await expect(async () => {
+ await action.handler(context);
+ }).rejects.toThrow(
+ 'Waiting duration is longer than the maximum threshold of 0 hours, 0 minutes, 30 seconds',
+ );
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts
new file mode 100644
index 0000000000..02cab239cb
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2021 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 { createTemplateAction } from '@backstage/plugin-scaffolder-node';
+import { HumanDuration } from '@backstage/types';
+import yaml from 'yaml';
+import { Duration } from 'luxon';
+
+const id = 'debug:wait';
+
+const MAX_WAIT_TIME_IN_ISO = 'T00:00:30';
+
+const examples = [
+ {
+ description: 'Waiting for 5 seconds',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'wait-5sec',
+ name: 'Waiting for 5 seconds',
+ input: {
+ seconds: 5,
+ },
+ },
+ ],
+ }),
+ },
+ {
+ description: 'Waiting for 5 minutes',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'wait-5min',
+ name: 'Waiting for 5 minutes',
+ input: {
+ minutes: 5,
+ },
+ },
+ ],
+ }),
+ },
+];
+
+/**
+ * Waits for a certain period of time.
+ *
+ * @remarks
+ *
+ * This task is useful to give some waiting time for manual intervention.
+ * Has to be used in a combination with other actions.
+ *
+ * @public
+ */
+export function createWaitAction(options?: {
+ maxWaitTime?: Duration | HumanDuration;
+}) {
+ const toDuration = (
+ maxWaitTime: Duration | HumanDuration | undefined,
+ ): Duration => {
+ if (maxWaitTime) {
+ if (maxWaitTime instanceof Duration) {
+ return maxWaitTime;
+ }
+ return Duration.fromObject(maxWaitTime);
+ }
+ return Duration.fromISOTime(MAX_WAIT_TIME_IN_ISO);
+ };
+
+ return createTemplateAction({
+ id,
+ description: 'Waits for a certain period of time.',
+ examples,
+ schema: {
+ input: {
+ type: 'object',
+ properties: {
+ minutes: {
+ title: 'Waiting period in minutes.',
+ type: 'number',
+ },
+ seconds: {
+ title: 'Waiting period in seconds.',
+ type: 'number',
+ },
+ milliseconds: {
+ title: 'Waiting period in milliseconds.',
+ type: 'number',
+ },
+ },
+ },
+ },
+ async handler(ctx) {
+ const delayTime = Duration.fromObject(ctx.input);
+ const maxWait = toDuration(options?.maxWaitTime);
+
+ if (delayTime.minus(maxWait).toMillis() > 0) {
+ throw new Error(
+ `Waiting duration is longer than the maximum threshold of ${maxWait.toHuman()}`,
+ );
+ }
+
+ await new Promise(resolve => {
+ const controller = new AbortController();
+ const timeoutHandle = setTimeout(abort, delayTime.toMillis());
+ ctx.signal?.addEventListener('abort', abort);
+
+ function abort() {
+ ctx.signal?.removeEventListener('abort', abort);
+ clearTimeout(timeoutHandle!);
+ controller.abort();
+ resolve('finished');
+ }
+ });
+ },
+ });
+}
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
index 2d2775572f..a2262c1f9f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
@@ -62,7 +62,7 @@ describe('publish:azure', () => {
(WebApi as unknown as jest.Mock).mockImplementation(() => mockGitApi);
beforeEach(() => {
- jest.restoreAllMocks();
+ jest.clearAllMocks();
});
it('should throw an error when the repoUrl is not well formed', async () => {
@@ -183,7 +183,12 @@ describe('publish:azure', () => {
id: '709e891c-dee7-4f91-b963-534713c0737f',
}));
- await action.handler(mockContext);
+ await action.handler({
+ ...mockContext,
+ input: {
+ repoUrl: 'dev.azure.com?repo=bob&owner=owner&organization=org',
+ },
+ });
expect(WebApi).toHaveBeenCalledWith(
'https://dev.azure.com/org',
@@ -234,7 +239,7 @@ describe('publish:azure', () => {
expect(initRepoAndPush).toHaveBeenCalledWith({
dir: mockContext.workspacePath,
remoteUrl: 'https://dev.azure.com/organization/project/_git/repo',
- defaultBranch: 'master',
+ defaultBranch: 'main',
auth: { username: 'notempty', password: 'tokenlols' },
logger: mockContext.logger,
commitMessage: 'initial commit',
diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
index 1929e3b8ac..d9302f4d74 100644
--- a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
@@ -25,7 +25,7 @@ import {
SerializedFile,
serializeDirectoryContents,
} from '../../lib/files';
-import { TemplateFilter, TemplateGlobal } from '../../lib/templating';
+import { TemplateFilter, TemplateGlobal } from '../../lib';
import { TemplateActionRegistry } from '../actions';
import { NunjucksWorkflowRunner } from '../tasks/NunjucksWorkflowRunner';
import { DecoratedActionsRegistry } from './DecoratedActionsRegistry';
@@ -94,6 +94,8 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
try {
await deserializeDirectoryContents(contentsPath, input.directoryContents);
+ const abortSignal = new AbortController().signal;
+
const result = await workflowRunner.execute({
spec: {
...input.spec,
@@ -117,6 +119,7 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
done: false,
isDryRun: true,
getWorkspaceName: async () => `dry-run-${dryRunId}`,
+ cancelSignal: abortSignal,
async emitLog(message: string, logMetadata?: JsonObject) {
if (logMetadata?.stepId === dryRunId) {
return;
@@ -128,7 +131,7 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
},
});
},
- async complete() {
+ complete: async () => {
throw new Error('Not implemented');
},
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts
new file mode 100644
index 0000000000..4c0eb94c82
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2021 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 { DatabaseManager } from '@backstage/backend-common';
+import { ConfigReader } from '@backstage/config';
+import { DatabaseTaskStore } from './DatabaseTaskStore';
+import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { ConflictError } from '@backstage/errors';
+
+const createStore = async () => {
+ const manager = DatabaseManager.fromConfig(
+ new ConfigReader({
+ backend: {
+ database: {
+ client: 'better-sqlite3',
+ connection: ':memory:',
+ },
+ },
+ }),
+ ).forPlugin('scaffolder');
+ const store = await DatabaseTaskStore.create({
+ database: manager,
+ });
+ return { store, manager };
+};
+
+describe('DatabaseTaskStore', () => {
+ it('should create the database store and run migration', async () => {
+ const { store, manager } = await createStore();
+ expect(store).toBeDefined();
+
+ const client = await manager.getClient();
+ expect(client.schema.hasTable('tasks')).toBeTruthy();
+ expect(client.schema.hasTable('task_events')).toBeTruthy();
+ });
+
+ it('should list all created tasks', async () => {
+ const { store } = await createStore();
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+
+ const { tasks } = await store.list({});
+ expect(tasks.length).toBe(1);
+ expect(tasks[0].createdBy).toBe('me');
+ expect(tasks[0].status).toBe('open');
+ expect(tasks[0].id).toBeDefined();
+ });
+
+ it('should list filtered created tasks by createdBy', async () => {
+ const { store } = await createStore();
+
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'him',
+ });
+
+ const { tasks } = await store.list({ createdBy: 'him' });
+ expect(tasks.length).toBe(1);
+ expect(tasks[0].createdBy).toBe('him');
+ expect(tasks[0].status).toBe('open');
+ expect(tasks[0].id).toBeDefined();
+ });
+
+ it('should sent an event to start cancelling the task', async () => {
+ const { store } = await createStore();
+
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+
+ await store.cancelTask({
+ taskId,
+ body: {
+ message: `Step 2 has been cancelled.`,
+ stepId: 2,
+ status: 'cancelled',
+ },
+ });
+
+ const { events } = await store.listEvents({ taskId });
+ const event = events[0];
+ expect(event.taskId).toBe(taskId);
+ expect(event.body.status).toBe('cancelled');
+ });
+
+ it('should emit a log event', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ await store.emitLogEvent({
+ taskId,
+ body: {
+ message: 'Step #2 failed',
+ stepId: 2,
+ status: 'failed',
+ },
+ });
+ const { events } = await store.listEvents({ taskId });
+ const event = events[0];
+ expect(event.taskId).toBe(taskId);
+ expect(event.body.status).toBe('failed');
+ expect(event.type).toBe('log');
+ });
+
+ it('should complete the task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+
+ const message = `This task was marked as stale as it exceeded its timeout`;
+ await store.completeTask({
+ taskId,
+ status: 'cancelled',
+ eventBody: { message },
+ });
+
+ const taskAfterCompletion = await store.getTask(taskId);
+ expect(taskAfterCompletion.status).toBe('cancelled');
+ });
+
+ it('should claim a new task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await store.claimTask();
+
+ const claimedTask = await store.getTask(taskId);
+ expect(claimedTask.status).toBe('processing');
+ });
+
+ it('should shutdown the running task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await store.claimTask();
+ await store.shutdownTask({ taskId });
+
+ const claimedTask = await store.getTask(taskId);
+ expect(claimedTask.status).toBe('failed');
+ });
+
+ it('should be not possible to shutdown not running task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await expect(async () => {
+ await store.shutdownTask({ taskId });
+ }).rejects.toThrow(ConflictError);
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
index 879b457544..f3cb9b645e 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
@@ -220,7 +220,7 @@ export class DatabaseTaskStore implements TaskStore {
.update({
status: 'processing',
last_heartbeat_at: this.db.fn.now(),
- // remove the secrets when moving moving to processing state.
+ // remove the secrets when moving to processing state.
secrets: null,
});
@@ -287,13 +287,14 @@ export class DatabaseTaskStore implements TaskStore {
const { taskId, status, eventBody } = options;
let oldStatus: string;
- if (status === 'failed' || status === 'completed') {
+ if (['failed', 'completed', 'cancelled'].includes(status)) {
oldStatus = 'processing';
} else {
throw new Error(
`Invalid status update of run '${taskId}' to status '${status}'`,
);
}
+
await this.db.transaction(async tx => {
const [task] = await tx('tasks')
.where({
@@ -302,6 +303,40 @@ export class DatabaseTaskStore implements TaskStore {
.limit(1)
.select();
+ const updateTask = async (criteria: {
+ id: string;
+ status?: TaskStatus;
+ }) => {
+ const updateCount = await tx('tasks')
+ .where(criteria)
+ .update({
+ status,
+ });
+
+ if (updateCount !== 1) {
+ throw new ConflictError(
+ `Failed to update status to '${status}' for taskId ${taskId}`,
+ );
+ }
+
+ await tx('task_events').insert({
+ task_id: taskId,
+ event_type: 'completion',
+ body: JSON.stringify(eventBody),
+ });
+ };
+
+ if (status === 'cancelled') {
+ await updateTask({
+ id: taskId,
+ });
+ return;
+ }
+
+ if (task.status === 'cancelled') {
+ return;
+ }
+
if (!task) {
throw new Error(`No task with taskId ${taskId} found`);
}
@@ -311,25 +346,10 @@ export class DatabaseTaskStore implements TaskStore {
`as it is currently '${task.status}', expected '${oldStatus}'`,
);
}
- const updateCount = await tx('tasks')
- .where({
- id: taskId,
- status: oldStatus,
- })
- .update({
- status,
- });
- if (updateCount !== 1) {
- throw new ConflictError(
- `Failed to update status to '${status}' for taskId ${taskId}`,
- );
- }
-
- await tx('task_events').insert({
- task_id: taskId,
- event_type: 'completion',
- body: JSON.stringify(eventBody),
+ await updateTask({
+ id: taskId,
+ status: oldStatus,
});
});
}
@@ -419,4 +439,16 @@ export class DatabaseTaskStore implements TaskStore {
},
});
}
+
+ async cancelTask(
+ options: TaskStoreEmitOptions<{ message: string } & JsonObject>,
+ ): Promise {
+ const { taskId, body } = options;
+ const serializedBody = JSON.stringify(body);
+ await this.db('task_events').insert({
+ task_id: taskId,
+ event_type: 'cancelled',
+ body: serializedBody,
+ });
+ }
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
index 0d2246ed36..3b6ec54249 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
@@ -70,6 +70,7 @@ describe('DefaultWorkflowRunner', () => {
complete: async () => {},
done: false,
emitLog: async () => {},
+ cancelSignal: new AbortController().signal,
getWorkspaceName: () => Promise.resolve('test-workspace'),
});
@@ -166,7 +167,7 @@ describe('DefaultWorkflowRunner', () => {
});
await expect(runner.execute(task)).rejects.toThrow(
- /Invalid input passed to action jest-validated-action, instance requires property \"foo\"/,
+ /Invalid input passed to action jest-validated-action, instance requires property "foo"/,
);
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index 88abe05cad..629c730d48 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -15,7 +15,12 @@
*/
import { ScmIntegrations } from '@backstage/integration';
-import { TaskContext, WorkflowResponse, WorkflowRunner } from './types';
+import {
+ TaskContext,
+ TaskTrackType,
+ WorkflowResponse,
+ WorkflowRunner,
+} from './types';
import * as winston from 'winston';
import fs from 'fs-extra';
import path from 'path';
@@ -99,6 +104,7 @@ const createStepLogger = ({
export class NunjucksWorkflowRunner implements WorkflowRunner {
constructor(private readonly options: NunjucksWorkflowRunnerOptions) {}
+
private readonly tracker = scaffoldingTracker();
private isSingleTemplateString(input: string) {
@@ -180,6 +186,138 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
});
}
+ async executeStep(
+ task: TaskContext,
+ step: TaskStep,
+ context: TemplateContext,
+ renderTemplate: (template: string, values: unknown) => string,
+ taskTrack: TaskTrackType,
+ workspacePath: string,
+ ) {
+ const stepTrack = await this.tracker.stepStart(task, step);
+
+ if (task.cancelSignal.aborted) {
+ throw new Error(`Step ${step.name} has been cancelled.`);
+ }
+
+ try {
+ if (step.if) {
+ const ifResult = await this.render(step.if, context, renderTemplate);
+ if (!isTruthy(ifResult)) {
+ await stepTrack.skipFalsy();
+ return;
+ }
+ }
+
+ const action: TemplateAction =
+ this.options.actionRegistry.get(step.action);
+ const { taskLogger, streamLogger } = createStepLogger({ task, step });
+
+ if (task.isDryRun) {
+ const redactedSecrets = Object.fromEntries(
+ Object.entries(task.secrets ?? {}).map(secret => [
+ secret[0],
+ '[REDACTED]',
+ ]),
+ );
+ const debugInput =
+ (step.input &&
+ this.render(
+ step.input,
+ {
+ ...context,
+ secrets: redactedSecrets,
+ },
+ renderTemplate,
+ )) ??
+ {};
+ taskLogger.info(
+ `Running ${
+ action.id
+ } in dry-run mode with inputs (secrets redacted): ${JSON.stringify(
+ debugInput,
+ undefined,
+ 2,
+ )}`,
+ );
+ if (!action.supportsDryRun) {
+ await taskTrack.skipDryRun(step, action);
+ const outputSchema = action.schema?.output;
+ if (outputSchema) {
+ context.steps[step.id] = {
+ output: generateExampleOutput(outputSchema) as {
+ [name in string]: JsonValue;
+ },
+ };
+ } else {
+ context.steps[step.id] = { output: {} };
+ }
+ return;
+ }
+ }
+
+ // Secrets are only passed when templating the input to actions for security reasons
+ const input =
+ (step.input &&
+ this.render(
+ step.input,
+ { ...context, secrets: task.secrets ?? {} },
+ renderTemplate,
+ )) ??
+ {};
+
+ if (action.schema?.input) {
+ const validateResult = validateJsonSchema(input, action.schema.input);
+ if (!validateResult.valid) {
+ const errors = validateResult.errors.join(', ');
+ throw new InputError(
+ `Invalid input passed to action ${action.id}, ${errors}`,
+ );
+ }
+ }
+
+ 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,
+ });
+
+ // Remove all temporary directories that were created when executing the action
+ for (const tmpDir of tmpDirs) {
+ await fs.remove(tmpDir);
+ }
+
+ context.steps[step.id] = { output: stepOutput };
+
+ if (task.cancelSignal.aborted) {
+ throw new Error(`Step ${step.name} has been cancelled.`);
+ }
+
+ await stepTrack.markSuccessful();
+ } catch (err) {
+ await taskTrack.markFailed(step, err);
+ await stepTrack.markFailed();
+ throw err;
+ }
+ }
+
async execute(task: TaskContext): Promise {
if (!isValidTaskSpec(task.spec)) {
throw new InputError(
@@ -191,7 +329,12 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
await task.getWorkspaceName(),
);
- const { integrations } = this.options;
+ const {
+ additionalTemplateFilters,
+ additionalTemplateGlobals,
+ integrations,
+ } = this.options;
+
const renderTemplate = await SecureTemplater.loadRenderer({
// TODO(blam): let's work out how we can deprecate this.
// We shouldn't really need to be exposing these now we can deal with
@@ -200,8 +343,8 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
parseRepoUrl(url: string) {
return parseRepoUrl(url, integrations);
},
- additionalTemplateFilters: this.options.additionalTemplateFilters,
- additionalTemplateGlobals: this.options.additionalTemplateGlobals,
+ additionalTemplateFilters,
+ additionalTemplateGlobals,
});
try {
@@ -215,126 +358,14 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
};
for (const step of task.spec.steps) {
- const stepTrack = await this.tracker.stepStart(task, step);
- try {
- if (step.if) {
- const ifResult = await this.render(
- step.if,
- context,
- renderTemplate,
- );
- if (!isTruthy(ifResult)) {
- await stepTrack.skipFalsy();
- continue;
- }
- }
-
- const action = this.options.actionRegistry.get(step.action);
- const { taskLogger, streamLogger } = createStepLogger({ task, step });
-
- if (task.isDryRun) {
- const redactedSecrets = Object.fromEntries(
- Object.entries(task.secrets ?? {}).map(secret => [
- secret[0],
- '[REDACTED]',
- ]),
- );
- const debugInput =
- (step.input &&
- this.render(
- step.input,
- {
- ...context,
- secrets: redactedSecrets,
- },
- renderTemplate,
- )) ??
- {};
- taskLogger.info(
- `Running ${
- action.id
- } in dry-run mode with inputs (secrets redacted): ${JSON.stringify(
- debugInput,
- undefined,
- 2,
- )}`,
- );
- if (!action.supportsDryRun) {
- await taskTrack.skipDryRun(step, action);
- const outputSchema = action.schema?.output;
- if (outputSchema) {
- context.steps[step.id] = {
- output: generateExampleOutput(outputSchema) as {
- [name in string]: JsonValue;
- },
- };
- } else {
- context.steps[step.id] = { output: {} };
- }
- continue;
- }
- }
-
- // Secrets are only passed when templating the input to actions for security reasons
- const input =
- (step.input &&
- this.render(
- step.input,
- { ...context, secrets: task.secrets ?? {} },
- renderTemplate,
- )) ??
- {};
-
- if (action.schema?.input) {
- const validateResult = validateJsonSchema(
- input,
- action.schema.input,
- );
- if (!validateResult.valid) {
- const errors = validateResult.errors.join(', ');
- throw new InputError(
- `Invalid input passed to action ${action.id}, ${errors}`,
- );
- }
- }
-
- 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,
- });
-
- // Remove all temporary directories that were created when executing the action
- for (const tmpDir of tmpDirs) {
- await fs.remove(tmpDir);
- }
-
- context.steps[step.id] = { output: stepOutput };
-
- await stepTrack.markSuccessful();
- } catch (err) {
- await taskTrack.markFailed(step, err);
- await stepTrack.markFailed();
- throw err;
- }
+ await this.executeStep(
+ task,
+ step,
+ context,
+ renderTemplate,
+ taskTrack,
+ workspacePath,
+ );
}
const output = this.render(task.spec.output, context, renderTemplate);
@@ -380,7 +411,10 @@ function scaffoldingTracker() {
template,
});
- async function skipDryRun(step: TaskStep, action: TemplateAction) {
+ async function skipDryRun(
+ step: TaskStep,
+ action: TemplateAction,
+ ) {
task.emitLog(`Skipping because ${action.id} does not support dry-run`, {
stepId: step.id,
status: 'skipped',
@@ -409,8 +443,22 @@ function scaffoldingTracker() {
taskTimer({ result: 'failed' });
}
+ async function markCancelled(step: TaskStep) {
+ await task.emitLog(`Step ${step.id} has been cancelled.`, {
+ stepId: step.id,
+ status: 'cancelled',
+ });
+ taskCount.inc({
+ template,
+ user,
+ result: 'cancelled',
+ });
+ taskTimer({ result: 'cancelled' });
+ }
+
return {
skipDryRun,
+ markCancelled,
markSuccessful,
markFailed,
};
@@ -441,6 +489,15 @@ function scaffoldingTracker() {
stepTimer({ result: 'ok' });
}
+ async function markCancelled() {
+ stepCount.inc({
+ template,
+ step: step.name,
+ result: 'cancelled',
+ });
+ stepTimer({ result: 'cancelled' });
+ }
+
async function markFailed() {
stepCount.inc({
template,
@@ -459,8 +516,9 @@ function scaffoldingTracker() {
}
return {
- markSuccessful,
+ markCancelled,
markFailed,
+ markSuccessful,
skipFalsy,
};
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
index d01351d8ae..fc5a724e47 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
@@ -39,8 +39,13 @@ export class TaskManager implements TaskContext {
private heartbeatTimeoutId?: ReturnType;
- static create(task: CurrentClaimedTask, storage: TaskStore, logger: Logger) {
- const agent = new TaskManager(task, storage, logger);
+ static create(
+ task: CurrentClaimedTask,
+ storage: TaskStore,
+ abortSignal: AbortSignal,
+ logger: Logger,
+ ) {
+ const agent = new TaskManager(task, storage, abortSignal, logger);
agent.startTimeout();
return agent;
}
@@ -49,6 +54,7 @@ export class TaskManager implements TaskContext {
private constructor(
private readonly task: CurrentClaimedTask,
private readonly storage: TaskStore,
+ private readonly signal: AbortSignal,
private readonly logger: Logger,
) {}
@@ -56,6 +62,10 @@ export class TaskManager implements TaskContext {
return this.task.spec;
}
+ get cancelSignal() {
+ return this.signal;
+ }
+
get secrets() {
return this.task.secrets;
}
@@ -165,6 +175,33 @@ export class StorageTaskBroker implements TaskBroker {
private deferredDispatch = defer();
+ private async registerCancellable(
+ taskId: string,
+ abortController: AbortController,
+ ) {
+ let shouldUnsubscribe = false;
+ const subscription = this.event$({ taskId, after: undefined }).subscribe({
+ error: _ => {
+ subscription.unsubscribe();
+ },
+ next: ({ events }) => {
+ for (const event of events) {
+ if (event.type === 'cancelled') {
+ abortController.abort();
+ shouldUnsubscribe = true;
+ }
+
+ if (event.type === 'completion') {
+ shouldUnsubscribe = true;
+ }
+ }
+ if (shouldUnsubscribe) {
+ subscription.unsubscribe();
+ }
+ },
+ });
+ }
+
/**
* {@inheritdoc TaskBroker.claim}
*/
@@ -172,6 +209,8 @@ export class StorageTaskBroker implements TaskBroker {
for (;;) {
const pendingTask = await this.storage.claimTask();
if (pendingTask) {
+ const abortController = new AbortController();
+ await this.registerCancellable(pendingTask.id, abortController);
return TaskManager.create(
{
taskId: pendingTask.id,
@@ -180,6 +219,7 @@ export class StorageTaskBroker implements TaskBroker {
createdBy: pendingTask.createdBy,
},
this.storage,
+ abortController.signal,
this.logger,
);
}
@@ -271,4 +311,24 @@ export class StorageTaskBroker implements TaskBroker {
this.deferredDispatch.resolve();
this.deferredDispatch = defer();
}
+
+ async cancel(taskId: string) {
+ const { events } = await this.storage.listEvents({ taskId });
+ const currentStepId =
+ events.length > 0
+ ? events
+ .filter(({ body }) => body?.stepId)
+ .reduce((prev, curr) => (prev.id > curr.id ? prev : curr)).body
+ .stepId
+ : 0;
+
+ await this.storage.cancelTask?.({
+ taskId,
+ body: {
+ message: `Step ${currentStepId} has been cancelled.`,
+ stepId: currentStepId,
+ status: 'cancelled',
+ },
+ });
+ }
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
index d39671cb67..e886b31369 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
@@ -15,7 +15,7 @@
*/
import os from 'os';
-import { getVoidLogger, DatabaseManager } from '@backstage/backend-common';
+import { DatabaseManager, getVoidLogger } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
import { DatabaseTaskStore } from './DatabaseTaskStore';
import { StorageTaskBroker } from './StorageTaskBroker';
@@ -23,7 +23,14 @@ import { TaskWorker, TaskWorkerOptions } from './TaskWorker';
import { ScmIntegrations } from '@backstage/integration';
import { TemplateActionRegistry } from '../actions';
import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner';
-import { TaskBroker, TaskContext, WorkflowRunner } from './types';
+import {
+ SerializedTaskEvent,
+ TaskBroker,
+ TaskContext,
+ WorkflowRunner,
+} from './types';
+import ObservableImpl from 'zen-observable';
+import waitForExpect from 'wait-for-expect';
jest.mock('./NunjucksWorkflowRunner');
const MockedNunjucksWorkflowRunner =
@@ -198,6 +205,67 @@ describe('Concurrent TaskWorker', () => {
});
});
+describe('Cancellable TaskWorker', () => {
+ let storage: DatabaseTaskStore;
+ const integrations: ScmIntegrations = {} as ScmIntegrations;
+ const actionRegistry: TemplateActionRegistry = {} as TemplateActionRegistry;
+ const workingDirectory = os.tmpdir();
+
+ let myTask: TaskContext | undefined = undefined;
+
+ const workflowRunner: NunjucksWorkflowRunner = {
+ execute: (task: TaskContext) => {
+ myTask = task;
+ },
+ } as unknown as NunjucksWorkflowRunner;
+
+ beforeAll(async () => {
+ storage = await createStore();
+ });
+
+ beforeEach(() => {
+ jest.resetAllMocks();
+ MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner);
+ });
+
+ const logger = getVoidLogger();
+
+ it('should be able to cancel the running task', async () => {
+ const taskBroker = new StorageTaskBroker(storage, logger);
+ const taskWorker = await TaskWorker.create({
+ logger,
+ workingDirectory,
+ integrations,
+ taskBroker,
+ actionRegistry,
+ });
+
+ const steps = [...Array(10)].map(n => ({
+ id: `test${n}`,
+ name: `test${n}`,
+ action: 'not-found-action',
+ }));
+
+ const { taskId } = await taskBroker.dispatch({
+ spec: {
+ apiVersion: 'scaffolder.backstage.io/v1beta3',
+ steps,
+ output: {
+ result: '{{ steps.test.output.testOutput }}',
+ },
+ parameters: {},
+ },
+ });
+
+ await taskWorker.start();
+ await taskBroker.cancel(taskId);
+
+ await waitForExpect(() => {
+ expect(myTask?.cancelSignal.aborted).toBeTruthy();
+ });
+ });
+});
+
describe('TaskWorker internals', () => {
const TaskWorkerConstructor = TaskWorker as unknown as {
new (options: TaskWorkerOptions): TaskWorker;
@@ -219,10 +287,24 @@ describe('TaskWorker internals', () => {
},
};
+ const subscribers = new Set<
+ ZenObservable.SubscriptionObserver<{ events: SerializedTaskEvent[] }>
+ >();
+
let claimedTaskCount = 0;
const taskWorker = new TaskWorkerConstructor({
runners: { workflowRunner },
taskBroker: {
+ event$() {
+ return new ObservableImpl<{ events: SerializedTaskEvent[] }>(
+ subscriber => {
+ subscribers.add(subscriber);
+ return () => {
+ subscribers.delete(subscriber);
+ };
+ },
+ );
+ },
async claim() {
claimedTaskCount++;
return {
@@ -233,7 +315,7 @@ describe('TaskWorker internals', () => {
async complete(_result, _metadata) {},
} as TaskContext;
},
- } as TaskBroker,
+ } as unknown as TaskBroker,
concurrentTasksLimit: 2,
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
index 82829665a3..5723e7136f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
@@ -21,10 +21,7 @@ import { Logger } from 'winston';
import { TemplateActionRegistry } from '../actions';
import { ScmIntegrations } from '@backstage/integration';
import { assertError } from '@backstage/errors';
-import {
- TemplateFilter,
- TemplateGlobal,
-} from '../../lib/templating/SecureTemplater';
+import { TemplateFilter, TemplateGlobal } from '../../lib';
/**
* TaskWorkerOptions
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
index 5a91802f3e..112276b9dd 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
@@ -15,8 +15,9 @@
*/
import { JsonValue, JsonObject, Observable } from '@backstage/types';
-import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSpec, TaskStep } from '@backstage/plugin-scaffolder-common';
import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
/**
* The status of each step of the Task
@@ -24,11 +25,11 @@ import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
* @public
*/
export type TaskStatus =
- | 'open'
- | 'processing'
- | 'failed'
| 'cancelled'
- | 'completed';
+ | 'completed'
+ | 'failed'
+ | 'open'
+ | 'processing';
/**
* The state of a completed task.
@@ -57,7 +58,7 @@ export type SerializedTask = {
*
* @public
*/
-export type TaskEventType = 'completion' | 'log';
+export type TaskEventType = 'completion' | 'log' | 'cancelled';
/**
* SerializedTaskEvent
@@ -99,13 +100,17 @@ export type TaskBrokerDispatchOptions = {
* @public
*/
export interface TaskContext {
+ cancelSignal: AbortSignal;
spec: TaskSpec;
secrets?: TaskSecrets;
createdBy?: string;
done: boolean;
isDryRun?: boolean;
- emitLog(message: string, logMetadata?: JsonObject): Promise;
+
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
+
+ emitLog(message: string, logMetadata?: JsonObject): Promise;
+
getWorkspaceName(): Promise;
}
@@ -115,16 +120,23 @@ export interface TaskContext {
* @public
*/
export interface TaskBroker {
+ cancel?(taskId: string): Promise;
+
claim(): Promise;
+
dispatch(
options: TaskBrokerDispatchOptions,
): Promise;
+
vacuumTasks(options: { timeoutS: number }): Promise;
+
event$(options: {
taskId: string;
after: number | undefined;
}): Observable<{ events: SerializedTaskEvent[] }>;
+
get(taskId: string): Promise;
+
list?(options?: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>;
}
@@ -181,30 +193,51 @@ export type TaskStoreCreateTaskResult = {
* @public
*/
export interface TaskStore {
+ cancelTask?(options: TaskStoreEmitOptions): Promise;
+
createTask(
options: TaskStoreCreateTaskOptions,
): Promise;
+
getTask(taskId: string): Promise;
+
claimTask(): Promise;
+
completeTask(options: {
taskId: string;
status: TaskStatus;
eventBody: JsonObject;
}): Promise;
+
heartbeatTask(taskId: string): Promise;
+
listStaleTasks(options: { timeoutS: number }): Promise<{
tasks: { taskId: string }[];
}>;
+
list?(options: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>;
emitLogEvent(options: TaskStoreEmitOptions): Promise;
+
listEvents(
options: TaskStoreListEventsOptions,
): Promise<{ events: SerializedTaskEvent[] }>;
+
shutdownTask?(options: TaskStoreShutDownTaskOptions): Promise;
}
export type WorkflowResponse = { output: { [key: string]: JsonValue } };
+
export interface WorkflowRunner {
execute(task: TaskContext): Promise;
}
+
+export type TaskTrackType = {
+ markCancelled: (step: TaskStep) => Promise;
+ markFailed: (step: TaskStep, err: Error) => Promise;
+ markSuccessful: () => Promise;
+ skipDryRun: (
+ step: TaskStep,
+ action: TemplateAction,
+ ) => Promise;
+};
diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts
index e40958c778..b2be3e2749 100644
--- a/plugins/scaffolder-backend/src/service/router.ts
+++ b/plugins/scaffolder-backend/src/service/router.ts
@@ -94,14 +94,11 @@ function isSupportedTemplate(entity: TemplateEntityV1beta3) {
* until someone explicitly passes an IdentityApi. When we have reasonable confidence that most backstage deployments
* are using the IdentityApi, we can remove this function.
*/
-function buildDefaultIdentityClient({
- logger,
-}: {
- logger: Logger;
-}): IdentityApi {
+function buildDefaultIdentityClient(options: RouterOptions): IdentityApi {
return {
getIdentity: async ({ request }: IdentityApiGetIdentityRequest) => {
const header = request.headers.authorization;
+ const { logger } = options;
if (!header) {
return undefined;
@@ -131,6 +128,10 @@ function buildDefaultIdentityClient({
throw new TypeError('Expected string sub claim');
}
+ if (sub === 'backstage-server') {
+ return undefined;
+ }
+
// Check that it's a valid ref, otherwise this will throw.
parseEntityRef(sub);
@@ -178,8 +179,7 @@ export async function createRouter(
const logger = parentLogger.child({ plugin: 'scaffolder' });
const identity: IdentityApi =
- options.identity || buildDefaultIdentityClient({ logger });
-
+ options.identity || buildDefaultIdentityClient(options);
const workingDirectory = await getWorkingDirectory(config, logger);
const integrations = ScmIntegrations.fromConfig(config);
@@ -414,6 +414,11 @@ export async function createRouter(
delete task.secrets;
res.status(200).json(task);
})
+ .post('/v2/tasks/:taskId/cancel', async (req, res) => {
+ const { taskId } = req.params;
+ await taskBroker.cancel?.(taskId);
+ res.status(200).json({ status: 'cancelled' });
+ })
.get('/v2/tasks/:taskId/eventstream', async (req, res) => {
const { taskId } = req.params;
const after =
diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md
index 6668baa16e..37b9613524 100644
--- a/plugins/scaffolder-node/CHANGELOG.md
+++ b/plugins/scaffolder-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-scaffolder-node
+## 0.1.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
## 0.1.1-next.1
### Patch Changes
diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md
index 89b7171ef9..d5b9b73767 100644
--- a/plugins/scaffolder-node/api-report.md
+++ b/plugins/scaffolder-node/api-report.md
@@ -30,6 +30,7 @@ export type ActionContext = {
entity?: UserEntity;
ref?: string;
};
+ signal?: AbortSignal;
};
// @public
diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json
index ddb2f24083..8978c155bf 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.1-next.1",
+ "version": "0.1.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts
index cce149adbe..8827aaf98c 100644
--- a/plugins/scaffolder-node/src/actions/types.ts
+++ b/plugins/scaffolder-node/src/actions/types.ts
@@ -60,6 +60,11 @@ export type ActionContext = {
*/
ref?: string;
};
+
+ /**
+ * Implement the signal to make your custom step abortable https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
+ */
+ signal?: AbortSignal;
};
/** @public */
diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md
index d81194d2aa..25385e4816 100644
--- a/plugins/scaffolder-react/CHANGELOG.md
+++ b/plugins/scaffolder-react/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-scaffolder-react
+## 1.2.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- d9893263ba9: scaffolder/next: Fix for steps without properties
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 1.2.0-next.1
### Minor Changes
diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md
index 0fbc8d0eed..da8309d5ec 100644
--- a/plugins/scaffolder-react/api-report.md
+++ b/plugins/scaffolder-react/api-report.md
@@ -113,7 +113,7 @@ export type ListActionsResponse = Array;
// @public
export type LogEvent = {
- type: 'log' | 'completion';
+ type: 'log' | 'completion' | 'cancelled';
body: {
message: string;
stepId?: string;
@@ -126,6 +126,7 @@ export type LogEvent = {
// @public
export interface ScaffolderApi {
+ cancelTask(taskId: string): Promise;
// (undocumented)
dryRun?(options: ScaffolderDryRunOptions): Promise;
// (undocumented)
@@ -266,10 +267,11 @@ export type ScaffolderTaskOutput = {
// @public
export type ScaffolderTaskStatus =
+ | 'cancelled'
+ | 'completed'
+ | 'failed'
| 'open'
| 'processing'
- | 'failed'
- | 'completed'
| 'skipped';
// @public
@@ -287,6 +289,7 @@ export const SecretsContextProvider: (
// @public
export type TaskStream = {
+ cancelled: boolean;
loading: boolean;
error?: Error;
stepLogs: {
diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json
index 2a22881306..4e0cb590e4 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.2.0-next.1",
+ "version": "1.2.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-react/src/api/types.ts b/plugins/scaffolder-react/src/api/types.ts
index 0a517e7bff..b39555c14f 100644
--- a/plugins/scaffolder-react/src/api/types.ts
+++ b/plugins/scaffolder-react/src/api/types.ts
@@ -24,10 +24,11 @@ import { TemplateParameterSchema } from '../types';
* @public
*/
export type ScaffolderTaskStatus =
+ | 'cancelled'
+ | 'completed'
+ | 'failed'
| 'open'
| 'processing'
- | 'failed'
- | 'completed'
| 'skipped';
/**
@@ -96,7 +97,7 @@ export type ScaffolderTaskOutput = {
* @public
*/
export type LogEvent = {
- type: 'log' | 'completion';
+ type: 'log' | 'completion' | 'cancelled';
body: {
message: string;
stepId?: string;
@@ -196,6 +197,13 @@ export interface ScaffolderApi {
getTask(taskId: string): Promise;
+ /**
+ * Sends a signal to a task broker to cancel the running task by taskId.
+ *
+ * @param taskId - the id of the task
+ */
+ cancelTask(taskId: string): Promise;
+
listTasks?(options: {
filterByOwnership: 'owned' | 'all';
}): Promise<{ tasks: ScaffolderTask[] }>;
diff --git a/plugins/scaffolder-react/src/hooks/useEventStream.ts b/plugins/scaffolder-react/src/hooks/useEventStream.ts
index d8c9cf4c1f..ec49911471 100644
--- a/plugins/scaffolder-react/src/hooks/useEventStream.ts
+++ b/plugins/scaffolder-react/src/hooks/useEventStream.ts
@@ -44,6 +44,7 @@ export type ScaffolderStep = {
* @public
*/
export type TaskStream = {
+ cancelled: boolean;
loading: boolean;
error?: Error;
stepLogs: { [stepId in string]: string[] };
@@ -66,6 +67,7 @@ type ReducerLogEntry = {
type ReducerAction =
| { type: 'INIT'; data: ScaffolderTask }
+ | { type: 'CANCELLED' }
| { type: 'LOGS'; data: ReducerLogEntry[] }
| { type: 'COMPLETED'; data: ReducerLogEntry }
| { type: 'ERROR'; data: Error };
@@ -111,7 +113,7 @@ function reducer(draft: TaskStream, action: ReducerAction) {
}
if (
- ['cancelled', 'failed', 'completed'].includes(currentStep.status)
+ ['cancelled', 'completed', 'failed'].includes(currentStep.status)
) {
currentStep.endedAt = entry.createdAt;
}
@@ -131,6 +133,11 @@ function reducer(draft: TaskStream, action: ReducerAction) {
return;
}
+ case 'CANCELLED': {
+ draft.cancelled = true;
+ return;
+ }
+
case 'ERROR': {
draft.error = action.data;
draft.loading = false;
@@ -151,6 +158,7 @@ function reducer(draft: TaskStream, action: ReducerAction) {
export const useTaskEventStream = (taskId: string): TaskStream => {
const scaffolderApi = useApi(scaffolderApiRef);
const [state, dispatch] = useImmerReducer(reducer, {
+ cancelled: false,
loading: true,
completed: false,
stepLogs: {} as { [stepId in string]: string[] },
@@ -196,6 +204,9 @@ export const useTaskEventStream = (taskId: string): TaskStream => {
switch (event.type) {
case 'log':
return collectedLogEvents.push(event);
+ case 'cancelled':
+ dispatch({ type: 'CANCELLED' });
+ return undefined;
case 'completion':
emitLogs();
dispatch({ type: 'COMPLETED', data: event });
diff --git a/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx b/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
index 03604881d2..81c5a697e0 100644
--- a/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
+++ b/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
@@ -24,10 +24,10 @@ import { act, fireEvent } from '@testing-library/react';
import React from 'react';
import { Workflow } from './Workflow';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { ScaffolderApi } from '../../../api/types';
-import { scaffolderApiRef } from '../../../api/ref';
+import { ScaffolderApi, scaffolderApiRef } from '../../../api';
const scaffolderApiMock: jest.Mocked = {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md
index a0a6d7b750..d3c377154e 100644
--- a/plugins/scaffolder/CHANGELOG.md
+++ b/plugins/scaffolder/CHANGELOG.md
@@ -1,5 +1,26 @@
# @backstage/plugin-scaffolder
+## 1.12.0-next.2
+
+### Minor Changes
+
+- 0d61fcca9c3: Update `EntityPicker` to use the fully qualified entity ref instead of the humanized version.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- 0aae4596296: Fix the scaffolder validator for arrays when the item is a field in the object
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-scaffolder-react@1.2.0-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/plugin-permission-react@0.4.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.12.0-next.1
### Minor Changes
diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md
index 6b8d6d345f..45d0b2675c 100644
--- a/plugins/scaffolder/api-report.md
+++ b/plugins/scaffolder/api-report.md
@@ -360,6 +360,8 @@ export class ScaffolderClient implements ScaffolderApi_2 {
useLongPollingLogs?: boolean;
});
// (undocumented)
+ cancelTask(taskId: string): Promise;
+ // (undocumented)
dryRun(
options: ScaffolderDryRunOptions_2,
): Promise;
diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json
index 8258dceab9..7d939a3d1e 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.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/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts
index 15bd1925b3..7a3f6c14bb 100644
--- a/plugins/scaffolder/src/api.ts
+++ b/plugins/scaffolder/src/api.ts
@@ -229,24 +229,22 @@ export class ScaffolderClient implements ScaffolderApi {
const url = `${baseUrl}/v2/tasks/${encodeURIComponent(
taskId,
)}/eventstream`;
+
+ const processEvent = (event: any) => {
+ if (event.data) {
+ try {
+ subscriber.next(JSON.parse(event.data));
+ } catch (ex) {
+ subscriber.error(ex);
+ }
+ }
+ };
+
const eventSource = new EventSource(url, { withCredentials: true });
- eventSource.addEventListener('log', (event: any) => {
- if (event.data) {
- try {
- subscriber.next(JSON.parse(event.data));
- } catch (ex) {
- subscriber.error(ex);
- }
- }
- });
+ eventSource.addEventListener('log', processEvent);
+ eventSource.addEventListener('cancelled', processEvent);
eventSource.addEventListener('completion', (event: any) => {
- if (event.data) {
- try {
- subscriber.next(JSON.parse(event.data));
- } catch (ex) {
- subscriber.error(ex);
- }
- }
+ processEvent(event);
eventSource.close();
subscriber.complete();
});
@@ -310,4 +308,19 @@ export class ScaffolderClient implements ScaffolderApi {
return await response.json();
}
+
+ async cancelTask(taskId: string): Promise {
+ const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
+ const url = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}/cancel`;
+
+ const response = await this.fetchApi.fetch(url, {
+ method: 'POST',
+ });
+
+ if (!response.ok) {
+ throw await ResponseError.fromResponse(response);
+ }
+
+ return await response.json();
+ }
}
diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
index 552d0cea6a..90f6f9b393 100644
--- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
+++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
@@ -25,6 +25,7 @@ import { rootRouteRef } from '../../routes';
const scaffolderApiMock: jest.Mocked = {
scaffold: jest.fn(),
+ cancelTask: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
getTask: jest.fn(),
diff --git a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
index f78d48e686..78cdc5d935 100644
--- a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
+++ b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
@@ -19,11 +19,15 @@ import {
Content,
ErrorPage,
Header,
- Page,
LogViewer,
+ Page,
Progress,
} from '@backstage/core-components';
-import { useRouteRef, useRouteRefParams } from '@backstage/core-plugin-api';
+import {
+ useApi,
+ useRouteRef,
+ useRouteRefParams,
+} from '@backstage/core-plugin-api';
import { BackstageTheme } from '@backstage/theme';
import {
Button,
@@ -59,6 +63,7 @@ import {
scaffolderTaskRouteRef,
selectedTemplateRouteRef,
} from '../../routes';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
// typings are wrong for this library, so fallback to not parsing types.
const humanizeDuration = require('humanize-duration');
@@ -188,9 +193,10 @@ export const TaskStatusStepper = memo(
nonLinear
>
{steps.map((step, index) => {
+ const isCancelled = step.status === 'cancelled';
+ const isActive = step.status === 'processing';
const isCompleted = step.status === 'completed';
const isFailed = step.status === 'failed';
- const isActive = step.status === 'processing';
const isSkipped = step.status === 'skipped';
return (
@@ -199,7 +205,7 @@ export const TaskStatusStepper = memo(
{
const { loadingText } = props;
-
const classes = useStyles();
const navigate = useNavigate();
const rootPath = useRouteRef(rootRouteRef);
+ const scaffolderApi = useApi(scaffolderApiRef);
const templateRoute = useRouteRef(selectedTemplateRouteRef);
const [userSelectedStepId, setUserSelectedStepId] = useState<
string | undefined
>(undefined);
+ const [clickedToCancel, setClickedToCancel] = useState(false);
const [lastActiveStepId, setLastActiveStepId] = useState(
undefined,
);
const { taskId } = useRouteRefParams(scaffolderTaskRouteRef);
const taskStream = useTaskEventStream(taskId);
const completed = taskStream.completed;
+ const taskCancelled = taskStream.cancelled;
const steps = useMemo(
() =>
taskStream.task?.spec.steps.map(step => ({
@@ -295,9 +302,7 @@ export const TaskPage = (props: TaskPageProps) => {
}, [taskStream.stepLogs, currentStepId, loadingText]);
const taskNotFound =
- taskStream.completed === true &&
- taskStream.loading === false &&
- !taskStream.task;
+ taskStream.completed && !taskStream.loading && !taskStream.task;
const { output } = taskStream;
@@ -320,6 +325,11 @@ export const TaskPage = (props: TaskPageProps) => {
);
};
+ const handleCancel = async () => {
+ setClickedToCancel(true);
+ await scaffolderApi.cancelTask(taskId);
+ };
+
return (
{
>
Start Over
+
diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
index b4358146fd..344929fa43 100644
--- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
+++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
@@ -47,6 +47,7 @@ jest.mock('react-router-dom', () => {
});
const scaffolderApiMock: jest.Mocked = {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
@@ -338,10 +339,7 @@ describe('TemplatePage', () => {
it('should display a section or property based on a feature flag', async () => {
featureFlagsApiMock.isActive.mockImplementation(flag => {
- if (flag === 'experimental-feature') {
- return true;
- }
- return false;
+ return flag === 'experimental-feature';
});
scaffolderApiMock.getTemplateParameterSchema.mockResolvedValue(
schemaMockValue,
diff --git a/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx b/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
index d4c771a9f8..985dd98903 100644
--- a/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
+++ b/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
@@ -23,15 +23,21 @@ import {
MenuList,
Popover,
} from '@material-ui/core';
+import { useAsync } from '@react-hookz/web';
+import Cancel from '@material-ui/icons/Cancel';
import Retry from '@material-ui/icons/Repeat';
import Toc from '@material-ui/icons/Toc';
import MoreVert from '@material-ui/icons/MoreVert';
import React, { useState } from 'react';
+import { useApi } from '@backstage/core-plugin-api';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
type ContextMenuProps = {
+ cancelEnabled?: boolean;
logsVisible?: boolean;
- onToggleLogs?: (state: boolean) => void;
onStartOver?: () => void;
+ onToggleLogs?: (state: boolean) => void;
+ taskId?: string;
};
const useStyles = makeStyles((theme: BackstageTheme) => ({
@@ -41,10 +47,18 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({
}));
export const ContextMenu = (props: ContextMenuProps) => {
- const { logsVisible, onToggleLogs, onStartOver } = props;
+ const { cancelEnabled, logsVisible, onStartOver, onToggleLogs, taskId } =
+ props;
const classes = useStyles();
+ const scaffolderApi = useApi(scaffolderApiRef);
const [anchorEl, setAnchorEl] = useState();
+ const [{ status: cancelStatus }, { execute: cancel }] = useAsync(async () => {
+ if (taskId) {
+ await scaffolderApi.cancelTask(taskId);
+ }
+ });
+
return (
<>
{
+
>
diff --git a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx
new file mode 100644
index 0000000000..9e9212b9e8
--- /dev/null
+++ b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2022 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 { OngoingTask } from './OngoingTask';
+import React from 'react';
+import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
+import { act, fireEvent, waitFor } from '@testing-library/react';
+import { nextRouteRef } from '../routes';
+
+jest.mock('react-router-dom', () => ({
+ ...jest.requireActual('react-router-dom'),
+ useParams: () => ({ taskId: 'my-task' }),
+}));
+
+jest.mock('@backstage/plugin-scaffolder-react', () => ({
+ ...jest.requireActual('@backstage/plugin-scaffolder-react'),
+ useTaskEventStream: () => ({
+ cancelled: false,
+ loading: true,
+ stepLogs: {},
+ completed: false,
+ steps: {},
+ task: {
+ spec: {
+ steps: [],
+ templateInfo: { entity: { metadata: { name: 'my-template' } } },
+ },
+ },
+ }),
+}));
+
+describe('OngoingTask', () => {
+ const mockScaffolderApi = {
+ cancelTask: jest.fn(),
+ getTask: jest.fn().mockImplementation(async () => {}),
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should trigger cancel api on "Cancel" click in context menu', async () => {
+ const cancelOptionLabel = 'Cancel';
+ const rendered = await renderInTestApp(
+
+
+ ,
+ { mountedRoutes: { '/': nextRouteRef } },
+ );
+ const { getByText, getByTestId } = rendered;
+
+ await act(async () => {
+ fireEvent.click(getByTestId('menu-button'));
+ });
+ expect(getByTestId('cancel-task')).not.toHaveClass('Mui-disabled');
+
+ await act(async () => {
+ fireEvent.click(getByText(cancelOptionLabel));
+ });
+
+ expect(mockScaffolderApi.cancelTask).toHaveBeenCalled();
+ await act(async () => {
+ fireEvent.click(getByTestId('menu-button'));
+ });
+
+ await waitFor(() => {
+ expect(getByTestId('cancel-task')).toHaveClass('Mui-disabled');
+ });
+ });
+});
diff --git a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
index fc1c1a7413..9c64e2179b 100644
--- a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
+++ b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import React, { useEffect, useMemo, useState, useCallback } from 'react';
-import { Page, Header, Content, ErrorPanel } from '@backstage/core-components';
+import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import { Content, ErrorPanel, Header, Page } from '@backstage/core-components';
import { useNavigate, useParams } from 'react-router-dom';
import { Box, makeStyles, Paper } from '@material-ui/core';
import {
@@ -105,6 +105,8 @@ export const OngoingTask = (props: {
const templateName =
taskStream.task?.spec.templateInfo?.entity?.metadata.name;
+ const cancelEnabled = !(taskStream.cancelled || taskStream.completed);
+
return (
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
index c4f9c75ceb..da4112979c 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
@@ -41,6 +41,7 @@ jest.mock('react-router-dom', () => {
});
const scaffolderApiMock: jest.Mocked = {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
index 5e1d423f65..8576e6602c 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.1.4-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.1.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json
index 7dbc84251d..6520571ec6 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.1.4-next.1",
+ "version": "1.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 2284fb17dd..db32c01817 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.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.5.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json
index a9e09db620..c6513c8e27 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.4-next.1",
+ "version": "0.5.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 87c8390e7c..5fcd3bd0fa 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.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.1.4-next.1
### Patch Changes
diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json
index 593d459cb3..d86be92e92 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.1.4-next.1",
+ "version": "1.1.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 29bc3ea9d3..513ee4536a 100644
--- a/plugins/search-backend/CHANGELOG.md
+++ b/plugins/search-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-search-backend
+## 1.2.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-permission-node@0.7.6-next.2
+ - @backstage/plugin-search-backend-node@1.1.4-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.2.4-next.1
### Patch Changes
diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json
index faadd54835..0baecca0a9 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.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-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md
index e1fb0049bf..9fc158de5d 100644
--- a/plugins/search-react/CHANGELOG.md
+++ b/plugins/search-react/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-react
+## 1.5.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 553f3c95011: Correctly disable next button in `SearchPagination` on last page
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 1.5.1-next.1
### Patch Changes
diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json
index edd00ca6cf..355191cb47 100644
--- a/plugins/search-react/package.json
+++ b/plugins/search-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-react",
- "version": "1.5.1-next.1",
+ "version": "1.5.1-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 e326f19ef4..3d02621576 100644
--- a/plugins/search/CHANGELOG.md
+++ b/plugins/search/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-search
+## 1.1.1-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.1.1-next.1
### Patch Changes
diff --git a/plugins/search/package.json b/plugins/search/package.json
index e8aab6022d..353981cae1 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.1.1-next.1",
+ "version": "1.1.1-next.2",
"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 abfdb54ce8..89b5d8312a 100644
--- a/plugins/sentry/CHANGELOG.md
+++ b/plugins/sentry/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-sentry
+## 0.5.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.5.1-next.1
### Patch Changes
diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json
index 9893994cf8..1139898926 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.1-next.1",
+ "version": "0.5.1-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md
index 4b00e77e28..2360461f73 100644
--- a/plugins/shortcuts/CHANGELOG.md
+++ b/plugins/shortcuts/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-shortcuts
+## 0.3.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.8-next.1
### Patch Changes
diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json
index bddd20e5b3..eb48088934 100644
--- a/plugins/shortcuts/package.json
+++ b/plugins/shortcuts/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-shortcuts",
"description": "A Backstage plugin that provides a shortcuts feature to the sidebar",
- "version": "0.3.8-next.1",
+ "version": "0.3.8-next.2",
"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 e44e90767b..f60f7bf047 100644
--- a/plugins/sonarqube-backend/CHANGELOG.md
+++ b/plugins/sonarqube-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-sonarqube-backend
+## 0.1.8-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.8-next.1
### Patch Changes
diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json
index 0a25762ae4..d7de98d307 100644
--- a/plugins/sonarqube-backend/package.json
+++ b/plugins/sonarqube-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sonarqube-backend",
- "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/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md
index d3feb6b79d..6c7d5d41f2 100644
--- a/plugins/sonarqube-react/CHANGELOG.md
+++ b/plugins/sonarqube-react/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-sonarqube-react
+## 0.1.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.4-next.1
### Patch Changes
diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json
index 8700254987..d5266cd220 100644
--- a/plugins/sonarqube-react/package.json
+++ b/plugins/sonarqube-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sonarqube-react",
- "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/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md
index c632224252..6c6f69aaf8 100644
--- a/plugins/sonarqube/CHANGELOG.md
+++ b/plugins/sonarqube/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-sonarqube
+## 0.6.5-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-sonarqube-react@0.1.4-next.2
+
## 0.6.5-next.1
### Patch Changes
diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json
index 3775f6c30b..48d221e508 100644
--- a/plugins/sonarqube/package.json
+++ b/plugins/sonarqube/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-sonarqube",
"description": "",
- "version": "0.6.5-next.1",
+ "version": "0.6.5-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 4c36b337e5..830c918ced 100644
--- a/plugins/splunk-on-call/CHANGELOG.md
+++ b/plugins/splunk-on-call/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-splunk-on-call
+## 0.4.5-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.4.5-next.1
### Patch Changes
diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json
index 4da3a55108..97a5357bd0 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.5-next.1",
+ "version": "0.4.5-next.2",
"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 c395fe7094..fab1416363 100644
--- a/plugins/stack-overflow-backend/CHANGELOG.md
+++ b/plugins/stack-overflow-backend/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-stack-overflow-backend
+## 0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.12-next.1
### Patch Changes
diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json
index b3aa6573df..2dd405dc3b 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.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/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md
index d69e9441b1..050900554d 100644
--- a/plugins/stack-overflow/CHANGELOG.md
+++ b/plugins/stack-overflow/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-stack-overflow
+## 0.1.12-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/plugin-home@0.4.32-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.12-next.1
### Patch Changes
diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json
index 3ad363962d..3675593181 100644
--- a/plugins/stack-overflow/package.json
+++ b/plugins/stack-overflow/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-stack-overflow",
- "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/stackstorm/CHANGELOG.md b/plugins/stackstorm/CHANGELOG.md
index bbeb51a609..f68c853b7b 100644
--- a/plugins/stackstorm/CHANGELOG.md
+++ b/plugins/stackstorm/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-stackstorm
+## 0.1.0-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.0-next.1
### Patch Changes
diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json
index 61ac3da384..a1ba109d76 100644
--- a/plugins/stackstorm/package.json
+++ b/plugins/stackstorm/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-stackstorm",
"description": "A Backstage plugin that integrates towards StackStorm",
- "version": "0.1.0-next.1",
+ "version": "0.1.0-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 3f8e02187c..12e6693589 100644
--- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
+++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-tech-insights-backend-module-jsonfc
+## 0.1.27-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.1.27-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 496cd1ec00..7d60ec0cdc 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.27-next.1",
+ "version": "0.1.27-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 50bdd8f65d..c4e8061f05 100644
--- a/plugins/tech-insights-backend/CHANGELOG.md
+++ b/plugins/tech-insights-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-tech-insights-backend
+## 0.5.9-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/plugin-tech-insights-node@0.4.1-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.5.9-next.1
### Patch Changes
diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json
index a7f868fbad..e11bf60e0d 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.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/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md
index e43a61629d..ed9f3667f0 100644
--- a/plugins/tech-insights-node/CHANGELOG.md
+++ b/plugins/tech-insights-node/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-tech-insights-node
+## 0.4.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.4.1-next.1
### Patch Changes
diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json
index 428341c54d..6a546f86c1 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.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/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md
index a1e75d80b7..e8d57b056f 100644
--- a/plugins/tech-insights/CHANGELOG.md
+++ b/plugins/tech-insights/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-tech-insights
+## 0.3.8-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.3.8-next.1
### Patch Changes
diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json
index 3eb7a5ae90..680641b1b0 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.8-next.1",
+ "version": "0.3.8-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md
index 998d703860..4ad21662bd 100644
--- a/plugins/tech-radar/CHANGELOG.md
+++ b/plugins/tech-radar/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-tech-radar
+## 0.6.2-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.6.2-next.1
### Patch Changes
diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json
index 6f67def94c..273bd79255 100644
--- a/plugins/tech-radar/package.json
+++ b/plugins/tech-radar/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-tech-radar",
"description": "A Backstage plugin that lets you display a Tech Radar for your organization",
- "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/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md
index 4396148d7d..35dedb8a0b 100644
--- a/plugins/techdocs-addons-test-utils/CHANGELOG.md
+++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-techdocs-addons-test-utils
+## 1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/plugin-techdocs@1.6.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/plugin-catalog@1.9.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/test-utils@1.2.6-next.2
+
## 1.0.11-next.1
### Patch Changes
diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json
index 45aa1f6f04..8dc81b2cf7 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.11-next.1",
+ "version": "1.0.11-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 0b3b0bad56..8e4be204db 100644
--- a/plugins/techdocs-backend/CHANGELOG.md
+++ b/plugins/techdocs-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-techdocs-backend
+## 1.5.4-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.5.4-next.1
### Patch Changes
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index dbc482db47..c9fff25b70 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.5.4-next.1",
+ "version": "1.5.4-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
index 9c70b13dc7..69fa5d8cfd 100644
--- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md
+++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-techdocs-module-addons-contrib
+## 1.0.11-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/integration@1.4.3-next.0
+
## 1.0.11-next.1
### Patch Changes
diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json
index 9089802b41..b5aebb262c 100644
--- a/plugins/techdocs-module-addons-contrib/package.json
+++ b/plugins/techdocs-module-addons-contrib/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-module-addons-contrib",
"description": "Plugin module for contributed TechDocs Addons",
- "version": "1.0.11-next.1",
+ "version": "1.0.11-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 5c13883594..28a11e4b57 100644
--- a/plugins/techdocs-node/CHANGELOG.md
+++ b/plugins/techdocs-node/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-techdocs-node
+## 1.6.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+ - @backstage/integration-aws-node@0.1.2-next.0
+
## 1.6.0-next.1
### Minor Changes
diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json
index 7328927307..4c3a4a3496 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.6.0-next.1",
+ "version": "1.6.0-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/plugins/techdocs-node/src/stages/generate/helpers.test.ts b/plugins/techdocs-node/src/stages/generate/helpers.test.ts
index b24d85430b..6bcdf0d984 100644
--- a/plugins/techdocs-node/src/stages/generate/helpers.test.ts
+++ b/plugins/techdocs-node/src/stages/generate/helpers.test.ts
@@ -565,7 +565,9 @@ describe('helpers', () => {
} = await getMkdocsYml(inputDir, defaultSiteOptions);
expect(mkdocsPath).toBe(key);
- expect(content).toBe(mkdocsDefaultYml.toString());
+ expect(content.split(/[\r\n]+/g)).toEqual(
+ mkdocsDefaultYml.toString().split(/[\r\n]+/g),
+ );
expect(configIsTemporary).toBe(true);
});
diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md
index 7894f77a44..cbc52cf570 100644
--- a/plugins/techdocs-react/CHANGELOG.md
+++ b/plugins/techdocs-react/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-techdocs-react
+## 1.1.4-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/config@1.0.7-next.0
+
## 1.1.4-next.1
### Patch Changes
diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json
index 3d31cc0e17..ae8d7e21ae 100644
--- a/plugins/techdocs-react/package.json
+++ b/plugins/techdocs-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-react",
"description": "Shared frontend utilities for TechDocs and Addons",
- "version": "1.1.4-next.1",
+ "version": "1.1.4-next.2",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md
index 60d826f2c4..7ce9542731 100644
--- a/plugins/techdocs/CHANGELOG.md
+++ b/plugins/techdocs/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-techdocs
+## 1.6.0-next.2
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-techdocs-react@1.1.4-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/plugin-search-react@1.5.1-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+ - @backstage/integration-react@1.1.11-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 1.6.0-next.1
### Patch Changes
diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json
index 8f15b11152..88ebb91c1b 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.0-next.1",
+ "version": "1.6.0-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 f22ef56503..6abd6c3562 100644
--- a/plugins/todo-backend/CHANGELOG.md
+++ b/plugins/todo-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-todo-backend
+## 0.1.40-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+ - @backstage/plugin-catalog-node@1.3.4-next.2
+ - @backstage/config@1.0.7-next.0
+ - @backstage/integration@1.4.3-next.0
+
## 0.1.40-next.1
### Patch Changes
diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json
index ebd874b3e6..cb37bc5eb5 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.1.40-next.1",
+ "version": "0.1.40-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/todo-backend/src/plugin.ts b/plugins/todo-backend/src/plugin.ts
index b9a73a84ee..640ea1a0ce 100644
--- a/plugins/todo-backend/src/plugin.ts
+++ b/plugins/todo-backend/src/plugin.ts
@@ -27,7 +27,7 @@ import { createRouter } from './service/router';
* @public
*/
export const todoPlugin = createBackendPlugin({
- pluginId: 'todo-backend',
+ pluginId: 'todo',
register(env) {
env.registerInit({
deps: {
diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md
index 3eb0e8a30b..3e716065a1 100644
--- a/plugins/todo/CHANGELOG.md
+++ b/plugins/todo/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-todo
+## 0.2.18-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.18-next.1
### Patch Changes
diff --git a/plugins/todo/package.json b/plugins/todo/package.json
index 01a0829835..6cc2491a78 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.18-next.1",
+ "version": "0.2.18-next.2",
"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 3141c9f8b1..4bcf306e42 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.7-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/backend-plugin-api@0.4.1-next.2
+
## 0.1.7-next.1
### Patch Changes
diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json
index 833241dc72..a98e0e9313 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.7-next.1",
+ "version": "0.1.7-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 1cb2322c4d..435fa2b2d4 100644
--- a/plugins/user-settings/CHANGELOG.md
+++ b/plugins/user-settings/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-user-settings
+## 0.7.1-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-app-api@1.6.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.7.1-next.1
### Patch Changes
diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json
index 01ae0e1134..e49c54687d 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.1-next.1",
+ "version": "0.7.1-next.2",
"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 d3717a29e1..31b822c68b 100644
--- a/plugins/vault-backend/CHANGELOG.md
+++ b/plugins/vault-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-vault-backend
+## 0.2.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0-next.2
+ - @backstage/backend-common@0.18.3-next.2
+ - @backstage/config@1.0.7-next.0
+
## 0.2.10-next.1
### Patch Changes
diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json
index f9966b2316..336363e9ad 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.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/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md
index df3e5659d1..1f6d8446bd 100644
--- a/plugins/vault/CHANGELOG.md
+++ b/plugins/vault/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-vault
+## 0.1.10-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/plugin-catalog-react@1.4.0-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.1.10-next.1
### Patch Changes
diff --git a/plugins/vault/package.json b/plugins/vault/package.json
index 20a8e235c0..127c9cf753 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.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/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md
index 2ea83d9a11..e9a2023939 100644
--- a/plugins/xcmetrics/CHANGELOG.md
+++ b/plugins/xcmetrics/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-xcmetrics
+## 0.2.36-next.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5-next.2
+ - @backstage/core-plugin-api@1.5.0-next.2
+
## 0.2.36-next.1
### Patch Changes
diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json
index 5e3ffebcba..fb7695e090 100644
--- a/plugins/xcmetrics/package.json
+++ b/plugins/xcmetrics/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-xcmetrics",
"description": "A Backstage plugin that shows XCode build metrics for your components",
- "version": "0.2.36-next.1",
+ "version": "0.2.36-next.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/yarn.lock b/yarn.lock
index 2bf9c900df..5c0f64c734 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -508,88 +508,48 @@ __metadata:
linkType: hard
"@aws-sdk/client-sqs@npm:^3.208.0":
- version: 3.276.0
- resolution: "@aws-sdk/client-sqs@npm:3.276.0"
+ version: 3.282.0
+ resolution: "@aws-sdk/client-sqs@npm:3.282.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.276.0
- "@aws-sdk/config-resolver": 3.272.0
- "@aws-sdk/credential-provider-node": 3.272.0
- "@aws-sdk/fetch-http-handler": 3.272.0
+ "@aws-sdk/client-sts": 3.282.0
+ "@aws-sdk/config-resolver": 3.282.0
+ "@aws-sdk/credential-provider-node": 3.282.0
+ "@aws-sdk/fetch-http-handler": 3.282.0
"@aws-sdk/hash-node": 3.272.0
"@aws-sdk/invalid-dependency": 3.272.0
"@aws-sdk/md5-js": 3.272.0
- "@aws-sdk/middleware-content-length": 3.272.0
- "@aws-sdk/middleware-endpoint": 3.272.0
- "@aws-sdk/middleware-host-header": 3.272.0
+ "@aws-sdk/middleware-content-length": 3.282.0
+ "@aws-sdk/middleware-endpoint": 3.282.0
+ "@aws-sdk/middleware-host-header": 3.282.0
"@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.272.0
- "@aws-sdk/middleware-retry": 3.272.0
+ "@aws-sdk/middleware-recursion-detection": 3.282.0
+ "@aws-sdk/middleware-retry": 3.282.0
"@aws-sdk/middleware-sdk-sqs": 3.272.0
"@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.272.0
+ "@aws-sdk/middleware-signing": 3.282.0
"@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.272.0
+ "@aws-sdk/middleware-user-agent": 3.282.0
"@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/smithy-client": 3.272.0
+ "@aws-sdk/node-http-handler": 3.282.0
+ "@aws-sdk/protocol-http": 3.282.0
+ "@aws-sdk/smithy-client": 3.279.0
"@aws-sdk/types": 3.272.0
"@aws-sdk/url-parser": 3.272.0
"@aws-sdk/util-base64": 3.208.0
"@aws-sdk/util-body-length-browser": 3.188.0
"@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.272.0
- "@aws-sdk/util-defaults-mode-node": 3.272.0
+ "@aws-sdk/util-defaults-mode-browser": 3.279.0
+ "@aws-sdk/util-defaults-mode-node": 3.282.0
"@aws-sdk/util-endpoints": 3.272.0
"@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.272.0
- "@aws-sdk/util-user-agent-node": 3.272.0
+ "@aws-sdk/util-user-agent-browser": 3.282.0
+ "@aws-sdk/util-user-agent-node": 3.282.0
"@aws-sdk/util-utf8": 3.254.0
fast-xml-parser: 4.1.2
tslib: ^2.3.1
- checksum: 88139fde34fa6348e841de13fce5e68b2dfb735c5358c959f9956a8c918048bde8b1ff701e8e701807af5f67f6df129056986b62a7e07096cc7097f3491d36b8
- languageName: node
- linkType: hard
-
-"@aws-sdk/client-sso-oidc@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/client-sso-oidc@npm:3.272.0"
- dependencies:
- "@aws-crypto/sha256-browser": 3.0.0
- "@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.272.0
- "@aws-sdk/fetch-http-handler": 3.272.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.272.0
- "@aws-sdk/middleware-endpoint": 3.272.0
- "@aws-sdk/middleware-host-header": 3.272.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.272.0
- "@aws-sdk/middleware-retry": 3.272.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.272.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/smithy-client": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.272.0
- "@aws-sdk/util-defaults-mode-node": 3.272.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.272.0
- "@aws-sdk/util-user-agent-node": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
- tslib: ^2.3.1
- checksum: a1ee61c2fc86a74439e06c98aa10c8246e31579eb480b625321f7dfe8fd26af49bd6ead803da2443700c5943eab5ba90dfc33fc4d9f23b1a680850d73526da4d
+ checksum: d3a2a2abb27313666aa8c9842c91a098b2570878a9853d59bf07d480669723d77b74ad2ca8e5297dc593d8e76578c78c2634f81e4eed84b84b020b06af04c423
languageName: node
linkType: hard
@@ -633,46 +593,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/client-sso@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/client-sso@npm:3.272.0"
- dependencies:
- "@aws-crypto/sha256-browser": 3.0.0
- "@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.272.0
- "@aws-sdk/fetch-http-handler": 3.272.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.272.0
- "@aws-sdk/middleware-endpoint": 3.272.0
- "@aws-sdk/middleware-host-header": 3.272.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.272.0
- "@aws-sdk/middleware-retry": 3.272.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.272.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/smithy-client": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.272.0
- "@aws-sdk/util-defaults-mode-node": 3.272.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.272.0
- "@aws-sdk/util-user-agent-node": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
- tslib: ^2.3.1
- checksum: 7549e813ef8088d22a0a1f9c8a42532d2d2050c932fd6e7d4f717aea2cd554938283f3af0f1fe9597b24724c6b2438947b3089452ed9c0dfafb1efad15f3ac60
- languageName: node
- linkType: hard
-
"@aws-sdk/client-sso@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/client-sso@npm:3.282.0"
@@ -713,50 +633,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/client-sts@npm:3.276.0":
- version: 3.276.0
- resolution: "@aws-sdk/client-sts@npm:3.276.0"
- dependencies:
- "@aws-crypto/sha256-browser": 3.0.0
- "@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.272.0
- "@aws-sdk/credential-provider-node": 3.272.0
- "@aws-sdk/fetch-http-handler": 3.272.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.272.0
- "@aws-sdk/middleware-endpoint": 3.272.0
- "@aws-sdk/middleware-host-header": 3.272.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.272.0
- "@aws-sdk/middleware-retry": 3.272.0
- "@aws-sdk/middleware-sdk-sts": 3.272.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.272.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/smithy-client": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.272.0
- "@aws-sdk/util-defaults-mode-node": 3.272.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.272.0
- "@aws-sdk/util-user-agent-node": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
- fast-xml-parser: 4.1.2
- tslib: ^2.3.1
- checksum: 3250322448500789588d24b6fac295b551ab4c1661ab9aa93f173e63b4673260bb2e551c079d811da752115e583b76f5c7ffb16d94b3c66275e75e52a93f35f3
- languageName: node
- linkType: hard
-
"@aws-sdk/client-sts@npm:3.282.0, @aws-sdk/client-sts@npm:^3.208.0":
version: 3.282.0
resolution: "@aws-sdk/client-sts@npm:3.282.0"
@@ -801,19 +677,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/config-resolver@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/config-resolver@npm:3.272.0"
- dependencies:
- "@aws-sdk/signature-v4": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-config-provider": 3.208.0
- "@aws-sdk/util-middleware": 3.272.0
- tslib: ^2.3.1
- checksum: d2a2fa4f013ad04f50522aec1001efd34c62ababbc809b176d2e31e41828d867de616ff01bfcaa12603b344ca6838ea5946c72d21e5f2573b90828e29bad6e35
- languageName: node
- linkType: hard
-
"@aws-sdk/config-resolver@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/config-resolver@npm:3.282.0"
@@ -863,23 +726,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-ini@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-ini@npm:3.272.0"
- dependencies:
- "@aws-sdk/credential-provider-env": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/credential-provider-process": 3.272.0
- "@aws-sdk/credential-provider-sso": 3.272.0
- "@aws-sdk/credential-provider-web-identity": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 06c1dfc6bff09472e11dd7e2c295cfdf71c36af11cb6ba33ce0328aaf9d0baee3f99de8ceec32ff473925b55ad190c9f85f125cf43874c25e22c37e8e3c648d3
- languageName: node
- linkType: hard
-
"@aws-sdk/credential-provider-ini@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/credential-provider-ini@npm:3.282.0"
@@ -897,24 +743,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-node@npm:3.272.0"
- dependencies:
- "@aws-sdk/credential-provider-env": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/credential-provider-ini": 3.272.0
- "@aws-sdk/credential-provider-process": 3.272.0
- "@aws-sdk/credential-provider-sso": 3.272.0
- "@aws-sdk/credential-provider-web-identity": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 25c5ab8583821f63c7eb1a5257869dd21159d0b7643ff9a9c094e9b5c78c887bc441f1a2f974eaace62c1879d13e7d590bb3ea2623f5a5de822bf773b1aab100
- languageName: node
- linkType: hard
-
"@aws-sdk/credential-provider-node@npm:3.282.0, @aws-sdk/credential-provider-node@npm:^3.208.0":
version: 3.282.0
resolution: "@aws-sdk/credential-provider-node@npm:3.282.0"
@@ -945,20 +773,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-sso@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-sso@npm:3.272.0"
- dependencies:
- "@aws-sdk/client-sso": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/token-providers": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: ac1ada61e67f6f0a82ed8507c0218a03fe40e2d1e4ee064578e63573f868195800088dc3e33d58d7d04877e464342987005aceb300e4db9a141080cdc695e46e
- languageName: node
- linkType: hard
-
"@aws-sdk/credential-provider-sso@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/credential-provider-sso@npm:3.282.0"
@@ -1075,19 +889,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/fetch-http-handler@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/fetch-http-handler@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/querystring-builder": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- tslib: ^2.3.1
- checksum: 63d047db7b7ebfee49af8bf42f3a7aa1bea37cc687e7046bc77913c23ed99056e91b5ab77739157428be73b2a2f29783a7a659ccf29a440dd63b750d313d46cc
- languageName: node
- linkType: hard
-
"@aws-sdk/fetch-http-handler@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/fetch-http-handler@npm:3.282.0"
@@ -1156,11 +957,11 @@ __metadata:
linkType: hard
"@aws-sdk/lib-storage@npm:^3.208.0":
- version: 3.276.0
- resolution: "@aws-sdk/lib-storage@npm:3.276.0"
+ version: 3.282.0
+ resolution: "@aws-sdk/lib-storage@npm:3.282.0"
dependencies:
- "@aws-sdk/middleware-endpoint": 3.272.0
- "@aws-sdk/smithy-client": 3.272.0
+ "@aws-sdk/middleware-endpoint": 3.282.0
+ "@aws-sdk/smithy-client": 3.279.0
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
@@ -1168,7 +969,7 @@ __metadata:
peerDependencies:
"@aws-sdk/abort-controller": ^3.0.0
"@aws-sdk/client-s3": ^3.0.0
- checksum: 1e34d3569c8cf2f7c42efdd7966a9faea64bf49f4fe1fcb0ff30ed86670a5ba2361bb14279e7dc1bc110a1ff9e5cec3551bc8a56b3c9c4d19f98ff4842a8de19
+ checksum: 14f1f21a653d239721ca488b6d7951511576a2e2652d240f3561ac0255cd4af321bc41531c15c3c6fae4095da062f5e841c6c9b58afd80be9bf105b63a256f72
languageName: node
linkType: hard
@@ -1196,17 +997,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-content-length@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-content-length@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: e1a9c3e6fec8dcfed90bb44b25a8f4786b4ed0cbd79c6f69e3d8e91d394402ad4f2667231aafdcc05caf136a331434d54fac286a72ab5870dd90705a2e56243b
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-content-length@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-content-length@npm:3.282.0"
@@ -1218,22 +1008,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-endpoint@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-endpoint@npm:3.272.0"
- dependencies:
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/signature-v4": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-config-provider": 3.208.0
- "@aws-sdk/util-middleware": 3.272.0
- tslib: ^2.3.1
- checksum: c3acd1a35d33cff87a43df371ae138faf6c9569497c36b009cafc2fdb1f21e352671df6eb56730634d7f135bef2a47ac588ac7cdd2905676292a418b79a0eab1
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-endpoint@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-endpoint@npm:3.282.0"
@@ -1276,17 +1050,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-host-header@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-host-header@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 3e191fe72de35b517a20fe47f647527579458091d4d66d55ef7e6b08107a4f4d7abe77afdcdd061776db906309d414525ff63e472c2c05d6e2447f41582f64fb
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-host-header@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-host-header@npm:3.282.0"
@@ -1318,17 +1081,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-recursion-detection@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-recursion-detection@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: cdc150a4f3cbd5d7c6926befcf7eb49daea1d0ca054dbe7b82e013eb74f3850056b78603f61989c2bb3cdc748798674b6811c3011c6a8c1773e13dfa11ea3ae7
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-recursion-detection@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-recursion-detection@npm:3.282.0"
@@ -1340,21 +1092,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-retry@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-retry@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/service-error-classification": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-middleware": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- tslib: ^2.3.1
- uuid: ^8.3.2
- checksum: 208e8f1b96f5ee47d28d76d0f7738f0ae7e355cb9aa24dcb88a8c4d9aa35bf833bf333c1ad4a6d11d18ec27b1713cac0ee04e0fdac17462059416a214f366944
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-retry@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-retry@npm:3.282.0"
@@ -1394,20 +1131,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-sts@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-sdk-sts@npm:3.272.0"
- dependencies:
- "@aws-sdk/middleware-signing": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/signature-v4": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: d808f945ae7354ef7102737418794565f26af3ca3241c3873235284400a13faf118242e92eba1831c25fc249d9c6a15f3c16e4ae3101cd6d5ab175a669b70fcb
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-sdk-sts@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-sdk-sts@npm:3.282.0"
@@ -1432,20 +1155,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-signing@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-signing@npm:3.272.0"
- dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/signature-v4": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-middleware": 3.272.0
- tslib: ^2.3.1
- checksum: 0b711de21b0f2b28178b211ae2de962676038ed49ff9247810c2213018b77ca399285278a0b448a0242f92796e1360b83c09aa268fe64a7f153428b9ed919edc
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-signing@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-signing@npm:3.282.0"
@@ -1479,17 +1188,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/middleware-user-agent@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-user-agent@npm:3.272.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: a392a8c68509f118f008002e4ef6ba7fea9f93ade97963449e6eec951c0319a7cc8fd40cf77bda1540ff25ebbbe75785a6fc5ed4be63676144e5242892940732
- languageName: node
- linkType: hard
-
"@aws-sdk/middleware-user-agent@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/middleware-user-agent@npm:3.282.0"
@@ -1513,19 +1211,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/node-http-handler@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/node-http-handler@npm:3.272.0"
- dependencies:
- "@aws-sdk/abort-controller": 3.272.0
- "@aws-sdk/protocol-http": 3.272.0
- "@aws-sdk/querystring-builder": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: cbcdab82a7611d1d776197e921563ac6248173aa6e5a6f6e6486a735c71763ae69d1d6ae6de8acebcb8020cdfa089a776d9180929397291623db8f11a1f7b8a9
- languageName: node
- linkType: hard
-
"@aws-sdk/node-http-handler@npm:3.282.0, @aws-sdk/node-http-handler@npm:^3.208.0":
version: 3.282.0
resolution: "@aws-sdk/node-http-handler@npm:3.282.0"
@@ -1559,16 +1244,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/protocol-http@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/protocol-http@npm:3.272.0"
- dependencies:
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 59d7c97b1a46bc3c072f56caec365472c9d94638923799ad2418cee52bb0eab945ab080cd63f5351ff45ad943dde9d88b294e096af36524e184c0764b2ea6cc5
- languageName: node
- linkType: hard
-
"@aws-sdk/protocol-http@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/protocol-http@npm:3.282.0"
@@ -1646,21 +1321,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/signature-v4@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/signature-v4@npm:3.272.0"
- dependencies:
- "@aws-sdk/is-array-buffer": 3.201.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-hex-encoding": 3.201.0
- "@aws-sdk/util-middleware": 3.272.0
- "@aws-sdk/util-uri-escape": 3.201.0
- "@aws-sdk/util-utf8": 3.254.0
- tslib: ^2.3.1
- checksum: bdf997ed7779e173797bd31a9ae39bc9860e12cb7d0a734b4a47c76bde435c5c1d5f56dbb3c5f1a2b26a828367fd88f34a4527b8a12d4c1a60b3b0049aacf706
- languageName: node
- linkType: hard
-
"@aws-sdk/signature-v4@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/signature-v4@npm:3.282.0"
@@ -1676,17 +1336,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/smithy-client@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/smithy-client@npm:3.272.0"
- dependencies:
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 8ba3c4733a32c7c28ec06735b0fc3dbc33a1657bfc54dc28f6770b021fda74680c693812d8c6db2291197a275f32fd80be909dddda4eb726328bf34e8d18bccc
- languageName: node
- linkType: hard
-
"@aws-sdk/smithy-client@npm:3.279.0":
version: 3.279.0
resolution: "@aws-sdk/smithy-client@npm:3.279.0"
@@ -1698,19 +1347,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/token-providers@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/token-providers@npm:3.272.0"
- dependencies:
- "@aws-sdk/client-sso-oidc": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 8d49846f4ad124707879a9b8adaea089c4d02dfd1c15dcceb083fecd538ecce1db65f1104e6178b13941acb2a4ae275c5cf9eb586d5d25757eb9fb454bdbb70c
- languageName: node
- linkType: hard
-
"@aws-sdk/token-providers@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/token-providers@npm:3.282.0"
@@ -1807,18 +1443,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-defaults-mode-browser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.272.0"
- dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
- bowser: ^2.11.0
- tslib: ^2.3.1
- checksum: 56594cc954c6431ced3646668fd92d8229eb1c20a37d6c66b0ebf3ce88a7f9803c63d432c78412768ebf0d141fdacef01644ea0f3507e6fb295a22c80f728c1a
- languageName: node
- linkType: hard
-
"@aws-sdk/util-defaults-mode-browser@npm:3.279.0":
version: 3.279.0
resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.279.0"
@@ -1831,20 +1455,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-defaults-mode-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-defaults-mode-node@npm:3.272.0"
- dependencies:
- "@aws-sdk/config-resolver": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: ee0e44d78d70b6eab73d6e8455972218cb1a15950f47d81d72d094420b2719add34bf46218016f85242a2a155216d2a0542ed5f4e68e171efc09691125fcb6fd
- languageName: node
- linkType: hard
-
"@aws-sdk/util-defaults-mode-node@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/util-defaults-mode-node@npm:3.282.0"
@@ -1946,17 +1556,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-browser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-user-agent-browser@npm:3.272.0"
- dependencies:
- "@aws-sdk/types": 3.272.0
- bowser: ^2.11.0
- tslib: ^2.3.1
- checksum: e5ac1b88f9af45c2e0dbec40d2aa9c616634df252ac437f2dfd3aeb316fe561a5c09d481c075945843b3a7f5edafbc10ef26741c6ccacc4d435d8be7eeab179c
- languageName: node
- linkType: hard
-
"@aws-sdk/util-user-agent-browser@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/util-user-agent-browser@npm:3.282.0"
@@ -1968,22 +1567,6 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-user-agent-node@npm:3.272.0"
- dependencies:
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- peerDependencies:
- aws-crt: ">=1.0.0"
- peerDependenciesMeta:
- aws-crt:
- optional: true
- checksum: 25d5f39349190e6323f893de4f0e7a931751bf1521808210515ef8d951c1a6a3e5f1dc1773cbd5ca9f999c5d00f3a421ad570b5f79b20dc2692012a9f833ff24
- languageName: node
- linkType: hard
-
"@aws-sdk/util-user-agent-node@npm:3.282.0":
version: 3.282.0
resolution: "@aws-sdk/util-user-agent-node@npm:3.282.0"
@@ -2075,13 +1658,6 @@ __metadata:
languageName: node
linkType: hard
-"@azure/core-asynciterator-polyfill@npm:^1.0.0":
- version: 1.0.0
- resolution: "@azure/core-asynciterator-polyfill@npm:1.0.0"
- checksum: b6d3ab3f0ffc0a9f426a1d2cc90b81778730b14d81af7dcab9760c9e241f7c0f6843d45fad572dcd1379232b3fb2cacd76d110a0d54a999ceb1bf0fd9ed39e99
- languageName: node
- linkType: hard
-
"@azure/core-auth@npm:^1.1.4, @azure/core-auth@npm:^1.3.0, @azure/core-auth@npm:^1.4.0":
version: 1.4.0
resolution: "@azure/core-auth@npm:1.4.0"
@@ -2107,26 +1683,25 @@ __metadata:
languageName: node
linkType: hard
-"@azure/core-http@npm:^2.0.0":
- version: 2.2.4
- resolution: "@azure/core-http@npm:2.2.4"
+"@azure/core-http@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@azure/core-http@npm:3.0.0"
dependencies:
"@azure/abort-controller": ^1.0.0
- "@azure/core-asynciterator-polyfill": ^1.0.0
"@azure/core-auth": ^1.3.0
"@azure/core-tracing": 1.0.0-preview.13
+ "@azure/core-util": ^1.1.1
"@azure/logger": ^1.0.0
"@types/node-fetch": ^2.5.0
"@types/tunnel": ^0.0.3
form-data: ^4.0.0
node-fetch: ^2.6.7
process: ^0.11.10
- tough-cookie: ^4.0.0
tslib: ^2.2.0
tunnel: ^0.0.6
uuid: ^8.3.0
xml2js: ^0.4.19
- checksum: abda8c34c6d54f61b77080b1d4c01b3828cf9a344eb100346ebcc5ef9903d8f57651fbc73c0230afad5fe497c5c6da576a77cf43827f87417cecac7d7e612967
+ checksum: 9b6885a60a8fdac924cc9544e09d66757ff4ed51ed20ce3c279321e684e21c295c091ad9d45477e02baae5255e3a92c5fbb2ac46687d261d66488c294b32846f
languageName: node
linkType: hard
@@ -2188,12 +1763,13 @@ __metadata:
languageName: node
linkType: hard
-"@azure/core-util@npm:^1.0.0":
- version: 1.0.0
- resolution: "@azure/core-util@npm:1.0.0"
+"@azure/core-util@npm:^1.0.0, @azure/core-util@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "@azure/core-util@npm:1.2.0"
dependencies:
+ "@azure/abort-controller": ^1.0.0
tslib: ^2.2.0
- checksum: a0a9cce9452f78babb224fa2ea5566811bd946c55e5c867ca75e6ecd7fcf796b2ec2aa7424e141f03d8e14141e80f048897d0d3c227a7ff0bbaa9ba3d2fc14c9
+ checksum: 58c7e3c9e9fda27242c1ab1dbfcf11eab52cc3e6459a2509fa5572a3faebf3f24c6bf9d92883cd80974119fc1e2c16c7bd2c71f20cfbe670405515c73fdb4093
languageName: node
linkType: hard
@@ -2293,18 +1869,18 @@ __metadata:
linkType: hard
"@azure/storage-blob@npm:^12.5.0":
- version: 12.12.0
- resolution: "@azure/storage-blob@npm:12.12.0"
+ version: 12.13.0
+ resolution: "@azure/storage-blob@npm:12.13.0"
dependencies:
"@azure/abort-controller": ^1.0.0
- "@azure/core-http": ^2.0.0
+ "@azure/core-http": ^3.0.0
"@azure/core-lro": ^2.2.0
"@azure/core-paging": ^1.1.1
"@azure/core-tracing": 1.0.0-preview.13
"@azure/logger": ^1.0.0
events: ^3.0.0
tslib: ^2.2.0
- checksum: bb7f6514a251f8ec337718088b8c9ba80e27b34c786b7fb380fdca19eb3735a0da917dcfcdacef27d0eb256d007a37f89f3d6b08c55405cbcc04685f2a51da3b
+ checksum: 1509b8904eb46937b76f9acc04e9e0c39e8e9219a3bc3f5c006df7eb4d29ff2ed0ebbecc875f9372b5a349639e79123b30bbfb407864cfe91633dd6871a9bd99
languageName: node
linkType: hard
@@ -5373,7 +4949,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/plugin-kubernetes-common": "workspace:^"
@@ -5404,7 +4979,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/lodash": ^4.14.151
@@ -5431,7 +5005,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/integration": "workspace:^"
"@backstage/plugin-bitbucket-cloud-common": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/plugin-events-node": "workspace:^"
@@ -5455,7 +5028,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@types/node-fetch": ^2.5.12
luxon: ^3.0.0
@@ -5478,7 +5050,7 @@ __metadata:
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
"@backstage/plugin-bitbucket-cloud-common": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/lodash": ^4.14.151
lodash: ^4.17.21
@@ -5501,7 +5073,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@types/fs-extra": ^9.0.1
fs-extra: 10.1.0
@@ -5559,7 +5130,6 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/lodash": ^4.14.151
@@ -5612,7 +5182,7 @@ __metadata:
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/ldapjs": ^2.2.0
"@types/lodash": ^4.14.151
@@ -5635,7 +5205,6 @@ __metadata:
"@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@microsoft/microsoft-graph-types": ^2.6.0
"@types/lodash": ^4.14.151
@@ -5676,13 +5245,14 @@ __metadata:
resolution: "@backstage/plugin-catalog-backend-module-puppetdb@workspace:plugins/catalog-backend-module-puppetdb"
dependencies:
"@backstage/backend-common": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-tasks": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
- "@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/lodash": ^4.14.151
lodash: ^4.17.21
@@ -8180,6 +7750,7 @@ __metadata:
"@types/express": ^4.17.6
"@types/fs-extra": ^9.0.1
"@types/git-url-parse": ^9.0.0
+ "@types/luxon": ^3.0.0
"@types/mock-fs": ^4.13.0
"@types/nunjucks": ^3.1.4
"@types/supertest": ^2.0.8
@@ -8214,6 +7785,7 @@ __metadata:
supertest: ^6.1.3
uuid: ^8.2.0
vm2: ^3.9.11
+ wait-for-expect: ^3.0.2
winston: ^3.2.1
yaml: ^2.0.0
zen-observable: ^0.10.0
@@ -11580,50 +11152,50 @@ __metadata:
languageName: node
linkType: hard
-"@jest/console@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/console@npm:29.3.1"
+"@jest/console@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/console@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@types/node": "*"
chalk: ^4.0.0
- jest-message-util: ^29.3.1
- jest-util: ^29.3.1
+ jest-message-util: ^29.4.3
+ jest-util: ^29.4.3
slash: ^3.0.0
- checksum: 9eecbfb6df4f5b810374849b7566d321255e6fd6e804546236650384966be532ff75a3e445a3277eadefe67ddf4dc56cd38332abd72d6a450f1bea9866efc6d7
+ checksum: 8d9b163febe735153b523db527742309f4d598eda22f17f04e030060329bd3da4de7420fc1f7812f7a16f08273654a7de094c4b4e8b81a99dbfc17cfb1629008
languageName: node
linkType: hard
-"@jest/core@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/core@npm:29.3.1"
+"@jest/core@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/core@npm:29.4.3"
dependencies:
- "@jest/console": ^29.3.1
- "@jest/reporters": ^29.3.1
- "@jest/test-result": ^29.3.1
- "@jest/transform": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/console": ^29.4.3
+ "@jest/reporters": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/transform": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
ansi-escapes: ^4.2.1
chalk: ^4.0.0
ci-info: ^3.2.0
exit: ^0.1.2
graceful-fs: ^4.2.9
- jest-changed-files: ^29.2.0
- jest-config: ^29.3.1
- jest-haste-map: ^29.3.1
- jest-message-util: ^29.3.1
- jest-regex-util: ^29.2.0
- jest-resolve: ^29.3.1
- jest-resolve-dependencies: ^29.3.1
- jest-runner: ^29.3.1
- jest-runtime: ^29.3.1
- jest-snapshot: ^29.3.1
- jest-util: ^29.3.1
- jest-validate: ^29.3.1
- jest-watcher: ^29.3.1
+ jest-changed-files: ^29.4.3
+ jest-config: ^29.4.3
+ jest-haste-map: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-regex-util: ^29.4.3
+ jest-resolve: ^29.4.3
+ jest-resolve-dependencies: ^29.4.3
+ jest-runner: ^29.4.3
+ jest-runtime: ^29.4.3
+ jest-snapshot: ^29.4.3
+ jest-util: ^29.4.3
+ jest-validate: ^29.4.3
+ jest-watcher: ^29.4.3
micromatch: ^4.0.4
- pretty-format: ^29.3.1
+ pretty-format: ^29.4.3
slash: ^3.0.0
strip-ansi: ^6.0.0
peerDependencies:
@@ -11631,7 +11203,7 @@ __metadata:
peerDependenciesMeta:
node-notifier:
optional: true
- checksum: e3ac9201e8a084ccd832b17877b56490402b919f227622bb24f9372931e77b869e60959d34144222ce20fb619d0a6a6be20b257adb077a6b0f430a4584a45b0f
+ checksum: 4aa10644d66f44f051d5dd9cdcedce27acc71216dbcc5e7adebdea458e27aefe27c78f457d7efd49f58b968c35f42de5a521590876e2013593e675120b9e6ab1
languageName: node
linkType: hard
@@ -11644,15 +11216,15 @@ __metadata:
languageName: node
linkType: hard
-"@jest/environment@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/environment@npm:29.3.1"
+"@jest/environment@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/environment@npm:29.4.3"
dependencies:
- "@jest/fake-timers": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/fake-timers": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
- jest-mock: ^29.3.1
- checksum: 974102aba7cc80508f787bb5504dcc96e5392e0a7776a63dffbf54ddc2c77d52ef4a3c08ed2eedec91965befff873f70cd7c9ed56f62bb132dcdb821730e6076
+ jest-mock: ^29.4.3
+ checksum: 7c1b0cc4e84b90f8a3bbeca9bbf088882c88aee70a81b3b8e24265dcb1cbc302cd1eee3319089cf65bfd39adbaea344903c712afea106cb8da6c86088d99c5fb
languageName: node
linkType: hard
@@ -11665,60 +11237,60 @@ __metadata:
languageName: node
linkType: hard
-"@jest/expect-utils@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/expect-utils@npm:29.3.1"
+"@jest/expect-utils@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/expect-utils@npm:29.4.3"
dependencies:
- jest-get-type: ^29.2.0
- checksum: 7f3b853eb1e4299988f66b9aa49c1aacb7b8da1cf5518dca4ccd966e865947eed8f1bde6c8f5207d8400e9af870112a44b57aa83515ad6ea5e4a04a971863adb
+ jest-get-type: ^29.4.3
+ checksum: 2bbed39ff2fb59f5acac465a1ce7303e3b4b62b479e4f386261986c9827f7f799ea912761e22629c5daf10addf8513f16733c14a29c2647bb66d4ee625e9ff92
languageName: node
linkType: hard
-"@jest/expect@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/expect@npm:29.3.1"
+"@jest/expect@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/expect@npm:29.4.3"
dependencies:
- expect: ^29.3.1
- jest-snapshot: ^29.3.1
- checksum: 1d7b5cc735c8a99bfbed884d80fdb43b23b3456f4ec88c50fd86404b097bb77fba84f44e707fc9b49f106ca1154ae03f7c54dc34754b03f8a54eeb420196e5bf
+ expect: ^29.4.3
+ jest-snapshot: ^29.4.3
+ checksum: 08d0d40077ec99a7491fe59d05821dbd31126cfba70875855d8a063698b7126b5f6c309c50811caacc6ae2f727c6e44f51bdcf1d6c1ea832b4f020045ef22d45
languageName: node
linkType: hard
-"@jest/fake-timers@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/fake-timers@npm:29.3.1"
+"@jest/fake-timers@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/fake-timers@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
- "@sinonjs/fake-timers": ^9.1.2
+ "@jest/types": ^29.4.3
+ "@sinonjs/fake-timers": ^10.0.2
"@types/node": "*"
- jest-message-util: ^29.3.1
- jest-mock: ^29.3.1
- jest-util: ^29.3.1
- checksum: b1dafa8cdc439ef428cd772c775f0b22703677f52615513eda11a104bbfc352d7ec69b1225db95d4ef2e1b4ef0f23e1a7d96de5313aeb0950f672e6548ae069d
+ jest-message-util: ^29.4.3
+ jest-mock: ^29.4.3
+ jest-util: ^29.4.3
+ checksum: adaceb9143c395cccf3d7baa0e49b7042c3092a554e8283146df19926247e34c21b5bde5688bb90e9e87b4a02e4587926c5d858ee0a38d397a63175d0a127874
languageName: node
linkType: hard
-"@jest/globals@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/globals@npm:29.3.1"
+"@jest/globals@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/globals@npm:29.4.3"
dependencies:
- "@jest/environment": ^29.3.1
- "@jest/expect": ^29.3.1
- "@jest/types": ^29.3.1
- jest-mock: ^29.3.1
- checksum: 4d2b9458aabf7c28fd167e53984477498c897b64eec67a7f84b8fff465235cae1456ee0721cb0e7943f0cda443c7656adb9801f9f34e27495b8ebbd9f3033100
+ "@jest/environment": ^29.4.3
+ "@jest/expect": ^29.4.3
+ "@jest/types": ^29.4.3
+ jest-mock: ^29.4.3
+ checksum: ea76b546ceb4aa5ce2bb3726df12f989b23150b51c9f7664790caa81b943012a657cf3a8525498af1c3518cdb387f54b816cfba1b0ddd22c7b20f03b1d7290b4
languageName: node
linkType: hard
-"@jest/reporters@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/reporters@npm:29.3.1"
+"@jest/reporters@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/reporters@npm:29.4.3"
dependencies:
"@bcoe/v8-coverage": ^0.2.3
- "@jest/console": ^29.3.1
- "@jest/test-result": ^29.3.1
- "@jest/transform": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/console": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/transform": ^29.4.3
+ "@jest/types": ^29.4.3
"@jridgewell/trace-mapping": ^0.3.15
"@types/node": "*"
chalk: ^4.0.0
@@ -11731,9 +11303,9 @@ __metadata:
istanbul-lib-report: ^3.0.0
istanbul-lib-source-maps: ^4.0.0
istanbul-reports: ^3.1.3
- jest-message-util: ^29.3.1
- jest-util: ^29.3.1
- jest-worker: ^29.3.1
+ jest-message-util: ^29.4.3
+ jest-util: ^29.4.3
+ jest-worker: ^29.4.3
slash: ^3.0.0
string-length: ^4.0.1
strip-ansi: ^6.0.0
@@ -11743,7 +11315,7 @@ __metadata:
peerDependenciesMeta:
node-notifier:
optional: true
- checksum: 273e0c6953285f01151e9d84ac1e55744802a1ec79fb62dafeea16a49adfe7b24e7f35bef47a0214e5e057272dbfdacf594208286b7766046fd0f3cfa2043840
+ checksum: 7aa2e429c915bd96c3334962addd69d2bbf52065725757ddde26b293f8c4420a1e8c65363cc3e1e5ec89100a5273ccd3771bec58325a2cc0d97afdc81995073a
languageName: node
linkType: hard
@@ -11756,70 +11328,70 @@ __metadata:
languageName: node
linkType: hard
-"@jest/schemas@npm:^29.0.0":
- version: 29.0.0
- resolution: "@jest/schemas@npm:29.0.0"
+"@jest/schemas@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/schemas@npm:29.4.3"
dependencies:
- "@sinclair/typebox": ^0.24.1
- checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb
+ "@sinclair/typebox": ^0.25.16
+ checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd
languageName: node
linkType: hard
-"@jest/source-map@npm:^29.2.0":
- version: 29.2.0
- resolution: "@jest/source-map@npm:29.2.0"
+"@jest/source-map@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/source-map@npm:29.4.3"
dependencies:
"@jridgewell/trace-mapping": ^0.3.15
callsites: ^3.0.0
graceful-fs: ^4.2.9
- checksum: 09f76ab63d15dcf44b3035a79412164f43be34ec189575930f1a00c87e36ea0211ebd6a4fbe2253c2516e19b49b131f348ddbb86223ca7b6bbac9a6bc76ec96e
+ checksum: 2301d225145f8123540c0be073f35a80fd26a2f5e59550fd68525d8cea580fb896d12bf65106591ffb7366a8a19790076dbebc70e0f5e6ceb51f81827ed1f89c
languageName: node
linkType: hard
-"@jest/test-result@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/test-result@npm:29.3.1"
+"@jest/test-result@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/test-result@npm:29.4.3"
dependencies:
- "@jest/console": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/console": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/istanbul-lib-coverage": ^2.0.0
collect-v8-coverage: ^1.0.0
- checksum: b24ac283321189b624c372a6369c0674b0ee6d9e3902c213452c6334d037113718156b315364bee8cee0f03419c2bdff5e2c63967193fb422830e79cbb26866a
+ checksum: 164f102b96619ec283c2c39e208b8048e4674f75bf3c3a4f2e95048ae0f9226105add684b25f10d286d91c221625f877e2c1cfc3da46c42d7e1804da239318cb
languageName: node
linkType: hard
-"@jest/test-sequencer@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/test-sequencer@npm:29.3.1"
+"@jest/test-sequencer@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/test-sequencer@npm:29.4.3"
dependencies:
- "@jest/test-result": ^29.3.1
+ "@jest/test-result": ^29.4.3
graceful-fs: ^4.2.9
- jest-haste-map: ^29.3.1
+ jest-haste-map: ^29.4.3
slash: ^3.0.0
- checksum: a8325b1ea0ce644486fb63bb67cedd3524d04e3d7b1e6c1e3562bf12ef477ecd0cf34044391b2a07d925e1c0c8b4e0f3285035ceca3a474a2c55980f1708caf3
+ checksum: 145e1fa9379e5be3587bde6d585b8aee5cf4442b06926928a87e9aec7de5be91b581711d627c6ca13144d244fe05e5d248c13b366b51bedc404f9dcfbfd79e9e
languageName: node
linkType: hard
-"@jest/transform@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/transform@npm:29.3.1"
+"@jest/transform@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/transform@npm:29.4.3"
dependencies:
"@babel/core": ^7.11.6
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@jridgewell/trace-mapping": ^0.3.15
babel-plugin-istanbul: ^6.1.1
chalk: ^4.0.0
convert-source-map: ^2.0.0
fast-json-stable-stringify: ^2.1.0
graceful-fs: ^4.2.9
- jest-haste-map: ^29.3.1
- jest-regex-util: ^29.2.0
- jest-util: ^29.3.1
+ jest-haste-map: ^29.4.3
+ jest-regex-util: ^29.4.3
+ jest-util: ^29.4.3
micromatch: ^4.0.4
pirates: ^4.0.4
slash: ^3.0.0
- write-file-atomic: ^4.0.1
- checksum: 673df5900ffc95bc811084e09d6e47948034dea6ab6cc4f81f80977e3a52468a6c2284d0ba9796daf25a62ae50d12f7e97fc9a3a0c587f11f2a479ff5493ca53
+ write-file-atomic: ^4.0.2
+ checksum: 082d74e04044213aa7baa8de29f8383e5010034f867969c8602a2447a4ef2f484cfaf2491eba3179ce42f369f7a0af419cbd087910f7e5caf7aa5d1fe03f2ff9
languageName: node
linkType: hard
@@ -11850,17 +11422,17 @@ __metadata:
languageName: node
linkType: hard
-"@jest/types@npm:^29.3.1":
- version: 29.3.1
- resolution: "@jest/types@npm:29.3.1"
+"@jest/types@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "@jest/types@npm:29.4.3"
dependencies:
- "@jest/schemas": ^29.0.0
+ "@jest/schemas": ^29.4.3
"@types/istanbul-lib-coverage": ^2.0.0
"@types/istanbul-reports": ^3.0.0
"@types/node": "*"
"@types/yargs": ^17.0.8
chalk: ^4.0.0
- checksum: 6f9faf27507b845ff3839c1adc6dbd038d7046d03d37e84c9fc956f60718711a801a5094c7eeee6b39ccf42c0ab61347fdc0fa49ab493ae5a8efd2fd41228ee8
+ checksum: 1756f4149d360f98567f56f434144f7af23ed49a2c42889261a314df6b6654c2de70af618fb2ee0ee39cadaf10835b885845557184509503646c9cb9dcc02bac
languageName: node
linkType: hard
@@ -13984,6 +13556,13 @@ __metadata:
languageName: node
linkType: hard
+"@sinclair/typebox@npm:^0.25.16":
+ version: 0.25.23
+ resolution: "@sinclair/typebox@npm:0.25.23"
+ checksum: 5720daec6e604be9ac849e6361cfa30d19f4d01934c9b79a3a5f5290dfcefaa300192ea0d384bb5dd0104432d88447bbad27adfacdf0b0f042b510bf15fbd5db
+ languageName: node
+ linkType: hard
+
"@sindresorhus/is@npm:^4.0.0":
version: 4.0.0
resolution: "@sindresorhus/is@npm:4.0.0"
@@ -14009,6 +13588,15 @@ __metadata:
languageName: node
linkType: hard
+"@sinonjs/fake-timers@npm:^10.0.2":
+ version: 10.0.2
+ resolution: "@sinonjs/fake-timers@npm:10.0.2"
+ dependencies:
+ "@sinonjs/commons": ^2.0.0
+ checksum: c62aa98e7cefda8dedc101ce227abc888dc46b8ff9706c5f0a8dfd9c3ada97d0a5611384738d9ba0b26b59f99c2ba24efece8e779bb08329e9e87358fa309824
+ languageName: node
+ linkType: hard
+
"@sinonjs/fake-timers@npm:^7.0.4":
version: 7.1.2
resolution: "@sinonjs/fake-timers@npm:7.1.2"
@@ -15450,12 +15038,12 @@ __metadata:
linkType: hard
"@types/jest@npm:*, @types/jest@npm:^29.0.0":
- version: 29.2.6
- resolution: "@types/jest@npm:29.2.6"
+ version: 29.4.0
+ resolution: "@types/jest@npm:29.4.0"
dependencies:
expect: ^29.0.0
pretty-format: ^29.0.0
- checksum: 90190ac830334af1470d255853f9621fe657e5030b4d96773fc1f884833cd303c76580b00c1b86dc38a8db94f1c7141d462190437a10af31852b8845a57c48ba
+ checksum: 23760282362a252e6690314584d83a47512d4cd61663e957ed3398ecf98195fe931c45606ee2f9def12f8ed7d8aa102d492ec42d26facdaf8b78094a31e6568e
languageName: node
linkType: hard
@@ -16195,11 +15783,11 @@ __metadata:
linkType: hard
"@types/sanitize-html@npm:^2.6.2":
- version: 2.8.0
- resolution: "@types/sanitize-html@npm:2.8.0"
+ version: 2.8.1
+ resolution: "@types/sanitize-html@npm:2.8.1"
dependencies:
htmlparser2: ^8.0.0
- checksum: 6e583cac673832536fac8da53890073f753baf2c49826fd0c2831e615cb5527692d03b2b5ba9eb8caf8694de4bfb1c31fd12398d2b68331725590a6ceb8f82fe
+ checksum: 9c07d3a9d925e291472f74b097fb179b32659ea01834f728887811e5fc75cf2b17d844e32e97c0e583eba993af86a3f8250c82c8fa3152abf9ff2a8582972906
languageName: node
linkType: hard
@@ -17424,18 +17012,18 @@ __metadata:
languageName: node
linkType: hard
-"apollo-reporting-protobuf@npm:^3.3.1, apollo-reporting-protobuf@npm:^3.3.3":
- version: 3.3.3
- resolution: "apollo-reporting-protobuf@npm:3.3.3"
+"apollo-reporting-protobuf@npm:^3.3.1, apollo-reporting-protobuf@npm:^3.4.0":
+ version: 3.4.0
+ resolution: "apollo-reporting-protobuf@npm:3.4.0"
dependencies:
"@apollo/protobufjs": 1.2.6
- checksum: 6900db30476ef2e888ecef4c291e26579eba9695dc874ca8b3d1f93064bea307689172790b9d574849e5bdb371953ea38f2caddc5abb51e1ca197197f3d56d28
+ checksum: 5bf50e9cecd3c2334cd12e0ebe59be6c4d7b1b9ee443c7d913011ea1b84513f57561fb6c3ceb66083321acb6d1c56f72e2ab0edf378cf742693409eb8dcdc46b
languageName: node
linkType: hard
-"apollo-server-core@npm:^3.11.1":
- version: 3.11.1
- resolution: "apollo-server-core@npm:3.11.1"
+"apollo-server-core@npm:^3.12.0":
+ version: 3.12.0
+ resolution: "apollo-server-core@npm:3.12.0"
dependencies:
"@apollo/utils.keyvaluecache": ^1.0.1
"@apollo/utils.logger": ^1.0.0
@@ -17446,11 +17034,11 @@ __metadata:
"@graphql-tools/schema": ^8.0.0
"@josephg/resolvable": ^1.0.0
apollo-datasource: ^3.3.2
- apollo-reporting-protobuf: ^3.3.3
+ apollo-reporting-protobuf: ^3.4.0
apollo-server-env: ^4.2.1
apollo-server-errors: ^3.3.1
- apollo-server-plugin-base: ^3.7.1
- apollo-server-types: ^3.7.1
+ apollo-server-plugin-base: ^3.7.2
+ apollo-server-types: ^3.8.0
async-retry: ^1.2.1
fast-json-stable-stringify: ^2.1.0
graphql-tag: ^2.11.0
@@ -17462,7 +17050,7 @@ __metadata:
whatwg-mimetype: ^3.0.0
peerDependencies:
graphql: ^15.3.0 || ^16.0.0
- checksum: a5cb7cff331680c2a926c64e88f744425b724bcfae46aeb02ae636d0b6f57a605e561eb284e765618bd0b2b5f8c556c92183f69852f2e4f5889368fee6aa38dc
+ checksum: b7a37a78901d38a330c9df8fe870da3dcf512f43ab60fdf9ab0ba37be03977db5d4b72eabf51a830d2a9dcfb2974d7bfbc5aa8719e3afac113c8bd7222740b8f
languageName: node
linkType: hard
@@ -17484,9 +17072,9 @@ __metadata:
languageName: node
linkType: hard
-"apollo-server-express@npm:^3.0.0, apollo-server-express@npm:^3.11.1":
- version: 3.11.1
- resolution: "apollo-server-express@npm:3.11.1"
+"apollo-server-express@npm:^3.0.0, apollo-server-express@npm:^3.12.0":
+ version: 3.12.0
+ resolution: "apollo-server-express@npm:3.12.0"
dependencies:
"@types/accepts": ^1.3.5
"@types/body-parser": 1.19.2
@@ -17494,54 +17082,54 @@ __metadata:
"@types/express": 4.17.14
"@types/express-serve-static-core": 4.17.31
accepts: ^1.3.5
- apollo-server-core: ^3.11.1
- apollo-server-types: ^3.7.1
+ apollo-server-core: ^3.12.0
+ apollo-server-types: ^3.8.0
body-parser: ^1.19.0
cors: ^2.8.5
parseurl: ^1.3.3
peerDependencies:
express: ^4.17.1
graphql: ^15.3.0 || ^16.0.0
- checksum: 1db1a77aaa2f760c885233ded249b632e467bb4895d1c3f797df6e197a9ca7021c5b65dd8829e88fd6dbf32d925c7dcf62b48b949a518e2e31072c490302fa60
+ checksum: bd4bc213f506e2aeb2be961961de51e431f8774344b349e9b02f475714a623703eb62423ad968a8f8b6859919ae0d1912c40cf15a4df24e6f81b4f4c5653e70b
languageName: node
linkType: hard
-"apollo-server-plugin-base@npm:^3.7.1":
- version: 3.7.1
- resolution: "apollo-server-plugin-base@npm:3.7.1"
+"apollo-server-plugin-base@npm:^3.7.2":
+ version: 3.7.2
+ resolution: "apollo-server-plugin-base@npm:3.7.2"
dependencies:
- apollo-server-types: ^3.7.1
+ apollo-server-types: ^3.8.0
peerDependencies:
graphql: ^15.3.0 || ^16.0.0
- checksum: db8c5f658da8c51c067bd6659b31ec2436d4961437b6f6f6b1b2a109d26764bc52a4dbe1bdafcb3c712b0e2f13ca10ed787e90423505685d2043a77363bdfc0b
+ checksum: d6ea6dbfad8bb82959286eae89878ccccbd09743c3df2b76bf790f470cbf5441ba06dcb6835a25f0bf32f4df05722cce157ae983ce32db4b69de8a72c9949e2e
languageName: node
linkType: hard
-"apollo-server-types@npm:^3.7.1":
- version: 3.7.1
- resolution: "apollo-server-types@npm:3.7.1"
+"apollo-server-types@npm:^3.8.0":
+ version: 3.8.0
+ resolution: "apollo-server-types@npm:3.8.0"
dependencies:
"@apollo/utils.keyvaluecache": ^1.0.1
"@apollo/utils.logger": ^1.0.0
- apollo-reporting-protobuf: ^3.3.3
+ apollo-reporting-protobuf: ^3.4.0
apollo-server-env: ^4.2.1
peerDependencies:
graphql: ^15.3.0 || ^16.0.0
- checksum: fe9a0847d0b8ab70dbe407b4ba1f5e506d351ff1f728193f4b308806e73b958f50537478a71edeefdd66fcf3dbf32ec732b6ffe6542860d5b683b1d657a019a2
+ checksum: 20accd42b65ceb95819a1610c410488fbe548ee309227d7fa22fd17dd1205e557091ba9c9a20efa532192098a4193e34eb58fc91d762b55fdf31229ac9fc7133
languageName: node
linkType: hard
"apollo-server@npm:^3.0.0":
- version: 3.11.1
- resolution: "apollo-server@npm:3.11.1"
+ version: 3.12.0
+ resolution: "apollo-server@npm:3.12.0"
dependencies:
"@types/express": 4.17.14
- apollo-server-core: ^3.11.1
- apollo-server-express: ^3.11.1
+ apollo-server-core: ^3.12.0
+ apollo-server-express: ^3.12.0
express: ^4.17.1
peerDependencies:
graphql: ^15.3.0 || ^16.0.0
- checksum: 6d4e981682e3b60313dddfe999c408c683f7e4cdeed5c14b6d6245b708808b94cb14df67ebe1b9df38df6b5193a9291089c41e287d014f2a9f94b2f3ecc9b376
+ checksum: 6f3dade76f202f04a890b2385923a0319a859a0ab48121b1636e22d5eae83afe042d7a0a501aff3d8816e67de4f29f8efa598e350814a40f41d079610dee346e
languageName: node
linkType: hard
@@ -18102,20 +17690,20 @@ __metadata:
languageName: node
linkType: hard
-"babel-jest@npm:^29.3.1":
- version: 29.3.1
- resolution: "babel-jest@npm:29.3.1"
+"babel-jest@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "babel-jest@npm:29.4.3"
dependencies:
- "@jest/transform": ^29.3.1
+ "@jest/transform": ^29.4.3
"@types/babel__core": ^7.1.14
babel-plugin-istanbul: ^6.1.1
- babel-preset-jest: ^29.2.0
+ babel-preset-jest: ^29.4.3
chalk: ^4.0.0
graceful-fs: ^4.2.9
slash: ^3.0.0
peerDependencies:
"@babel/core": ^7.8.0
- checksum: 793848238a771a931ddeb5930b9ec8ab800522ac8d64933665698f4a39603d157e572e20b57d79610277e1df88d3ee82b180d59a21f3570388f602beeb38a595
+ checksum: a1a95937adb5e717dbffc2eb9e583fa6d26c7e5d5b07bb492a2d7f68631510a363e9ff097eafb642ad642dfac9dc2b13872b584f680e166a4f0922c98ea95853
languageName: node
linkType: hard
@@ -18141,15 +17729,15 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-jest-hoist@npm:^29.2.0":
- version: 29.2.0
- resolution: "babel-plugin-jest-hoist@npm:29.2.0"
+"babel-plugin-jest-hoist@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "babel-plugin-jest-hoist@npm:29.4.3"
dependencies:
"@babel/template": ^7.3.3
"@babel/types": ^7.3.3
"@types/babel__core": ^7.1.14
"@types/babel__traverse": ^7.0.6
- checksum: 368d271ceae491ae6b96cd691434859ea589fbe5fd5aead7660df75d02394077273c6442f61f390e9347adffab57a32b564d0fabcf1c53c4b83cd426cb644072
+ checksum: c8702a6db6b30ec39dfb9f8e72b501c13895231ed80b15ed2648448f9f0c7b7cc4b1529beac31802ae655f63479a05110ca612815aa25fb1b0e6c874e1589137
languageName: node
linkType: hard
@@ -18288,15 +17876,15 @@ __metadata:
languageName: node
linkType: hard
-"babel-preset-jest@npm:^29.2.0":
- version: 29.2.0
- resolution: "babel-preset-jest@npm:29.2.0"
+"babel-preset-jest@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "babel-preset-jest@npm:29.4.3"
dependencies:
- babel-plugin-jest-hoist: ^29.2.0
+ babel-plugin-jest-hoist: ^29.4.3
babel-preset-current-node-syntax: ^1.0.0
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 1b09a2db968c36e064daf98082cfffa39c849b63055112ddc56fc2551fd0d4783897265775b1d2f8a257960a3339745de92e74feb01bad86d41c4cecbfa854fc
+ checksum: a091721861ea2f8d969ace8fe06570cff8f2e847dbc6e4800abacbe63f72131abde615ce0a3b6648472c97e55a5be7f8bf7ae381e2b194ad2fa1737096febcf5
languageName: node
linkType: hard
@@ -21539,10 +21127,10 @@ __metadata:
languageName: node
linkType: hard
-"diff-sequences@npm:^29.3.1":
- version: 29.3.1
- resolution: "diff-sequences@npm:29.3.1"
- checksum: 8edab8c383355022e470779a099852d595dd856f9f5bd7af24f177e74138a668932268b4c4fd54096eed643861575c3652d4ecbbb1a9d710488286aed3ffa443
+"diff-sequences@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "diff-sequences@npm:29.4.3"
+ checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7
languageName: node
linkType: hard
@@ -23452,16 +23040,16 @@ __metadata:
languageName: node
linkType: hard
-"expect@npm:^29.0.0, expect@npm:^29.3.1":
- version: 29.3.1
- resolution: "expect@npm:29.3.1"
+"expect@npm:^29.0.0, expect@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "expect@npm:29.4.3"
dependencies:
- "@jest/expect-utils": ^29.3.1
- jest-get-type: ^29.2.0
- jest-matcher-utils: ^29.3.1
- jest-message-util: ^29.3.1
- jest-util: ^29.3.1
- checksum: e9588c2a430b558b9a3dc72d4ad05f36b047cb477bc6a7bb9cfeef7614fe7e5edbab424c2c0ce82739ee21ecbbbd24596259528209f84cd72500cc612d910d30
+ "@jest/expect-utils": ^29.4.3
+ jest-get-type: ^29.4.3
+ jest-matcher-utils: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-util: ^29.4.3
+ checksum: ff9dd8c50c0c6fd4b2b00f6dbd7ab0e2063fe1953be81a8c10ae1c005c7f5667ba452918e2efb055504b72b701a4f82575a081a0a7158efb16d87991b0366feb
languageName: node
linkType: hard
@@ -27050,57 +26638,57 @@ __metadata:
languageName: node
linkType: hard
-"jest-changed-files@npm:^29.2.0":
- version: 29.2.0
- resolution: "jest-changed-files@npm:29.2.0"
+"jest-changed-files@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-changed-files@npm:29.4.3"
dependencies:
execa: ^5.0.0
p-limit: ^3.1.0
- checksum: 8ad8290324db1de2ee3c9443d3e3fbfdcb6d72ec7054c5796be2854b2bc239dea38a7c797c8c9c2bd959f539d44305790f2f75b18f3046b04317ed77c7480cb1
+ checksum: 9a70bd8e92b37e18ad26d8bea97c516f41119fb7046b4255a13c76d557b0e54fa0629726de5a093fadfd6a0a08ce45da65a57086664d505b8db4b3133133e141
languageName: node
linkType: hard
-"jest-circus@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-circus@npm:29.3.1"
+"jest-circus@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-circus@npm:29.4.3"
dependencies:
- "@jest/environment": ^29.3.1
- "@jest/expect": ^29.3.1
- "@jest/test-result": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/environment": ^29.4.3
+ "@jest/expect": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
chalk: ^4.0.0
co: ^4.6.0
dedent: ^0.7.0
is-generator-fn: ^2.0.0
- jest-each: ^29.3.1
- jest-matcher-utils: ^29.3.1
- jest-message-util: ^29.3.1
- jest-runtime: ^29.3.1
- jest-snapshot: ^29.3.1
- jest-util: ^29.3.1
+ jest-each: ^29.4.3
+ jest-matcher-utils: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-runtime: ^29.4.3
+ jest-snapshot: ^29.4.3
+ jest-util: ^29.4.3
p-limit: ^3.1.0
- pretty-format: ^29.3.1
+ pretty-format: ^29.4.3
slash: ^3.0.0
stack-utils: ^2.0.3
- checksum: 125710debd998ad9693893e7c1235e271b79f104033b8169d82afe0bc0d883f8f5245feef87adcbb22ad27ff749fd001aa998d11a132774b03b4e2b8af77d5d8
+ checksum: 2739bef9c888743b49ff3fe303131381618e5d2f250f613a91240d9c86e19e6874fc904cbd8bcb02ec9ec59a84e5dae4ffec929f0c6171e87ddbc05508a137f4
languageName: node
linkType: hard
-"jest-cli@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-cli@npm:29.3.1"
+"jest-cli@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-cli@npm:29.4.3"
dependencies:
- "@jest/core": ^29.3.1
- "@jest/test-result": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/core": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/types": ^29.4.3
chalk: ^4.0.0
exit: ^0.1.2
graceful-fs: ^4.2.9
import-local: ^3.0.2
- jest-config: ^29.3.1
- jest-util: ^29.3.1
- jest-validate: ^29.3.1
+ jest-config: ^29.4.3
+ jest-util: ^29.4.3
+ jest-validate: ^29.4.3
prompts: ^2.0.1
yargs: ^17.3.1
peerDependencies:
@@ -27110,34 +26698,34 @@ __metadata:
optional: true
bin:
jest: bin/jest.js
- checksum: 829895d33060042443bd1e9e87eb68993773d74f2c8a9b863acf53cece39d227ae0e7d76df2e9c5934c414bdf70ce398a34b3122cfe22164acb2499a74d7288d
+ checksum: f4c9f6d76cde2c60a4169acbebb3f862728be03bcf3fe0077d2e55da7f9f3c3e9483cfa6e936832d35eabf96ee5ebf0300c4b0bd43cffff099801793466bfdd8
languageName: node
linkType: hard
-"jest-config@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-config@npm:29.3.1"
+"jest-config@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-config@npm:29.4.3"
dependencies:
"@babel/core": ^7.11.6
- "@jest/test-sequencer": ^29.3.1
- "@jest/types": ^29.3.1
- babel-jest: ^29.3.1
+ "@jest/test-sequencer": ^29.4.3
+ "@jest/types": ^29.4.3
+ babel-jest: ^29.4.3
chalk: ^4.0.0
ci-info: ^3.2.0
deepmerge: ^4.2.2
glob: ^7.1.3
graceful-fs: ^4.2.9
- jest-circus: ^29.3.1
- jest-environment-node: ^29.3.1
- jest-get-type: ^29.2.0
- jest-regex-util: ^29.2.0
- jest-resolve: ^29.3.1
- jest-runner: ^29.3.1
- jest-util: ^29.3.1
- jest-validate: ^29.3.1
+ jest-circus: ^29.4.3
+ jest-environment-node: ^29.4.3
+ jest-get-type: ^29.4.3
+ jest-regex-util: ^29.4.3
+ jest-resolve: ^29.4.3
+ jest-runner: ^29.4.3
+ jest-util: ^29.4.3
+ jest-validate: ^29.4.3
micromatch: ^4.0.4
parse-json: ^5.2.0
- pretty-format: ^29.3.1
+ pretty-format: ^29.4.3
slash: ^3.0.0
strip-json-comments: ^3.1.1
peerDependencies:
@@ -27148,7 +26736,7 @@ __metadata:
optional: true
ts-node:
optional: true
- checksum: 6e663f04ae1024a53a4c2c744499b4408ca9a8b74381dd5e31b11bb3c7393311ecff0fb61b06287768709eb2c9e5a2fd166d258f5a9123abbb4c5812f99c12fe
+ checksum: 92f9a9c6850b18682cb01892774a33967472af23a5844438d8c68077d5f2a29b15b665e4e4db7de3d74002a6dca158cd5b2cb9f5debfd2cce5e1aee6c74e3873
languageName: node
linkType: hard
@@ -27173,72 +26761,72 @@ __metadata:
languageName: node
linkType: hard
-"jest-diff@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-diff@npm:29.3.1"
+"jest-diff@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-diff@npm:29.4.3"
dependencies:
chalk: ^4.0.0
- diff-sequences: ^29.3.1
- jest-get-type: ^29.2.0
- pretty-format: ^29.3.1
- checksum: ac5c09745f2b1897e6f53216acaf6ed44fc4faed8e8df053ff4ac3db5d2a1d06a17b876e49faaa15c8a7a26f5671bcbed0a93781dcc2835f781c79a716a591a9
+ diff-sequences: ^29.4.3
+ jest-get-type: ^29.4.3
+ pretty-format: ^29.4.3
+ checksum: 877fd1edffef6b319688c27b152e5b28e2bc4bcda5ce0ca90d7e137f9fafda4280bae25403d4c0bfd9806c2c0b15d966aa2dfaf5f9928ec8f1ccea7fa1d08ed6
languageName: node
linkType: hard
-"jest-docblock@npm:^29.2.0":
- version: 29.2.0
- resolution: "jest-docblock@npm:29.2.0"
+"jest-docblock@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-docblock@npm:29.4.3"
dependencies:
detect-newline: ^3.0.0
- checksum: b3f1227b7d73fc9e4952180303475cf337b36fa65c7f730ac92f0580f1c08439983262fee21cf3dba11429aa251b4eee1e3bc74796c5777116b400d78f9d2bbe
+ checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df
languageName: node
linkType: hard
-"jest-each@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-each@npm:29.3.1"
+"jest-each@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-each@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
chalk: ^4.0.0
- jest-get-type: ^29.2.0
- jest-util: ^29.3.1
- pretty-format: ^29.3.1
- checksum: 16d51ef8f96fba44a3479f1c6f7672027e3b39236dc4e41217c38fe60a3b66b022ffcee72f8835a442f7a8a0a65980a93fb8e73a9782d192452526e442ad049a
+ jest-get-type: ^29.4.3
+ jest-util: ^29.4.3
+ pretty-format: ^29.4.3
+ checksum: 1f72738338399efab0139eaea18bc198be0c6ed889770c8cbfa70bf9c724e8171fe1d3a29a94f9f39b8493ee6b2529bb350fb7c7c75e0d7eddfd28c253c79f9d
languageName: node
linkType: hard
"jest-environment-jsdom@npm:^29.0.2":
- version: 29.3.1
- resolution: "jest-environment-jsdom@npm:29.3.1"
+ version: 29.4.3
+ resolution: "jest-environment-jsdom@npm:29.4.3"
dependencies:
- "@jest/environment": ^29.3.1
- "@jest/fake-timers": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/environment": ^29.4.3
+ "@jest/fake-timers": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/jsdom": ^20.0.0
"@types/node": "*"
- jest-mock: ^29.3.1
- jest-util: ^29.3.1
+ jest-mock: ^29.4.3
+ jest-util: ^29.4.3
jsdom: ^20.0.0
peerDependencies:
canvas: ^2.5.0
peerDependenciesMeta:
canvas:
optional: true
- checksum: 91b04ed02b2275c3a47740e20c2691f67c4295e17174c8ccd3a71fe77707239e487506bd157279b4257ce1be0a8c2be377817ee85689966a9e604bb6ef1199f0
+ checksum: 3fb29bb4b472e05a38fdb235aa936ad469dfa2f6c1cab97fe3d1a7c585351976d05c7bbbd715b9747f070a225dcf10a9166df1461e0fb838ea7a377a8e64bed4
languageName: node
linkType: hard
-"jest-environment-node@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-environment-node@npm:29.3.1"
+"jest-environment-node@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-environment-node@npm:29.4.3"
dependencies:
- "@jest/environment": ^29.3.1
- "@jest/fake-timers": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/environment": ^29.4.3
+ "@jest/fake-timers": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
- jest-mock: ^29.3.1
- jest-util: ^29.3.1
- checksum: 16d4854bd2d35501bd4862ca069baf27ce9f5fd7642fdcab9d2dab49acd28c082d0c8882bf2bb28ed7bbaada486da577c814c9688ddc62d1d9f74a954fde996a
+ jest-mock: ^29.4.3
+ jest-util: ^29.4.3
+ checksum: 3c7362edfdbd516e83af7367c95dde35761a482b174de9735c07633405486ec73e19624e9bea4333fca33c24e8d65eaa1aa6594e0cb6bfeeeb564ccc431ee61d
languageName: node
linkType: hard
@@ -27249,43 +26837,43 @@ __metadata:
languageName: node
linkType: hard
-"jest-get-type@npm:^29.2.0":
- version: 29.2.0
- resolution: "jest-get-type@npm:29.2.0"
- checksum: e396fd880a30d08940ed8a8e43cd4595db1b8ff09649018eb358ca701811137556bae82626af73459e3c0f8c5e972ed1e57fd3b1537b13a260893dac60a90942
+"jest-get-type@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-get-type@npm:29.4.3"
+ checksum: 6ac7f2dde1c65e292e4355b6c63b3a4897d7e92cb4c8afcf6d397f2682f8080e094c8b0b68205a74d269882ec06bf696a9de6cd3e1b7333531e5ed7b112605ce
languageName: node
linkType: hard
-"jest-haste-map@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-haste-map@npm:29.3.1"
+"jest-haste-map@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-haste-map@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@types/graceful-fs": ^4.1.3
"@types/node": "*"
anymatch: ^3.0.3
fb-watchman: ^2.0.0
fsevents: ^2.3.2
graceful-fs: ^4.2.9
- jest-regex-util: ^29.2.0
- jest-util: ^29.3.1
- jest-worker: ^29.3.1
+ jest-regex-util: ^29.4.3
+ jest-util: ^29.4.3
+ jest-worker: ^29.4.3
micromatch: ^4.0.4
walker: ^1.0.8
dependenciesMeta:
fsevents:
optional: true
- checksum: 97ea26af0c28a2ba568c9c65d06211487bbcd501cb4944f9d55e07fd2b00ad96653ea2cc9033f3d5b7dc1feda33e47ae9cc56b400191ea4533be213c9f82e67c
+ checksum: c7a83ebe6008b3fe96a96235e8153092e54b14df68e0f4205faedec57450df26b658578495a71c6d82494c01fbb44bca98c1506a6b2b9c920696dcc5d2e2bc59
languageName: node
linkType: hard
-"jest-leak-detector@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-leak-detector@npm:29.3.1"
+"jest-leak-detector@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-leak-detector@npm:29.4.3"
dependencies:
- jest-get-type: ^29.2.0
- pretty-format: ^29.3.1
- checksum: 0dd8ed31ae0b5a3d14f13f567ca8567f2663dd2d540d1e55511d3b3fd7f80a1d075392179674ebe9fab9be0b73678bf4d2f8bbbc0f4bdd52b9815259194da559
+ jest-get-type: ^29.4.3
+ pretty-format: ^29.4.3
+ checksum: ec2b45e6f0abce81bd0dd0f6fd06b433c24d1ec865267af7640fae540ec868b93752598e407a9184d9c7419cbf32e8789007cc8c1be1a84f8f7321a0f8ad01f1
languageName: node
linkType: hard
@@ -27301,15 +26889,15 @@ __metadata:
languageName: node
linkType: hard
-"jest-matcher-utils@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-matcher-utils@npm:29.3.1"
+"jest-matcher-utils@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-matcher-utils@npm:29.4.3"
dependencies:
chalk: ^4.0.0
- jest-diff: ^29.3.1
- jest-get-type: ^29.2.0
- pretty-format: ^29.3.1
- checksum: 311e8d9f1e935216afc7dd8c6acf1fbda67a7415e1afb1bf72757213dfb025c1f2dc5e2c185c08064a35cdc1f2d8e40c57616666774ed1b03e57eb311c20ec77
+ jest-diff: ^29.4.3
+ jest-get-type: ^29.4.3
+ pretty-format: ^29.4.3
+ checksum: 9e13cbe42d2113bab2691110c7c3ba5cec3b94abad2727e1de90929d0f67da444e9b2066da3b476b5bf788df53a8ede0e0a950cfb06a04e4d6d566d115ee4f1d
languageName: node
linkType: hard
@@ -27330,31 +26918,31 @@ __metadata:
languageName: node
linkType: hard
-"jest-message-util@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-message-util@npm:29.3.1"
+"jest-message-util@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-message-util@npm:29.4.3"
dependencies:
"@babel/code-frame": ^7.12.13
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@types/stack-utils": ^2.0.0
chalk: ^4.0.0
graceful-fs: ^4.2.9
micromatch: ^4.0.4
- pretty-format: ^29.3.1
+ pretty-format: ^29.4.3
slash: ^3.0.0
stack-utils: ^2.0.3
- checksum: 15d0a2fca3919eb4570bbf575734780c4b9e22de6aae903c4531b346699f7deba834c6c86fe6e9a83ad17fac0f7935511cf16dce4d71a93a71ebb25f18a6e07b
+ checksum: 64f06b9550021e68da0059020bea8691283cf818918810bb67192d7b7fb9b691c7eadf55c2ca3cd04df5394918f2327245077095cdc0d6b04be3532d2c7d0ced
languageName: node
linkType: hard
-"jest-mock@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-mock@npm:29.3.1"
+"jest-mock@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-mock@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@types/node": "*"
- jest-util: ^29.3.1
- checksum: 9098852cb2866db4a1a59f9f7581741dfc572f648e9e574a1b187fd69f5f2f6190ad387ede21e139a8b80a6a1343ecc3d6751cd2ae1ae11d7ea9fa1950390fb2
+ jest-util: ^29.4.3
+ checksum: 8eb4a29b02d2cd03faac0290b6df6d23b4ffa43f72b21c7fff3c7dd04a2797355b1e85862b70b15341dd33ee3a693b17db5520a6f6e6b81ee75601987de6a1a2
languageName: node
linkType: hard
@@ -27370,102 +26958,102 @@ __metadata:
languageName: node
linkType: hard
-"jest-regex-util@npm:^29.2.0":
- version: 29.2.0
- resolution: "jest-regex-util@npm:29.2.0"
- checksum: 7c533e51c51230dac20c0d7395b19b8366cb022f7c6e08e6bcf2921626840ff90424af4c9b4689f02f0addfc9b071c4cd5f8f7a989298a4c8e0f9c94418ca1c3
+"jest-regex-util@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-regex-util@npm:29.4.3"
+ checksum: 96fc7fc28cd4dd73a63c13a526202c4bd8b351d4e5b68b1a2a2c88da3308c2a16e26feaa593083eb0bac38cca1aa9dd05025412e7de013ba963fb8e66af22b8a
languageName: node
linkType: hard
-"jest-resolve-dependencies@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-resolve-dependencies@npm:29.3.1"
+"jest-resolve-dependencies@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-resolve-dependencies@npm:29.4.3"
dependencies:
- jest-regex-util: ^29.2.0
- jest-snapshot: ^29.3.1
- checksum: 6ec4727a87c6e7954e93de9949ab9967b340ee2f07626144c273355f05a2b65fa47eb8dece2d6e5f4fd99cdb893510a3540aa5e14ba443f70b3feb63f6f98982
+ jest-regex-util: ^29.4.3
+ jest-snapshot: ^29.4.3
+ checksum: 3ad934cd2170c9658d8800f84a975dafc866ec85b7ce391c640c09c3744ced337787620d8667dc8d1fa5e0b1493f973caa1a1bb980e4e6a50b46a1720baf0bd1
languageName: node
linkType: hard
-"jest-resolve@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-resolve@npm:29.3.1"
+"jest-resolve@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-resolve@npm:29.4.3"
dependencies:
chalk: ^4.0.0
graceful-fs: ^4.2.9
- jest-haste-map: ^29.3.1
+ jest-haste-map: ^29.4.3
jest-pnp-resolver: ^1.2.2
- jest-util: ^29.3.1
- jest-validate: ^29.3.1
+ jest-util: ^29.4.3
+ jest-validate: ^29.4.3
resolve: ^1.20.0
- resolve.exports: ^1.1.0
+ resolve.exports: ^2.0.0
slash: ^3.0.0
- checksum: 0dea22ed625e07b8bfee52dea1391d3a4b453c1a0c627a0fa7c22e44bb48e1c289afe6f3c316def70753773f099c4e8f436c7a2cc12fcc6c7dd6da38cba2cd5f
+ checksum: 056a66beccf833f3c7e5a8fc9bfec218886e87b0b103decdbdf11893669539df489d1490cd6d5f0eea35731e8be0d2e955a6710498f970d2eae734da4df029dc
languageName: node
linkType: hard
-"jest-runner@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-runner@npm:29.3.1"
+"jest-runner@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-runner@npm:29.4.3"
dependencies:
- "@jest/console": ^29.3.1
- "@jest/environment": ^29.3.1
- "@jest/test-result": ^29.3.1
- "@jest/transform": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/console": ^29.4.3
+ "@jest/environment": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/transform": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
chalk: ^4.0.0
emittery: ^0.13.1
graceful-fs: ^4.2.9
- jest-docblock: ^29.2.0
- jest-environment-node: ^29.3.1
- jest-haste-map: ^29.3.1
- jest-leak-detector: ^29.3.1
- jest-message-util: ^29.3.1
- jest-resolve: ^29.3.1
- jest-runtime: ^29.3.1
- jest-util: ^29.3.1
- jest-watcher: ^29.3.1
- jest-worker: ^29.3.1
+ jest-docblock: ^29.4.3
+ jest-environment-node: ^29.4.3
+ jest-haste-map: ^29.4.3
+ jest-leak-detector: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-resolve: ^29.4.3
+ jest-runtime: ^29.4.3
+ jest-util: ^29.4.3
+ jest-watcher: ^29.4.3
+ jest-worker: ^29.4.3
p-limit: ^3.1.0
source-map-support: 0.5.13
- checksum: 61ad445d8a5f29573332f27a21fc942fb0d2a82bf901a0ea1035bf3bd7f349d1e425f71f54c3a3f89b292a54872c3248d395a2829d987f26b6025b15530ea5d2
+ checksum: c41108e5da01e0b8fdc2a06c5042eb49bb1d8db0e0d4651769fd1b9fe84ab45188617c11a3a8e1c83748b29bfe57dd77001ec57e86e3e3c30f3534e0314f8882
languageName: node
linkType: hard
-"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-runtime@npm:29.3.1"
+"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-runtime@npm:29.4.3"
dependencies:
- "@jest/environment": ^29.3.1
- "@jest/fake-timers": ^29.3.1
- "@jest/globals": ^29.3.1
- "@jest/source-map": ^29.2.0
- "@jest/test-result": ^29.3.1
- "@jest/transform": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/environment": ^29.4.3
+ "@jest/fake-timers": ^29.4.3
+ "@jest/globals": ^29.4.3
+ "@jest/source-map": ^29.4.3
+ "@jest/test-result": ^29.4.3
+ "@jest/transform": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
chalk: ^4.0.0
cjs-module-lexer: ^1.0.0
collect-v8-coverage: ^1.0.0
glob: ^7.1.3
graceful-fs: ^4.2.9
- jest-haste-map: ^29.3.1
- jest-message-util: ^29.3.1
- jest-mock: ^29.3.1
- jest-regex-util: ^29.2.0
- jest-resolve: ^29.3.1
- jest-snapshot: ^29.3.1
- jest-util: ^29.3.1
+ jest-haste-map: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-mock: ^29.4.3
+ jest-regex-util: ^29.4.3
+ jest-resolve: ^29.4.3
+ jest-snapshot: ^29.4.3
+ jest-util: ^29.4.3
slash: ^3.0.0
strip-bom: ^4.0.0
- checksum: 82f27b48f000be074064a854e16e768f9453e9b791d8c5f9316606c37f871b5b10f70544c1b218ab9784f00bd972bb77f868c5ab6752c275be2cd219c351f5a7
+ checksum: b99f8a910d1a38e7476058ba04ad44dfd3d93e837bb7c301d691e646a1085412fde87f06fbe271c9145f0e72d89400bfa7f6994bc30d456c7742269f37d0f570
languageName: node
linkType: hard
-"jest-snapshot@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-snapshot@npm:29.3.1"
+"jest-snapshot@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-snapshot@npm:29.4.3"
dependencies:
"@babel/core": ^7.11.6
"@babel/generator": ^7.7.2
@@ -27473,25 +27061,25 @@ __metadata:
"@babel/plugin-syntax-typescript": ^7.7.2
"@babel/traverse": ^7.7.2
"@babel/types": ^7.3.3
- "@jest/expect-utils": ^29.3.1
- "@jest/transform": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/expect-utils": ^29.4.3
+ "@jest/transform": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/babel__traverse": ^7.0.6
"@types/prettier": ^2.1.5
babel-preset-current-node-syntax: ^1.0.0
chalk: ^4.0.0
- expect: ^29.3.1
+ expect: ^29.4.3
graceful-fs: ^4.2.9
- jest-diff: ^29.3.1
- jest-get-type: ^29.2.0
- jest-haste-map: ^29.3.1
- jest-matcher-utils: ^29.3.1
- jest-message-util: ^29.3.1
- jest-util: ^29.3.1
+ jest-diff: ^29.4.3
+ jest-get-type: ^29.4.3
+ jest-haste-map: ^29.4.3
+ jest-matcher-utils: ^29.4.3
+ jest-message-util: ^29.4.3
+ jest-util: ^29.4.3
natural-compare: ^1.4.0
- pretty-format: ^29.3.1
+ pretty-format: ^29.4.3
semver: ^7.3.5
- checksum: d7d0077935e78c353c828be78ccb092e12ba7622cb0577f21641fadd728ae63a7c1f4a0d8113bfb38db3453a64bfa232fb1cdeefe0e2b48c52ef4065b0ab75ae
+ checksum: 79ba52f2435e23ce72b1309be4b17fdbcb299d1c2ce97ebb61df9a62711e9463035f63b4c849181b2fe5aa17b3e09d30ee4668cc25fb3c6f59511c010b4d9494
languageName: node
linkType: hard
@@ -27509,47 +27097,47 @@ __metadata:
languageName: node
linkType: hard
-"jest-util@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-util@npm:29.3.1"
+"jest-util@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-util@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
"@types/node": "*"
chalk: ^4.0.0
ci-info: ^3.2.0
graceful-fs: ^4.2.9
picomatch: ^2.2.3
- checksum: f67c60f062b94d21cb60e84b3b812d64b7bfa81fe980151de5c17a74eb666042d0134e2e756d099b7606a1fcf1d633824d2e58197d01d76dde1e2dc00dfcd413
+ checksum: 606b3e6077895baf8fb4ad4d08c134f37a6b81d5ba77ae654c942b1ae4b7294ab3b5a0eb93db34f129407b367970cf3b76bf5c80897b30f215f2bc8bf20a5f3f
languageName: node
linkType: hard
-"jest-validate@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-validate@npm:29.3.1"
+"jest-validate@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-validate@npm:29.4.3"
dependencies:
- "@jest/types": ^29.3.1
+ "@jest/types": ^29.4.3
camelcase: ^6.2.0
chalk: ^4.0.0
- jest-get-type: ^29.2.0
+ jest-get-type: ^29.4.3
leven: ^3.1.0
- pretty-format: ^29.3.1
- checksum: 92584f0b8ac284235f12b3b812ccbc43ef6dea080a3b98b1aa81adbe009e962d0aa6131f21c8157b30ac3d58f335961694238a93d553d1d1e02ab264c923778c
+ pretty-format: ^29.4.3
+ checksum: 983e56430d86bed238448cae031535c1d908f760aa312cd4a4ec0e92f3bc1b6675415ddf57cdeceedb8ad9c698e5bcd10f0a856dfc93a8923bdecc7733f4ba80
languageName: node
linkType: hard
-"jest-watcher@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-watcher@npm:29.3.1"
+"jest-watcher@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-watcher@npm:29.4.3"
dependencies:
- "@jest/test-result": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/test-result": ^29.4.3
+ "@jest/types": ^29.4.3
"@types/node": "*"
ansi-escapes: ^4.2.1
chalk: ^4.0.0
emittery: ^0.13.1
- jest-util: ^29.3.1
+ jest-util: ^29.4.3
string-length: ^4.0.1
- checksum: 60d189473486c73e9d540406a30189da5a3c67bfb0fb4ad4a83991c189135ef76d929ec99284ca5a505fe4ee9349ae3c99b54d2e00363e72837b46e77dec9642
+ checksum: 44b64991b3414db853c3756f14690028f4edef7aebfb204a4291cc1901c2239fa27a8687c5c5abbecc74bf613e0bb9b1378bf766430c9febcc71e9c0cb5ad8fc
languageName: node
linkType: hard
@@ -27584,26 +27172,26 @@ __metadata:
languageName: node
linkType: hard
-"jest-worker@npm:^29.3.1":
- version: 29.3.1
- resolution: "jest-worker@npm:29.3.1"
+"jest-worker@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "jest-worker@npm:29.4.3"
dependencies:
"@types/node": "*"
- jest-util: ^29.3.1
+ jest-util: ^29.4.3
merge-stream: ^2.0.0
supports-color: ^8.0.0
- checksum: 38687fcbdc2b7ddc70bbb5dfc703ae095b46b3c7f206d62ecdf5f4d16e336178e217302138f3b906125576bb1cfe4cfe8d43681276fa5899d138ed9422099fb3
+ checksum: c99ae66f257564613e72c5797c3a68f21a22e1c1fb5f30d14695ff5b508a0d2405f22748f13a3df8d1015b5e16abb130170f81f047ff68f58b6b1d2ff6ebc51b
languageName: node
linkType: hard
"jest@npm:^29.0.2":
- version: 29.3.1
- resolution: "jest@npm:29.3.1"
+ version: 29.4.3
+ resolution: "jest@npm:29.4.3"
dependencies:
- "@jest/core": ^29.3.1
- "@jest/types": ^29.3.1
+ "@jest/core": ^29.4.3
+ "@jest/types": ^29.4.3
import-local: ^3.0.2
- jest-cli: ^29.3.1
+ jest-cli: ^29.4.3
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
@@ -27611,7 +27199,7 @@ __metadata:
optional: true
bin:
jest: bin/jest.js
- checksum: 613f4ec657b14dd84c0056b2fef1468502927fd551bef0b19d4a91576a609678fb316c6a5b5fc6120dd30dd4ff4569070ffef3cb507db9bb0260b28ddaa18d7a
+ checksum: 084d10d1ceaade3c40e6d3bbd71b9b71b8919ba6fbd6f1f6699bdc259a6ba2f7350c7ccbfa10c11f7e3e01662853650a6244210179542fe4ba87e77dc3f3109f
languageName: node
linkType: hard
@@ -33286,14 +32874,14 @@ __metadata:
languageName: node
linkType: hard
-"pretty-format@npm:^29.0.0, pretty-format@npm:^29.3.1":
- version: 29.3.1
- resolution: "pretty-format@npm:29.3.1"
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.4.3":
+ version: 29.4.3
+ resolution: "pretty-format@npm:29.4.3"
dependencies:
- "@jest/schemas": ^29.0.0
+ "@jest/schemas": ^29.4.3
ansi-styles: ^5.0.0
react-is: ^18.0.0
- checksum: 9917a0bb859cd7a24a343363f70d5222402c86d10eb45bcc2f77b23a4e67586257390e959061aec22762a782fe6bafb59bf34eb94527bc2e5d211afdb287eb4e
+ checksum: 3258b9a010bd79b3cf73783ad1e4592b6326fc981b6e31b742f316f14e7fbac09b48a9dbf274d092d9bde404db9fe16f518370e121837dc078a597392e6e5cc5
languageName: node
linkType: hard
@@ -35066,10 +34654,10 @@ __metadata:
languageName: node
linkType: hard
-"resolve.exports@npm:^1.1.0":
- version: 1.1.0
- resolution: "resolve.exports@npm:1.1.0"
- checksum: 52865af8edb088f6c7759a328584a5de6b226754f004b742523adcfe398cfbc4559515104bc2ae87b8e78b1e4de46c9baec400b3fb1f7d517b86d2d48a098a2d
+"resolve.exports@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "resolve.exports@npm:2.0.0"
+ checksum: d8bee3b0cc0a0ae6c8323710983505bc6a3a2574f718e96f01e048a0f0af035941434b386cc9efc7eededc5e1199726185c306ec6f6a1aa55d5fbad926fd0634
languageName: node
linkType: hard
@@ -37332,13 +36920,13 @@ __metadata:
linkType: hard
"swr@npm:^2.0.0":
- version: 2.0.4
- resolution: "swr@npm:2.0.4"
+ version: 2.1.0
+ resolution: "swr@npm:2.1.0"
dependencies:
use-sync-external-store: ^1.2.0
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0
- checksum: 2fd26baed9a0ad3ecf24d7a64c4929f9c3be71c942e883ab369c3929aa297a47b0512c29ed8cdfd0ce2e3f5ee3f181d80c16b2b95128a0ae58bc133b4a0ea5a8
+ checksum: 7de1799f319c7ebfb996cb843279169144b7087215ce7318dd6011590908341ac7d5bca93a197666557c2450b0297d9efbc610fd069b82dc3387130c619965fc
languageName: node
linkType: hard
@@ -39609,7 +39197,7 @@ __metadata:
languageName: node
linkType: hard
-"write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.1":
+"write-file-atomic@npm:^4.0.0, write-file-atomic@npm:^4.0.2":
version: 4.0.2
resolution: "write-file-atomic@npm:4.0.2"
dependencies:
From 9b8c374ace558489fe2b6b8a3f69e5ac4fc99f9b Mon Sep 17 00:00:00 2001
From: afalco
Date: Thu, 9 Mar 2023 10:49:34 -0600
Subject: [PATCH 017/177] Do not show timer for skipped steps
Signed-off-by: afalco
---
.changeset/mean-emus-hide.md | 5 +++++
.../src/next/components/TaskSteps/TaskSteps.tsx | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
create mode 100644 .changeset/mean-emus-hide.md
diff --git a/.changeset/mean-emus-hide.md b/.changeset/mean-emus-hide.md
new file mode 100644
index 0000000000..955e25d258
--- /dev/null
+++ b/.changeset/mean-emus-hide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-react': patch
+---
+
+Remove timer for skipped steps in Scaffolder Next's TaskSteps
diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
index 632500f07e..668306fa9e 100644
--- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
+++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
@@ -80,7 +80,7 @@ export const TaskSteps = (props: TaskStepsProps) => {
StepIconComponent={StepIcon}
>
{step.name}
-
+ {!isSkipped && }
From e2e3dd08a5444cf7a4aac96018274a02f2b86199 Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Thu, 9 Mar 2023 22:47:17 +0000
Subject: [PATCH 018/177] Add FireHydrant annotation option
Signed-off-by: Dustin Brewer
---
.changeset/tidy-planes-unite.md | 5 ++++
plugins/firehydrant/README.md | 8 ++++++
plugins/firehydrant/package.json | 1 +
plugins/firehydrant/src/api/index.ts | 5 +++-
.../ServiceDetailsCard/ServiceDetailsCard.tsx | 7 ++---
plugins/firehydrant/src/components/hooks.ts | 27 +++++++++++++++++++
.../src/components/serviceDetails.ts | 13 +++++++--
plugins/firehydrant/src/index.ts | 6 ++++-
plugins/firehydrant/src/plugin.ts | 3 +++
yarn.lock | 1 +
10 files changed, 69 insertions(+), 7 deletions(-)
create mode 100644 .changeset/tidy-planes-unite.md
create mode 100644 plugins/firehydrant/src/components/hooks.ts
diff --git a/.changeset/tidy-planes-unite.md b/.changeset/tidy-planes-unite.md
new file mode 100644
index 0000000000..158498d381
--- /dev/null
+++ b/.changeset/tidy-planes-unite.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-firehydrant': minor
+---
+
+Allow firehydrant to use component annotation
diff --git a/plugins/firehydrant/README.md b/plugins/firehydrant/README.md
index d7169e08f0..4472536245 100644
--- a/plugins/firehydrant/README.md
+++ b/plugins/firehydrant/README.md
@@ -56,3 +56,11 @@ proxy:
# Supply the token you generated from https://app.firehydrant.io/organizations/bots
Authorization: Bearer fhb-e4911b22bcd788c4a4afeb0c111ffbfa
```
+
+4. Optionally add an annotation to the yaml config file of a component
+
+```yaml
+metadata:
+ annotations:
+ firehydrant.com/service-name:
+```
diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json
index 293679c2ea..8084876f69 100644
--- a/plugins/firehydrant/package.json
+++ b/plugins/firehydrant/package.json
@@ -23,6 +23,7 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
+ "@backstage/catalog-model": "workspace:^",
"@backstage/core-components": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
diff --git a/plugins/firehydrant/src/api/index.ts b/plugins/firehydrant/src/api/index.ts
index 7101b5dc62..45834d90e9 100644
--- a/plugins/firehydrant/src/api/index.ts
+++ b/plugins/firehydrant/src/api/index.ts
@@ -30,6 +30,7 @@ export interface FireHydrantAPI {
getServiceDetails(options: {
serviceName: string;
+ lookupByName: boolean;
}): Promise;
getServiceIncidents(options: {
@@ -77,10 +78,12 @@ export class FireHydrantAPIClient implements FireHydrantAPI {
async getServiceDetails(options: {
serviceName: string;
+ lookupByName: boolean;
}): Promise {
+ const queryOpt = options.lookupByName ? 'name' : 'query';
const proxyUrl = await this.getApiUrl();
const response = await fetch(
- `${proxyUrl}/services?query=${options.serviceName}`,
+ `${proxyUrl}/services?${queryOpt}=${options.serviceName}`,
);
if (!response.ok) {
diff --git a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
index bc2dd46fef..b6bfbcc13b 100644
--- a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
+++ b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
@@ -39,6 +39,7 @@ import {
ResponseErrorPanel,
} from '@backstage/core-components';
import { configApiRef, useApi } from '@backstage/core-plugin-api';
+import { isFireHydrantAvailable, getFireHydrantServiceName } from '../hooks';
const useStyles = makeStyles(theme => ({
button: {
@@ -149,14 +150,14 @@ export const ServiceDetailsCard = () => {
const startDate = DateTime.now().minus({ days: 30 }).toUTC();
const endDate = DateTime.now().toUTC();
+ // The service name is provided by an annotation or a Backstage generated service name.
// The Backstage service name in FireHydrant is a unique formatted string
// that requires the entity's kind, name, and namespace.
- const fireHydrantServiceName = `${entity?.kind}:${
- entity?.metadata?.namespace ?? 'default'
- }/${entity?.metadata?.name}`;
+ const fireHydrantServiceName = getFireHydrantServiceName(entity);
const { loading, value, error } = useServiceDetails({
serviceName: fireHydrantServiceName,
+ lookupByName: isFireHydrantAvailable(entity),
});
const activeIncidents: string[] = value?.service?.active_incidents ?? [];
diff --git a/plugins/firehydrant/src/components/hooks.ts b/plugins/firehydrant/src/components/hooks.ts
new file mode 100644
index 0000000000..e8129e1b28
--- /dev/null
+++ b/plugins/firehydrant/src/components/hooks.ts
@@ -0,0 +1,27 @@
+/*
+ * 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 { Entity } from '@backstage/catalog-model';
+
+export const FIREHYDRANT_SERVICE_NAME_ANNOTATION =
+ 'firehydrant.com/service-name';
+export const isFireHydrantAvailable = (entity: Entity) =>
+ Boolean(entity.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION]);
+export const getFireHydrantServiceName = (entity: Entity) =>
+ isFireHydrantAvailable(entity)
+ ? entity?.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION] ?? ''
+ : `${entity?.kind}:${entity?.metadata?.namespace ?? 'default'}/${
+ entity?.metadata?.name
+ }`;
diff --git a/plugins/firehydrant/src/components/serviceDetails.ts b/plugins/firehydrant/src/components/serviceDetails.ts
index 9c12677577..f0ea325419 100644
--- a/plugins/firehydrant/src/components/serviceDetails.ts
+++ b/plugins/firehydrant/src/components/serviceDetails.ts
@@ -17,13 +17,22 @@ import useAsyncRetry from 'react-use/lib/useAsyncRetry';
import { fireHydrantApiRef } from '../api';
import { errorApiRef, useApi } from '@backstage/core-plugin-api';
-export const useServiceDetails = ({ serviceName }: { serviceName: string }) => {
+export const useServiceDetails = ({
+ serviceName,
+ lookupByName,
+}: {
+ serviceName: string;
+ lookupByName: boolean;
+}) => {
const api = useApi(fireHydrantApiRef);
const errorApi = useApi(errorApiRef);
const { loading, value, error, retry } = useAsyncRetry(async () => {
try {
- return await api.getServiceDetails({ serviceName: serviceName });
+ return await api.getServiceDetails({
+ serviceName: serviceName,
+ lookupByName: lookupByName,
+ });
} catch (e) {
errorApi.post(e);
return Promise.reject(e);
diff --git a/plugins/firehydrant/src/index.ts b/plugins/firehydrant/src/index.ts
index f1ef66fd3e..218b944244 100644
--- a/plugins/firehydrant/src/index.ts
+++ b/plugins/firehydrant/src/index.ts
@@ -20,4 +20,8 @@
* @packageDocumentation
*/
-export { firehydrantPlugin, FirehydrantCard } from './plugin';
+export {
+ firehydrantPlugin,
+ FirehydrantCard,
+ isFireHydrantAvailable,
+} from './plugin';
diff --git a/plugins/firehydrant/src/plugin.ts b/plugins/firehydrant/src/plugin.ts
index 6deefe4fce..14a8c53c66 100644
--- a/plugins/firehydrant/src/plugin.ts
+++ b/plugins/firehydrant/src/plugin.ts
@@ -50,3 +50,6 @@ export const FirehydrantCard = firehydrantPlugin.provide(
},
}),
);
+
+/** @public */
+export { isFireHydrantAvailable } from './components/hooks';
diff --git a/yarn.lock b/yarn.lock
index 4ad5e727d0..5d3cd95dbb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6249,6 +6249,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-firehydrant@workspace:plugins/firehydrant"
dependencies:
+ "@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/core-app-api": "workspace:^"
"@backstage/core-components": "workspace:^"
From cce21f4cc4a4468f9d63385ea944ac2a4f3c04a0 Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Thu, 9 Mar 2023 23:06:14 +0000
Subject: [PATCH 019/177] Add a few tests
Signed-off-by: Dustin Brewer
---
.../firehydrant/src/components/hooks.test.ts | 67 +++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 plugins/firehydrant/src/components/hooks.test.ts
diff --git a/plugins/firehydrant/src/components/hooks.test.ts b/plugins/firehydrant/src/components/hooks.test.ts
new file mode 100644
index 0000000000..4278911ebb
--- /dev/null
+++ b/plugins/firehydrant/src/components/hooks.test.ts
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2021 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 { Entity } from '@backstage/catalog-model';
+import { isFireHydrantAvailable, getFireHydrantServiceName } from './hooks';
+
+describe('firehydrant-hooks-isFireHydrantAvailable', () => {
+ it('should find an annotation', () => {
+ const e: Entity = {
+ metadata: {
+ annotations: {
+ 'firehydrant.com/service-name': 'test-fh-name',
+ },
+ },
+ };
+ expect(isFireHydrantAvailable(e)).toEqual(true);
+ });
+
+ it('should not find an annotation', () => {
+ const e: Entity = {
+ metadata: {},
+ };
+ expect(isFireHydrantAvailable(e)).toEqual(false);
+ });
+});
+
+describe('firehydrant-hooks-getFireHydrantServiceName', () => {
+ it('should return annotation service name', () => {
+ const expected = 'test-fh-name';
+ const e: Entity = {
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ annotations: {
+ 'firehydrant.com/service-name': expected,
+ },
+ },
+ };
+ expect(getFireHydrantServiceName(e)).toEqual(expected);
+ });
+
+ it('should return generated service name', () => {
+ const expected = 'Component:default/test-fh-name';
+ const e: Entity = {
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ annotations: {},
+ },
+ };
+ expect(getFireHydrantServiceName(e)).toEqual(expected);
+ });
+});
From 88da0bcff21a9f83b81c49c7eb9b5ac96435a64e Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Thu, 9 Mar 2023 16:18:32 -0700
Subject: [PATCH 020/177] add plugId property
Signed-off-by: Kurt King
---
docs/plugins/feature-flags.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/docs/plugins/feature-flags.md b/docs/plugins/feature-flags.md
index a572143d6e..d6847d3f65 100644
--- a/docs/plugins/feature-flags.md
+++ b/docs/plugins/feature-flags.md
@@ -37,7 +37,12 @@ Defining feature flag in the application is done by adding feature flags in`feat
const app = createApp({
// ...
featureFlags: [
- { name: 'tech-radar', description: 'Enables the tech radar plugin' },
+ // pluginId can be left empty for feature flags used in the application. It is required for feature flags used in plugins
+ {
+ pluginId: '',
+ name: 'tech-radar',
+ description: 'Enables the tech radar plugin',
+ },
],
// ...
});
From 0708a169de2bb16e787912cef8cc086ddb7e842c Mon Sep 17 00:00:00 2001
From: Kurt King
Date: Thu, 9 Mar 2023 16:20:46 -0700
Subject: [PATCH 021/177] move comment after prettier ran
Signed-off-by: Kurt King
---
docs/plugins/feature-flags.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/docs/plugins/feature-flags.md b/docs/plugins/feature-flags.md
index d6847d3f65..7b7a6c1435 100644
--- a/docs/plugins/feature-flags.md
+++ b/docs/plugins/feature-flags.md
@@ -37,9 +37,8 @@ Defining feature flag in the application is done by adding feature flags in`feat
const app = createApp({
// ...
featureFlags: [
- // pluginId can be left empty for feature flags used in the application. It is required for feature flags used in plugins
{
- pluginId: '',
+ pluginId: '', // pluginId is required for feature flags in plugins. It can be left blank for a feature flag leveraged in the application.
name: 'tech-radar',
description: 'Enables the tech radar plugin',
},
From 392e71fa7fbfea1bc652ca28fe72e135dc04c253 Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Thu, 9 Mar 2023 23:22:54 +0000
Subject: [PATCH 022/177] Correcting Entity in tests
Signed-off-by: Dustin Brewer
---
plugins/firehydrant/src/components/hooks.test.ts | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/plugins/firehydrant/src/components/hooks.test.ts b/plugins/firehydrant/src/components/hooks.test.ts
index 4278911ebb..2fbf1e2d57 100644
--- a/plugins/firehydrant/src/components/hooks.test.ts
+++ b/plugins/firehydrant/src/components/hooks.test.ts
@@ -19,7 +19,11 @@ import { isFireHydrantAvailable, getFireHydrantServiceName } from './hooks';
describe('firehydrant-hooks-isFireHydrantAvailable', () => {
it('should find an annotation', () => {
const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
annotations: {
'firehydrant.com/service-name': 'test-fh-name',
},
@@ -30,7 +34,12 @@ describe('firehydrant-hooks-isFireHydrantAvailable', () => {
it('should not find an annotation', () => {
const e: Entity = {
- metadata: {},
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ },
};
expect(isFireHydrantAvailable(e)).toEqual(false);
});
@@ -40,6 +49,7 @@ describe('firehydrant-hooks-getFireHydrantServiceName', () => {
it('should return annotation service name', () => {
const expected = 'test-fh-name';
const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
kind: 'Component',
metadata: {
namespace: 'default',
@@ -55,6 +65,7 @@ describe('firehydrant-hooks-getFireHydrantServiceName', () => {
it('should return generated service name', () => {
const expected = 'Component:default/test-fh-name';
const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
kind: 'Component',
metadata: {
namespace: 'default',
From ad4840b0f579fee2c724b0cbebaf94cc426c3f3b Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Fri, 10 Mar 2023 00:08:59 +0000
Subject: [PATCH 023/177] Correcting the api-report
Signed-off-by: Dustin Brewer
---
plugins/firehydrant/api-report.md | 4 ++++
plugins/firehydrant/src/components/hooks.ts | 1 +
2 files changed, 5 insertions(+)
diff --git a/plugins/firehydrant/api-report.md b/plugins/firehydrant/api-report.md
index 2e3bcf6385..0ff5bbc62a 100644
--- a/plugins/firehydrant/api-report.md
+++ b/plugins/firehydrant/api-report.md
@@ -6,6 +6,7 @@
///
import { BackstagePlugin } from '@backstage/core-plugin-api';
+import { Entity } from '@backstage/catalog-model';
import { RouteRef } from '@backstage/core-plugin-api';
// @public (undocumented)
@@ -19,4 +20,7 @@ export const firehydrantPlugin: BackstagePlugin<
{},
{}
>;
+
+// @public (undocumented)
+export const isFireHydrantAvailable: (entity: Entity) => boolean;
```
diff --git a/plugins/firehydrant/src/components/hooks.ts b/plugins/firehydrant/src/components/hooks.ts
index e8129e1b28..d9145f13f0 100644
--- a/plugins/firehydrant/src/components/hooks.ts
+++ b/plugins/firehydrant/src/components/hooks.ts
@@ -17,6 +17,7 @@ import { Entity } from '@backstage/catalog-model';
export const FIREHYDRANT_SERVICE_NAME_ANNOTATION =
'firehydrant.com/service-name';
+/** @public */
export const isFireHydrantAvailable = (entity: Entity) =>
Boolean(entity.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION]);
export const getFireHydrantServiceName = (entity: Entity) =>
From bf1019508b310f60e735bd52ef59e7572d09dad5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 10 Mar 2023 13:48:52 +0000
Subject: [PATCH 024/177] fix(deps): update dependency @swc/core to v1.3.39
Signed-off-by: Renovate Bot
---
microsite/yarn.lock | 86 ++++++++++++++++++++++-----------------------
storybook/yarn.lock | 86 ++++++++++++++++++++++-----------------------
yarn.lock | 86 ++++++++++++++++++++++-----------------------
3 files changed, 129 insertions(+), 129 deletions(-)
diff --git a/microsite/yarn.lock b/microsite/yarn.lock
index a9db81ead4..078cdc2546 100644
--- a/microsite/yarn.lock
+++ b/microsite/yarn.lock
@@ -2623,90 +2623,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-arm64@npm:1.3.39"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-x64@npm:1.3.39"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.39"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.39"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.36":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.39
+ resolution: "@swc/core@npm:1.3.39"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.39
+ "@swc/core-darwin-x64": 1.3.39
+ "@swc/core-linux-arm-gnueabihf": 1.3.39
+ "@swc/core-linux-arm64-gnu": 1.3.39
+ "@swc/core-linux-arm64-musl": 1.3.39
+ "@swc/core-linux-x64-gnu": 1.3.39
+ "@swc/core-linux-x64-musl": 1.3.39
+ "@swc/core-win32-arm64-msvc": 1.3.39
+ "@swc/core-win32-ia32-msvc": 1.3.39
+ "@swc/core-win32-x64-msvc": 1.3.39
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -2728,7 +2728,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: 2c5376627587302d9146a13670ab88d49d236361f226058625a287e275952a282e46c6f8620ec756917406c2ab801093c28668d95837646e39742d65e193965d
languageName: node
linkType: hard
diff --git a/storybook/yarn.lock b/storybook/yarn.lock
index 9c05864306..eb70dadd2f 100644
--- a/storybook/yarn.lock
+++ b/storybook/yarn.lock
@@ -2966,90 +2966,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-arm64@npm:1.3.39"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-x64@npm:1.3.39"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.39"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.39"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.9":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.39
+ resolution: "@swc/core@npm:1.3.39"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.39
+ "@swc/core-darwin-x64": 1.3.39
+ "@swc/core-linux-arm-gnueabihf": 1.3.39
+ "@swc/core-linux-arm64-gnu": 1.3.39
+ "@swc/core-linux-arm64-musl": 1.3.39
+ "@swc/core-linux-x64-gnu": 1.3.39
+ "@swc/core-linux-x64-musl": 1.3.39
+ "@swc/core-win32-arm64-msvc": 1.3.39
+ "@swc/core-win32-ia32-msvc": 1.3.39
+ "@swc/core-win32-x64-msvc": 1.3.39
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -3071,7 +3071,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: 2c5376627587302d9146a13670ab88d49d236361f226058625a287e275952a282e46c6f8620ec756917406c2ab801093c28668d95837646e39742d65e193965d
languageName: node
linkType: hard
diff --git a/yarn.lock b/yarn.lock
index 663107e961..2f46341024 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13866,90 +13866,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-arm64@npm:1.3.39"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-darwin-x64@npm:1.3.39"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.39"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.39"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.39"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.39"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.39":
+ version: 1.3.39
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.39"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.9":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.39
+ resolution: "@swc/core@npm:1.3.39"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.39
+ "@swc/core-darwin-x64": 1.3.39
+ "@swc/core-linux-arm-gnueabihf": 1.3.39
+ "@swc/core-linux-arm64-gnu": 1.3.39
+ "@swc/core-linux-arm64-musl": 1.3.39
+ "@swc/core-linux-x64-gnu": 1.3.39
+ "@swc/core-linux-x64-musl": 1.3.39
+ "@swc/core-win32-arm64-msvc": 1.3.39
+ "@swc/core-win32-ia32-msvc": 1.3.39
+ "@swc/core-win32-x64-msvc": 1.3.39
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -13971,7 +13971,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: 2c5376627587302d9146a13670ab88d49d236361f226058625a287e275952a282e46c6f8620ec756917406c2ab801093c28668d95837646e39742d65e193965d
languageName: node
linkType: hard
From 3ef5fb09ca5017d61a47edd33d7c44d189987204 Mon Sep 17 00:00:00 2001
From: Emma Indal
Date: Fri, 10 Mar 2023 15:41:08 +0100
Subject: [PATCH 025/177] fix broken stack overflow stories - mock stack
overflow api
Signed-off-by: Emma Indal
---
.changeset/silver-donkeys-eat.md | 5 +++
.../templates/DefaultTemplate.stories.tsx | 32 +++++++++++++++----
plugins/stack-overflow/api-report.md | 11 +++++++
.../src/api/StackOverflowApi.ts | 6 ++++
.../StackOverflowQuestions.stories.tsx | 21 ++++++++++++
plugins/stack-overflow/src/index.ts | 2 ++
6 files changed, 71 insertions(+), 6 deletions(-)
create mode 100644 .changeset/silver-donkeys-eat.md
diff --git a/.changeset/silver-donkeys-eat.md b/.changeset/silver-donkeys-eat.md
new file mode 100644
index 0000000000..0995a2025c
--- /dev/null
+++ b/.changeset/silver-donkeys-eat.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-stack-overflow': patch
+---
+
+Export api ref and StackOverflowApi type
diff --git a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
index 638fe8bc29..9cf2e8ab35 100644
--- a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
+++ b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
@@ -19,7 +19,7 @@ import {
HomePageCompanyLogo,
HomePageStarredEntities,
TemplateBackstageLogo,
- TemplateBackstageLogoIcon
+ TemplateBackstageLogoIcon,
} from '@backstage/plugin-home';
import { wrapInTestApp, TestApiProvider } from '@backstage/test-utils';
import { Content, Page, InfoCard } from '@backstage/core-components';
@@ -31,12 +31,12 @@ import {
} from '@backstage/plugin-catalog-react';
import { configApiRef } from '@backstage/core-plugin-api';
import { ConfigReader } from '@backstage/config';
+import { HomePageSearchBar, searchPlugin } from '@backstage/plugin-search';
import {
- HomePageSearchBar,
- searchPlugin,
-} from '@backstage/plugin-search';
-import { searchApiRef, SearchContextProvider } from '@backstage/plugin-search-react';
-import { HomePageStackOverflowQuestions } from '@backstage/plugin-stack-overflow';
+ searchApiRef,
+ SearchContextProvider,
+} from '@backstage/plugin-search-react';
+import { stackOverflowApiRef, HomePageStackOverflowQuestions } from '@backstage/plugin-stack-overflow';
import { Grid, makeStyles } from '@material-ui/core';
import React, { ComponentType } from 'react';
@@ -79,6 +79,25 @@ const mockCatalogApi = {
getEntities: async () => ({ items: entities }),
};
+const mockStackOverflowApi = {
+ listQuestions: async () => [
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ ],
+};
+
const starredEntitiesApi = new MockStarredEntitiesApi();
starredEntitiesApi.toggleStarred('component:default/example-starred-entity');
starredEntitiesApi.toggleStarred('component:default/example-starred-entity-2');
@@ -93,6 +112,7 @@ export default {
<>
Promise.resolve({ results: [] }) }],
diff --git a/plugins/stack-overflow/api-report.md b/plugins/stack-overflow/api-report.md
index fe2a970c13..598bd06a04 100644
--- a/plugins/stack-overflow/api-report.md
+++ b/plugins/stack-overflow/api-report.md
@@ -5,6 +5,7 @@
```ts
///
+import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { CardExtensionProps } from '@backstage/plugin-home';
import { ReactNode } from 'react';
@@ -15,6 +16,16 @@ export const HomePageStackOverflowQuestions: (
props: CardExtensionProps,
) => JSX.Element;
+// @public (undocumented)
+export type StackOverflowApi = {
+ listQuestions(options?: {
+ requestParams: StackOverflowQuestionsRequestParams;
+ }): Promise;
+};
+
+// @public (undocumented)
+export const stackOverflowApiRef: ApiRef;
+
// @public
export const StackOverflowIcon: () => JSX.Element;
diff --git a/plugins/stack-overflow/src/api/StackOverflowApi.ts b/plugins/stack-overflow/src/api/StackOverflowApi.ts
index 6e76f51409..d470e879e7 100644
--- a/plugins/stack-overflow/src/api/StackOverflowApi.ts
+++ b/plugins/stack-overflow/src/api/StackOverflowApi.ts
@@ -20,10 +20,16 @@ import {
StackOverflowQuestionsRequestParams,
} from '../types';
+/**
+ * @public
+ */
export const stackOverflowApiRef = createApiRef({
id: 'plugin.stackoverflow.service',
});
+/**
+ * @public
+ */
export type StackOverflowApi = {
listQuestions(options?: {
requestParams: StackOverflowQuestionsRequestParams;
diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
index 35ace44c14..aed1ed25aa 100644
--- a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
+++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
@@ -21,6 +21,26 @@ import { ConfigReader } from '@backstage/config';
import { Grid } from '@material-ui/core';
import React, { ComponentType } from 'react';
import { StackOverflowIcon } from '../../icons';
+import { stackOverflowApiRef } from '../../api';
+
+const mockStackOverflowApi = {
+ listQuestions: async () => [
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ ],
+};
export default {
title: 'Plugins/Home/Components/StackOverflow',
@@ -39,6 +59,7 @@ export default {
},
}),
],
+ [stackOverflowApiRef, mockStackOverflowApi],
]}
>
diff --git a/plugins/stack-overflow/src/index.ts b/plugins/stack-overflow/src/index.ts
index 5965d66983..a796f563eb 100644
--- a/plugins/stack-overflow/src/index.ts
+++ b/plugins/stack-overflow/src/index.ts
@@ -30,3 +30,5 @@ export type {
StackOverflowQuestionsContentProps,
StackOverflowQuestionsRequestParams,
} from './types';
+export { stackOverflowApiRef } from './api';
+export type { StackOverflowApi } from './api';
From 92b495328bd3a3627c2b91b107c3175b10d44ab2 Mon Sep 17 00:00:00 2001
From: Oleg S <97077423+RobotSail@users.noreply.github.com>
Date: Mon, 6 Mar 2023 17:00:01 -0500
Subject: [PATCH 026/177] expose the techdocs-backend plugin using the new
system
Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com>
---
.changeset/large-feet-wash.md | 6 ++
packages/backend-next/package.json | 1 +
packages/backend-next/src/index.ts | 2 +
plugins/techdocs-backend/api-report.md | 4 ++
plugins/techdocs-backend/package.json | 1 +
plugins/techdocs-backend/src/index.ts | 1 +
plugins/techdocs-backend/src/plugin.ts | 95 ++++++++++++++++++++++++++
yarn.lock | 2 +
8 files changed, 112 insertions(+)
create mode 100644 .changeset/large-feet-wash.md
create mode 100644 plugins/techdocs-backend/src/plugin.ts
diff --git a/.changeset/large-feet-wash.md b/.changeset/large-feet-wash.md
new file mode 100644
index 0000000000..15e3c54b42
--- /dev/null
+++ b/.changeset/large-feet-wash.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-techdocs-backend': minor
+'example-backend-next': minor
+---
+
+Expose the techdocs-backend plugin using the new plugin system
diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json
index 9f7ec8306a..5d8a8cb1ec 100644
--- a/packages/backend-next/package.json
+++ b/packages/backend-next/package.json
@@ -29,6 +29,7 @@
"@backstage/plugin-app-backend": "workspace:^",
"@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-scaffolder-backend": "workspace:^",
+ "@backstage/plugin-techdocs-backend": "workspace:^",
"@backstage/plugin-todo-backend": "workspace:^"
},
"devDependencies": {
diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts
index 8e29244ebf..0f7af110e9 100644
--- a/packages/backend-next/src/index.ts
+++ b/packages/backend-next/src/index.ts
@@ -19,6 +19,7 @@ import { catalogModuleTemplateKind } from '@backstage/plugin-scaffolder-backend/
import { createBackend } from '@backstage/backend-defaults';
import { appPlugin } from '@backstage/plugin-app-backend/alpha';
import { todoPlugin } from '@backstage/plugin-todo-backend';
+import { techdocsPlugin } from '@backstage/plugin-techdocs-backend';
const backend = createBackend();
@@ -26,4 +27,5 @@ backend.add(catalogPlugin());
backend.add(catalogModuleTemplateKind());
backend.add(appPlugin({ appPackageName: 'example-app' }));
backend.add(todoPlugin());
+backend.add(techdocsPlugin());
backend.start();
diff --git a/plugins/techdocs-backend/api-report.md b/plugins/techdocs-backend/api-report.md
index 1f6aa1d66a..fe8db9a135 100644
--- a/plugins/techdocs-backend/api-report.md
+++ b/plugins/techdocs-backend/api-report.md
@@ -5,6 +5,7 @@
```ts
///
+import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { CatalogClient } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
@@ -129,5 +130,8 @@ export type TechDocsCollatorOptions = {
export { TechDocsDocument };
+// @public
+export const techdocsPlugin: () => BackendFeature;
+
export * from '@backstage/plugin-techdocs-node';
```
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index c9fff25b70..6389487eec 100644
--- a/plugins/techdocs-backend/package.json
+++ b/plugins/techdocs-backend/package.json
@@ -34,6 +34,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/techdocs-backend/src/index.ts b/plugins/techdocs-backend/src/index.ts
index dc5d87d1b3..06259d3d3c 100644
--- a/plugins/techdocs-backend/src/index.ts
+++ b/plugins/techdocs-backend/src/index.ts
@@ -37,6 +37,7 @@ export type {
TechDocsCollatorFactoryOptions,
TechDocsCollatorOptions,
} from './search';
+export { techdocsPlugin } from './plugin';
/**
* @deprecated Use directly from @backstage/plugin-techdocs-node
diff --git a/plugins/techdocs-backend/src/plugin.ts b/plugins/techdocs-backend/src/plugin.ts
new file mode 100644
index 0000000000..7cffcc8fbd
--- /dev/null
+++ b/plugins/techdocs-backend/src/plugin.ts
@@ -0,0 +1,95 @@
+/*
+ * 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 {
+ DockerContainerRunner,
+ loggerToWinstonLogger,
+ cacheToPluginCacheManager,
+} from '@backstage/backend-common';
+import {
+ coreServices,
+ createBackendPlugin,
+} from '@backstage/backend-plugin-api';
+
+import {
+ Preparers,
+ Generators,
+ Publisher,
+} from '@backstage/plugin-techdocs-node';
+import Docker from 'dockerode';
+import { createRouter } from './service';
+
+/**
+ * The TechDocs plugin is responsible for serving and building documentation for any entity.
+ * @public
+ */
+export const techdocsPlugin = createBackendPlugin({
+ pluginId: 'techdocs-backend',
+ register(env) {
+ env.registerInit({
+ deps: {
+ config: coreServices.config,
+ logger: coreServices.logger,
+ urlReader: coreServices.urlReader,
+ http: coreServices.httpRouter,
+ discovery: coreServices.discovery,
+ cache: coreServices.cache,
+ },
+ async init({ config, logger, urlReader, http, discovery, cache }) {
+ const winstonLogger = loggerToWinstonLogger(logger);
+ // Preparers are responsible for fetching source files for documentation.
+ const preparers = await Preparers.fromConfig(config, {
+ reader: urlReader,
+ logger: winstonLogger,
+ });
+
+ // Docker client (conditionally) used by the generators, based on techdocs.generators config.
+ const dockerClient = new Docker();
+ const containerRunner = new DockerContainerRunner({ dockerClient });
+
+ // Generators are used for generating documentation sites.
+ const generators = await Generators.fromConfig(config, {
+ logger: winstonLogger,
+ containerRunner,
+ });
+
+ // Publisher is used for
+ // 1. Publishing generated files to storage
+ // 2. Fetching files from storage and passing them to TechDocs frontend.
+ const publisher = await Publisher.fromConfig(config, {
+ logger: winstonLogger,
+ discovery: discovery,
+ });
+
+ // checks if the publisher is working and logs the result
+ await publisher.getReadiness();
+
+ const cacheManager = cacheToPluginCacheManager(cache);
+ http.use(
+ await createRouter({
+ logger: winstonLogger,
+ cache: cacheManager,
+ preparers,
+ generators,
+ publisher,
+ config,
+ discovery,
+ }),
+ );
+ },
+ });
+ },
+});
diff --git a/yarn.lock b/yarn.lock
index 663107e961..6a8317bfce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8538,6 +8538,7 @@ __metadata:
resolution: "@backstage/plugin-techdocs-backend@workspace:plugins/techdocs-backend"
dependencies:
"@backstage/backend-common": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/catalog-client": "workspace:^"
"@backstage/catalog-model": "workspace:^"
@@ -22870,6 +22871,7 @@ __metadata:
"@backstage/plugin-app-backend": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-techdocs-backend": "workspace:^"
"@backstage/plugin-todo-backend": "workspace:^"
languageName: unknown
linkType: soft
From c041efd53d64b72db7e217acb70f9d367b54bd35 Mon Sep 17 00:00:00 2001
From: Oleg S <97077423+RobotSail@users.noreply.github.com>
Date: Wed, 8 Mar 2023 15:30:37 -0500
Subject: [PATCH 027/177] exposes the techdocs plugin as an alpha plugin
Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com>
---
.changeset/large-feet-wash.md | 3 +--
packages/backend-next/src/index.ts | 2 +-
plugins/techdocs-backend/alpha-api-report.md | 12 ++++++++++++
plugins/techdocs-backend/api-report.md | 4 ----
plugins/techdocs-backend/package.json | 15 +++++++++++++++
plugins/techdocs-backend/src/alpha.ts | 16 ++++++++++++++++
plugins/techdocs-backend/src/index.ts | 1 -
plugins/techdocs-backend/src/plugin.ts | 4 ++--
8 files changed, 47 insertions(+), 10 deletions(-)
create mode 100644 plugins/techdocs-backend/alpha-api-report.md
create mode 100644 plugins/techdocs-backend/src/alpha.ts
diff --git a/.changeset/large-feet-wash.md b/.changeset/large-feet-wash.md
index 15e3c54b42..d663661725 100644
--- a/.changeset/large-feet-wash.md
+++ b/.changeset/large-feet-wash.md
@@ -1,6 +1,5 @@
---
'@backstage/plugin-techdocs-backend': minor
-'example-backend-next': minor
---
-Expose the techdocs-backend plugin using the new plugin system
+Added alpha export of the `techdocsPlugin` using the new backend system
diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts
index 0f7af110e9..8f8984b192 100644
--- a/packages/backend-next/src/index.ts
+++ b/packages/backend-next/src/index.ts
@@ -19,7 +19,7 @@ import { catalogModuleTemplateKind } from '@backstage/plugin-scaffolder-backend/
import { createBackend } from '@backstage/backend-defaults';
import { appPlugin } from '@backstage/plugin-app-backend/alpha';
import { todoPlugin } from '@backstage/plugin-todo-backend';
-import { techdocsPlugin } from '@backstage/plugin-techdocs-backend';
+import { techdocsPlugin } from '@backstage/plugin-techdocs-backend/alpha';
const backend = createBackend();
diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md
new file mode 100644
index 0000000000..16db84c216
--- /dev/null
+++ b/plugins/techdocs-backend/alpha-api-report.md
@@ -0,0 +1,12 @@
+## API Report File for "@backstage/plugin-techdocs-backend"
+
+> 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';
+
+// @alpha
+export const techdocsPlugin: () => BackendFeature;
+
+// (No @packageDocumentation comment for this package)
+```
diff --git a/plugins/techdocs-backend/api-report.md b/plugins/techdocs-backend/api-report.md
index fe8db9a135..1f6aa1d66a 100644
--- a/plugins/techdocs-backend/api-report.md
+++ b/plugins/techdocs-backend/api-report.md
@@ -5,7 +5,6 @@
```ts
///
-import { BackendFeature } from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { CatalogClient } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
@@ -130,8 +129,5 @@ export type TechDocsCollatorOptions = {
export { TechDocsDocument };
-// @public
-export const techdocsPlugin: () => BackendFeature;
-
export * from '@backstage/plugin-techdocs-node';
```
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index 6389487eec..1d2f4400eb 100644
--- a/plugins/techdocs-backend/package.json
+++ b/plugins/techdocs-backend/package.json
@@ -10,6 +10,21 @@
"main": "dist/index.cjs.js",
"types": "dist/index.d.ts"
},
+ "exports": {
+ ".": "./src/index.ts",
+ "./alpha": "./src/alpha.ts",
+ "./package.json": "./package.json"
+ },
+ "typesVersions": {
+ "*": {
+ "alpha": [
+ "src/alpha.ts"
+ ],
+ "package.json": [
+ "package.json"
+ ]
+ }
+ },
"backstage": {
"role": "backend-plugin"
},
diff --git a/plugins/techdocs-backend/src/alpha.ts b/plugins/techdocs-backend/src/alpha.ts
new file mode 100644
index 0000000000..1a36c5a1f5
--- /dev/null
+++ b/plugins/techdocs-backend/src/alpha.ts
@@ -0,0 +1,16 @@
+/*
+ * 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 { techdocsPlugin } from './plugin';
diff --git a/plugins/techdocs-backend/src/index.ts b/plugins/techdocs-backend/src/index.ts
index 06259d3d3c..dc5d87d1b3 100644
--- a/plugins/techdocs-backend/src/index.ts
+++ b/plugins/techdocs-backend/src/index.ts
@@ -37,7 +37,6 @@ export type {
TechDocsCollatorFactoryOptions,
TechDocsCollatorOptions,
} from './search';
-export { techdocsPlugin } from './plugin';
/**
* @deprecated Use directly from @backstage/plugin-techdocs-node
diff --git a/plugins/techdocs-backend/src/plugin.ts b/plugins/techdocs-backend/src/plugin.ts
index 7cffcc8fbd..4b0ebbe366 100644
--- a/plugins/techdocs-backend/src/plugin.ts
+++ b/plugins/techdocs-backend/src/plugin.ts
@@ -30,11 +30,11 @@ import {
Publisher,
} from '@backstage/plugin-techdocs-node';
import Docker from 'dockerode';
-import { createRouter } from './service';
+import { createRouter } from '@backstage/plugin-techdocs-backend';
/**
* The TechDocs plugin is responsible for serving and building documentation for any entity.
- * @public
+ * @alpha
*/
export const techdocsPlugin = createBackendPlugin({
pluginId: 'techdocs-backend',
From a09223a505fd36574d0b57beb340896eddb12702 Mon Sep 17 00:00:00 2001
From: Oleg S <97077423+RobotSail@users.noreply.github.com>
Date: Thu, 9 Mar 2023 09:52:33 -0500
Subject: [PATCH 028/177] rename pluginId for todo-backend & techdocs-backend
to 'todo' and 'techdocs'
Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com>
---
.changeset/large-feet-wash.md | 3 ++-
plugins/techdocs-backend/src/plugin.ts | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/.changeset/large-feet-wash.md b/.changeset/large-feet-wash.md
index d663661725..2a55aab2c9 100644
--- a/.changeset/large-feet-wash.md
+++ b/.changeset/large-feet-wash.md
@@ -1,5 +1,6 @@
---
'@backstage/plugin-techdocs-backend': minor
+'@backstage/plugin-todo-backend': patch
---
-Added alpha export of the `techdocsPlugin` using the new backend system
+Added alpha export of the `techdocsPlugin` using the new backend system. Renamed the `todoPlugin` pluginId from `todo-backend` to `todo`.
diff --git a/plugins/techdocs-backend/src/plugin.ts b/plugins/techdocs-backend/src/plugin.ts
index 4b0ebbe366..134de2bba6 100644
--- a/plugins/techdocs-backend/src/plugin.ts
+++ b/plugins/techdocs-backend/src/plugin.ts
@@ -37,7 +37,7 @@ import { createRouter } from '@backstage/plugin-techdocs-backend';
* @alpha
*/
export const techdocsPlugin = createBackendPlugin({
- pluginId: 'techdocs-backend',
+ pluginId: 'techdocs',
register(env) {
env.registerInit({
deps: {
From 2f2f5112adad5bd11d923d3aabf850afd00a5e3b Mon Sep 17 00:00:00 2001
From: Oleg S <97077423+RobotSail@users.noreply.github.com>
Date: Thu, 9 Mar 2023 11:23:18 -0500
Subject: [PATCH 029/177] spelling
Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com>
---
.changeset/large-feet-wash.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.changeset/large-feet-wash.md b/.changeset/large-feet-wash.md
index 2a55aab2c9..88a28f9d60 100644
--- a/.changeset/large-feet-wash.md
+++ b/.changeset/large-feet-wash.md
@@ -1,6 +1,5 @@
---
'@backstage/plugin-techdocs-backend': minor
-'@backstage/plugin-todo-backend': patch
---
-Added alpha export of the `techdocsPlugin` using the new backend system. Renamed the `todoPlugin` pluginId from `todo-backend` to `todo`.
+Introduced alpha export of the `techdocsPlugin` using the new backend system.
From 8b925744164998e0d3bea832dce1f4f7bf7569fa Mon Sep 17 00:00:00 2001
From: afalco
Date: Fri, 10 Mar 2023 09:37:51 -0600
Subject: [PATCH 030/177] Add tests for step timers
Signed-off-by: afalco
---
.../components/TaskSteps/TaskSteps.test.tsx | 51 +++++++++++++++++++
.../next/components/TaskSteps/TaskSteps.tsx | 1 +
2 files changed, 52 insertions(+)
diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
index 0945843961..cbc87c2d53 100644
--- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
+++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
@@ -61,4 +61,55 @@ describe('TaskSteps', () => {
expect(getByText(step.name)).toBeInTheDocument();
}
});
+ it('should only show timer for in progress, failed, and completed steps', async () => {
+ const steps = [
+ {
+ id: '1',
+ name: 'Fail',
+ status: 'failed' as ScaffolderTaskStatus,
+
+ startedAt: Date.now().toLocaleString(),
+ endedAt: Date.now().toLocaleString(),
+ action: 'action1',
+ },
+ {
+ id: '2',
+ name: 'Process',
+ status: 'processing' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ action: 'action2',
+ },
+ {
+ id: '3',
+ name: 'Complete',
+ status: 'completed' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ endedAt: Date.now().toLocaleString(),
+ action: 'action3',
+ },
+ {
+ id: '4',
+ name: 'Skip',
+ status: 'skipped' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ action: 'action4',
+ },
+ {
+ id: '5',
+ name: 'Not Started',
+ status: 'open' as ScaffolderTaskStatus,
+ action: 'action5',
+ },
+ ];
+
+ const screen = await renderInTestApp();
+ const stepLabels = await screen.findAllByTestId('step-label');
+ expect(stepLabels.length).toBe(steps.length);
+ for (let i = 0; i < steps.length; i++) {
+ expect(stepLabels[i].textContent?.startsWith(steps[i].name)).toBe(true);
+ expect(stepLabels[i].textContent?.endsWith('seconds')).toBe(
+ steps[i].status !== 'skipped' && !!steps[i].startedAt,
+ );
+ }
+ });
});
diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
index 668306fa9e..d783351eca 100644
--- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
+++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
@@ -78,6 +78,7 @@ export const TaskSteps = (props: TaskStepsProps) => {
{step.name}
{!isSkipped && }
From 078f46ea3269a61faaaab1d21290741c511d199e Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Fri, 10 Mar 2023 15:45:48 +0000
Subject: [PATCH 031/177] Cleanup building FireHydrant service name
Remove the reduntant check for the annotation, and utilize stringifyEntityRef as recommended
Signed-off-by: Dustin Brewer
---
.../ServiceDetailsCard/ServiceDetailsCard.test.tsx | 4 +++-
plugins/firehydrant/src/components/hooks.test.ts | 2 +-
plugins/firehydrant/src/components/hooks.ts | 9 +++------
3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
index 20dbb77e86..ce2b1f5391 100644
--- a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
+++ b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
@@ -30,7 +30,9 @@ const apis = TestApiRegistry.from([fireHydrantApiRef, mockFireHydrantApi]);
jest.mock('@backstage/plugin-catalog-react', () => ({
useEntity: () => {
- return { entity: { metadata: { name: 'service-example' } } };
+ return {
+ entity: { kind: 'Component', metadata: { name: 'service-example' } },
+ };
},
}));
diff --git a/plugins/firehydrant/src/components/hooks.test.ts b/plugins/firehydrant/src/components/hooks.test.ts
index 2fbf1e2d57..f35d6774ce 100644
--- a/plugins/firehydrant/src/components/hooks.test.ts
+++ b/plugins/firehydrant/src/components/hooks.test.ts
@@ -63,7 +63,7 @@ describe('firehydrant-hooks-getFireHydrantServiceName', () => {
});
it('should return generated service name', () => {
- const expected = 'Component:default/test-fh-name';
+ const expected = 'component:default/test-fh-name';
const e: Entity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'Component',
diff --git a/plugins/firehydrant/src/components/hooks.ts b/plugins/firehydrant/src/components/hooks.ts
index d9145f13f0..c4055b1724 100644
--- a/plugins/firehydrant/src/components/hooks.ts
+++ b/plugins/firehydrant/src/components/hooks.ts
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { Entity } from '@backstage/catalog-model';
+import { Entity, stringifyEntityRef } from '@backstage/catalog-model';
export const FIREHYDRANT_SERVICE_NAME_ANNOTATION =
'firehydrant.com/service-name';
@@ -21,8 +21,5 @@ export const FIREHYDRANT_SERVICE_NAME_ANNOTATION =
export const isFireHydrantAvailable = (entity: Entity) =>
Boolean(entity.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION]);
export const getFireHydrantServiceName = (entity: Entity) =>
- isFireHydrantAvailable(entity)
- ? entity?.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION] ?? ''
- : `${entity?.kind}:${entity?.metadata?.namespace ?? 'default'}/${
- entity?.metadata?.name
- }`;
+ entity?.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION] ??
+ stringifyEntityRef(entity);
From c5afe933bbbaa6037e42b6516156fc135d11905b Mon Sep 17 00:00:00 2001
From: Dustin Brewer
Date: Fri, 10 Mar 2023 16:00:32 +0000
Subject: [PATCH 032/177] Cleanup query string encoding on services API call
Signed-off-by: Dustin Brewer
---
plugins/firehydrant/src/api/index.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/firehydrant/src/api/index.ts b/plugins/firehydrant/src/api/index.ts
index 45834d90e9..1cbf10ec9b 100644
--- a/plugins/firehydrant/src/api/index.ts
+++ b/plugins/firehydrant/src/api/index.ts
@@ -81,10 +81,10 @@ export class FireHydrantAPIClient implements FireHydrantAPI {
lookupByName: boolean;
}): Promise {
const queryOpt = options.lookupByName ? 'name' : 'query';
+ const query = new URLSearchParams();
+ query.set(queryOpt, options.serviceName);
const proxyUrl = await this.getApiUrl();
- const response = await fetch(
- `${proxyUrl}/services?${queryOpt}=${options.serviceName}`,
- );
+ const response = await fetch(`${proxyUrl}/services?${query}`);
if (!response.ok) {
throw new Error(
From cf90b966989babe15a7656195fcb578772db1e1d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 10 Mar 2023 16:48:29 +0000
Subject: [PATCH 033/177] chore(deps): update dependency lint-staged to v13.2.0
Signed-off-by: Renovate Bot
---
yarn.lock | 96 +++++++++++++++++++++++++++++++------------------------
1 file changed, 55 insertions(+), 41 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index b1b60ba15e..cdcd999a2a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -18749,6 +18749,13 @@ __metadata:
languageName: node
linkType: hard
+"chalk@npm:5.2.0":
+ version: 5.2.0
+ resolution: "chalk@npm:5.2.0"
+ checksum: 03d8060277de6cf2fd567dc25fcf770593eb5bb85f460ce443e49255a30ff1242edd0c90a06a03803b0466ff0687a939b41db1757bec987113e83de89a003caa
+ languageName: node
+ linkType: hard
+
"chalk@npm:^3.0.0":
version: 3.0.0
resolution: "chalk@npm:3.0.0"
@@ -19430,10 +19437,10 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:*, commander@npm:^9.1.0, commander@npm:^9.4.1, commander@npm:^9.5.0":
- version: 9.5.0
- resolution: "commander@npm:9.5.0"
- checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
+"commander@npm:*, commander@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "commander@npm:10.0.0"
+ checksum: 9f6495651f878213005ac744dd87a85fa3d9f2b8b90d1c19d0866d666bda7f735adfd7c2f10dfff345782e2f80ea258f98bb4efcef58e4e502f25f883940acfd
languageName: node
linkType: hard
@@ -19486,6 +19493,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^9.1.0, commander@npm:^9.5.0":
+ version: 9.5.0
+ resolution: "commander@npm:9.5.0"
+ checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
+ languageName: node
+ linkType: hard
+
"common-ancestor-path@npm:^1.0.1":
version: 1.0.1
resolution: "common-ancestor-path@npm:1.0.1"
@@ -22978,20 +22992,20 @@ __metadata:
languageName: node
linkType: hard
-"execa@npm:^6.1.0":
- version: 6.1.0
- resolution: "execa@npm:6.1.0"
+"execa@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "execa@npm:7.0.0"
dependencies:
cross-spawn: ^7.0.3
get-stream: ^6.0.1
- human-signals: ^3.0.1
+ human-signals: ^4.3.0
is-stream: ^3.0.0
merge-stream: ^2.0.0
npm-run-path: ^5.1.0
onetime: ^6.0.0
signal-exit: ^3.0.7
strip-final-newline: ^3.0.0
- checksum: 1a4af799839134f5c72eb63d525b87304c1114a63aa71676c91d57ccef2e26f2f53e14c11384ab11c4ec479be1efa83d11c8190e00040355c2c5c3364327fa8e
+ checksum: be7c7b6d1e5473f628e46888b0cf8279da483c1a6000dd494a2059cc26591ded57ba46be1c9bdde1ec895e7eb8b18911174aba425cd971d41d140a9405da9a02
languageName: node
linkType: hard
@@ -25287,10 +25301,10 @@ __metadata:
languageName: node
linkType: hard
-"human-signals@npm:^3.0.1":
- version: 3.0.1
- resolution: "human-signals@npm:3.0.1"
- checksum: f252a7769c8094a5c9dc6772816bdb417b188820b04c8b42d0fc468e03a0ba905b1dd07afabe9385cc83504af1ccc2b985cd1e4aeeeb8e0029896c5af2e6f354
+"human-signals@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "human-signals@npm:4.3.0"
+ checksum: 662b976b1063a8afb8fd7fa50bde6975997e17ea6ceba2aad54aacf1dc239a2cd7d14d27b3ceca0c6288627f4b45c56c2c89618455ff52cd9377c02d6328cd7c
languageName: node
linkType: hard
@@ -28301,10 +28315,10 @@ __metadata:
languageName: node
linkType: hard
-"lilconfig@npm:2.0.6, lilconfig@npm:^2.0.3":
- version: 2.0.6
- resolution: "lilconfig@npm:2.0.6"
- checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d
+"lilconfig@npm:2.1.0, lilconfig@npm:^2.0.3":
+ version: 2.1.0
+ resolution: "lilconfig@npm:2.1.0"
+ checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117
languageName: node
linkType: hard
@@ -28344,25 +28358,25 @@ __metadata:
linkType: hard
"lint-staged@npm:^13.0.0":
- version: 13.1.2
- resolution: "lint-staged@npm:13.1.2"
+ version: 13.2.0
+ resolution: "lint-staged@npm:13.2.0"
dependencies:
+ chalk: 5.2.0
cli-truncate: ^3.1.0
- colorette: ^2.0.19
- commander: ^9.4.1
+ commander: ^10.0.0
debug: ^4.3.4
- execa: ^6.1.0
- lilconfig: 2.0.6
- listr2: ^5.0.5
+ execa: ^7.0.0
+ lilconfig: 2.1.0
+ listr2: ^5.0.7
micromatch: ^4.0.5
normalize-path: ^3.0.0
- object-inspect: ^1.12.2
+ object-inspect: ^1.12.3
pidtree: ^0.6.0
string-argv: ^0.3.1
- yaml: ^2.1.3
+ yaml: ^2.2.1
bin:
lint-staged: bin/lint-staged.js
- checksum: f854ad5c88542b8f06e27f3b4046927a4f3d4a451a04e079526559d819a325762268f65bd2df7156bcc0cb5f531f621c42cdb824b403f537c78305adc9e56a54
+ checksum: dcaa8fbbde567eb8ac27230a18b3a22f30c278c524c0e27cf7d4110d662d5d33ed68a585a2e1b05075ef1c262e853f557a5ae046188b723603246d63e6b9f07b
languageName: node
linkType: hard
@@ -28408,16 +28422,16 @@ __metadata:
languageName: node
linkType: hard
-"listr2@npm:^5.0.5":
- version: 5.0.5
- resolution: "listr2@npm:5.0.5"
+"listr2@npm:^5.0.7":
+ version: 5.0.7
+ resolution: "listr2@npm:5.0.7"
dependencies:
cli-truncate: ^2.1.0
colorette: ^2.0.19
log-update: ^4.0.0
p-map: ^4.0.0
rfdc: ^1.3.0
- rxjs: ^7.5.6
+ rxjs: ^7.8.0
through: ^2.3.8
wrap-ansi: ^7.0.0
peerDependencies:
@@ -28425,7 +28439,7 @@ __metadata:
peerDependenciesMeta:
enquirer:
optional: true
- checksum: 71c44eb648405d2725f248747ef8d5e192dd16938ec81df854c4a7e74ff1b3f4c3149461b1cff31c761bfbdf110f7f2603c9957c908294a1c6db299c9168608c
+ checksum: 5c2cb6ba3f7a5cfd548f89405febe73dc937acb6060227198c05da0ed5d5285a8107c61fcc4e33884e3bbdd447411aff7580af396bd22b6a11047ceab4950fab
languageName: node
linkType: hard
@@ -30981,10 +30995,10 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0":
- version: 1.12.2
- resolution: "object-inspect@npm:1.12.2"
- checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2
+"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0":
+ version: 1.12.3
+ resolution: "object-inspect@npm:1.12.3"
+ checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db
languageName: node
linkType: hard
@@ -35093,7 +35107,7 @@ __metadata:
languageName: node
linkType: hard
-"rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.5.6, 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":
version: 7.8.0
resolution: "rxjs@npm:7.8.0"
dependencies:
@@ -39460,10 +39474,10 @@ __metadata:
languageName: node
linkType: hard
-"yaml@npm:^2.0.0, yaml@npm:^2.1.1, yaml@npm:^2.1.3":
- version: 2.1.3
- resolution: "yaml@npm:2.1.3"
- checksum: 91316062324a93f9cb547469092392e7d004ff8f70c40fecb420f042a4870b2181557350da56c92f07bd44b8f7a252b0be26e6ade1f548e1f4351bdd01c9d3c7
+"yaml@npm:^2.0.0, yaml@npm:^2.1.1, yaml@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "yaml@npm:2.2.1"
+ checksum: 84f68cbe462d5da4e7ded4a8bded949ffa912bc264472e5a684c3d45b22d8f73a3019963a32164023bdf3d83cfb6f5b58ff7b2b10ef5b717c630f40bd6369a23
languageName: node
linkType: hard
From edecccabe47b23c5c78118ee46def576afbb8e6d Mon Sep 17 00:00:00 2001
From: zjpersc
Date: Fri, 10 Mar 2023 14:01:24 -0600
Subject: [PATCH 034/177] Updating the feature doc for techdocs-cli
Signed-off-by: zjpersc
---
docs/features/techdocs/cli.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/features/techdocs/cli.md b/docs/features/techdocs/cli.md
index b174896d6a..76589de5a8 100644
--- a/docs/features/techdocs/cli.md
+++ b/docs/features/techdocs/cli.md
@@ -200,6 +200,15 @@ Options:
-h, --help display help for command
```
+#### Publishing from behind a proxy
+
+For users attempting to publish TechDocs content behind a proxy, the TechDocs CLI leverages `global-agent` to navigate the proxy to successfully connect to that location. To enable `global-agent`, the following variables need to be set prior to running the techdocs-cli command:
+
+```bash
+export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
+export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
+```
+
### Migrate content for case-insensitive access
Prior to the beta version of TechDocs (`v[0.11.0]`), TechDocs were stored in
From 1b3ab31a2be25f7deda63a2f3449540da550fbd1 Mon Sep 17 00:00:00 2001
From: Bogdan Nechyporenko
Date: Fri, 10 Mar 2023 23:49:46 +0100
Subject: [PATCH 035/177] removed microservice-next leftovers
Signed-off-by: Bogdan Nechyporenko
---
.../src/components/simpleCard/simpleCard.tsx | 17 ----
.../src/pages/on-demand/_onDemandCard.tsx | 66 ----------------
microsite-next/src/pages/on-demand/index.tsx | 78 -------------------
.../src/pages/on-demand/onDemand.module.scss | 44 -----------
.../src/util/truncateDescription.tsx | 11 ---
5 files changed, 216 deletions(-)
delete mode 100644 microsite-next/src/components/simpleCard/simpleCard.tsx
delete mode 100644 microsite-next/src/pages/on-demand/_onDemandCard.tsx
delete mode 100644 microsite-next/src/pages/on-demand/index.tsx
delete mode 100644 microsite-next/src/pages/on-demand/onDemand.module.scss
delete mode 100644 microsite-next/src/util/truncateDescription.tsx
diff --git a/microsite-next/src/components/simpleCard/simpleCard.tsx b/microsite-next/src/components/simpleCard/simpleCard.tsx
deleted file mode 100644
index 77be566f18..0000000000
--- a/microsite-next/src/components/simpleCard/simpleCard.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react';
-
-export interface ICardData {
- header: React.ReactNode;
- body: React.ReactNode;
- footer: React.ReactNode;
-}
-
-export const SimpleCard = ({ header, body, footer }: ICardData) => (
-
-
{header}
-
-
{body}
-
-
{footer}
-
-);
diff --git a/microsite-next/src/pages/on-demand/_onDemandCard.tsx b/microsite-next/src/pages/on-demand/_onDemandCard.tsx
deleted file mode 100644
index e203c80f9a..0000000000
--- a/microsite-next/src/pages/on-demand/_onDemandCard.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import Link from '@docusaurus/Link';
-import { SimpleCard } from '@site/src/components/simpleCard/simpleCard';
-import React from 'react';
-
-export interface IOnDemandData {
- title: string;
- category: string;
- description: string;
- date: string;
- youtubeUrl: string;
- youtubeImgUrl: string;
- rsvpUrl: string;
- eventUrl: string;
-}
-
-export const OnDemandCard = ({
- title,
- category,
- description,
- date,
- youtubeUrl,
- youtubeImgUrl,
- rsvpUrl,
- eventUrl,
-}: IOnDemandData) => (
-
- {title}
-
- on {date}
-
- {category}
-
-
- >
- }
- body={{description}
}
- footer={
- category.toLowerCase() === 'upcoming' ? (
- <>
-
- Event page
-
-
-
- Remind me
-
- >
- ) : (
-
- Watch on YouTube
-
- )
- }
- />
-);
diff --git a/microsite-next/src/pages/on-demand/index.tsx b/microsite-next/src/pages/on-demand/index.tsx
deleted file mode 100644
index 7262005f70..0000000000
--- a/microsite-next/src/pages/on-demand/index.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import Layout from '@theme/Layout';
-import clsx from 'clsx';
-import React from 'react';
-
-import { IOnDemandData, OnDemandCard } from './_onDemandCard';
-import pluginsStyles from './onDemand.module.scss';
-import { truncateDescription } from '@site/src/util/truncateDescription';
-import Link from '@docusaurus/Link';
-
-//#region Plugin data import
-const onDemandContext = require.context(
- '../../../../microsite/data/on-demand',
- false,
- /\.ya?ml/,
-);
-
-const onDemandData = onDemandContext.keys().reduce(
- (acum, id) => {
- const pluginData: IOnDemandData = onDemandContext(id).default;
-
- acum[
- pluginData.category === 'Upcoming' ? 'upcomingEvents' : 'onDemandEvents'
- ].push(truncateDescription(pluginData));
-
- return acum;
- },
- {
- upcomingEvents: [] as IOnDemandData[],
- onDemandEvents: [] as IOnDemandData[],
- },
-);
-//#endregion
-
-const Plugins = () => (
-
-
-
-
-
Community sessions
-
-
- Upcoming events and recorded sessions about updates, demos and
- discussions.
-
-
-
-
- Add an event or recording
-
-
-
-
-
-
Upcoming live events
-
-
- {onDemandData.upcomingEvents.map(eventData => (
-
- ))}
-
-
-
Community on demand
-
-
- {onDemandData.onDemandEvents.map(eventData => (
-
- ))}
-
-
-
-);
-
-export default Plugins;
diff --git a/microsite-next/src/pages/on-demand/onDemand.module.scss b/microsite-next/src/pages/on-demand/onDemand.module.scss
deleted file mode 100644
index fba051ec97..0000000000
--- a/microsite-next/src/pages/on-demand/onDemand.module.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-.onDemandPage {
- :global(.marketplaceBanner) {
- display: flex;
- align-items: center;
- }
-
- :global(.marketplaceContent) {
- flex: 1;
- }
-
- :global(.card) {
- max-width: 100%;
- }
-
- :global(.card .card__header) {
- display: grid;
- row-gap: 0.25rem;
- column-gap: 1rem;
- justify-items: start;
-
- > * {
- margin: 0;
- }
-
- :global(img) {
- width: 250px;
- max-width: 100%;
- justify-self: center;
- }
- }
-
- :global(.card .card__footer) {
- gap: 1rem;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
- }
-
- :global(.cardsContainer) {
- gap: 1rem;
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
- justify-items: start;
- }
-}
diff --git a/microsite-next/src/util/truncateDescription.tsx b/microsite-next/src/util/truncateDescription.tsx
deleted file mode 100644
index dc661cbd49..0000000000
--- a/microsite-next/src/util/truncateDescription.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-export const maxDescLength = 160;
-
-export const truncateDescription = (
- itemData: T,
-) =>
- itemData.description.length > maxDescLength
- ? {
- ...itemData,
- description: itemData.description.slice(0, maxDescLength) + '...',
- }
- : itemData;
From 09d9c07199e74a9ff5561d8b03a4f2c2e2badea3 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 11 Mar 2023 16:49:49 +0000
Subject: [PATCH 036/177] chore(deps): update dependency @tsconfig/docusaurus
to v1.0.7
Signed-off-by: Renovate Bot
---
microsite/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/microsite/yarn.lock b/microsite/yarn.lock
index a9db81ead4..81b78f043b 100644
--- a/microsite/yarn.lock
+++ b/microsite/yarn.lock
@@ -2756,9 +2756,9 @@ __metadata:
linkType: hard
"@tsconfig/docusaurus@npm:^1.0.6":
- version: 1.0.6
- resolution: "@tsconfig/docusaurus@npm:1.0.6"
- checksum: fb0d7965c01fe64fc6369a72695b903d654bd5fb145f373d707c2bae3c2d828703517d812cef1c041ae44b108f44e52778b9d9837a54fdf782e68e6619a90a4d
+ version: 1.0.7
+ resolution: "@tsconfig/docusaurus@npm:1.0.7"
+ checksum: 8f5b14005d90b2008f10daf03a5edec86d2a7603e5641c579ea936a5c2d165a8c3007a72254fc4c2adb0554d73062f52bb97b30ff818f01c9215957822f3c4db
languageName: node
linkType: hard
From 80a75f03fc950a32ac90f966604293f3ba2234a3 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 12 Mar 2023 03:42:21 +0000
Subject: [PATCH 037/177] chore(deps): update react-router monorepo to v6.9.0
Signed-off-by: Renovate Bot
---
yarn.lock | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/yarn.lock b/yarn.lock
index b1b60ba15e..41da512bc6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13152,6 +13152,13 @@ __metadata:
languageName: node
linkType: hard
+"@remix-run/router@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@remix-run/router@npm:1.4.0"
+ checksum: 707dce35a2b8138005cf19e63f6fd3c4da05b4b892e9e9118e8b727c3b95953efe27307ca2df35084044df30fa1fc367cf0bbc98d1ded9020c82e61e6242caaf
+ languageName: node
+ linkType: hard
+
"@repeaterjs/repeater@npm:3.0.4":
version: 3.0.4
resolution: "@repeaterjs/repeater@npm:3.0.4"
@@ -33789,7 +33796,7 @@ __metadata:
languageName: node
linkType: hard
-"react-router-dom-stable@npm:react-router-dom@^6.3.0, react-router-dom@npm:^6.3.0":
+"react-router-dom-stable@npm:react-router-dom@^6.3.0":
version: 6.8.1
resolution: "react-router-dom@npm:6.8.1"
dependencies:
@@ -33802,6 +33809,19 @@ __metadata:
languageName: node
linkType: hard
+"react-router-dom@npm:^6.3.0":
+ version: 6.9.0
+ resolution: "react-router-dom@npm:6.9.0"
+ dependencies:
+ "@remix-run/router": 1.4.0
+ react-router: 6.9.0
+ peerDependencies:
+ react: ">=16.8"
+ react-dom: ">=16.8"
+ checksum: 4d593491ab8db5611feda70002c62902baebb84d5c1c5e5b6172496f31f91130deee132bf4240dea634a88cb86c76d6da348f15b9cd5e5197be455efd88edf72
+ languageName: node
+ linkType: hard
+
"react-router-stable@npm:react-router@^6.3.0, react-router@npm:6.8.1":
version: 6.8.1
resolution: "react-router@npm:6.8.1"
@@ -33813,6 +33833,17 @@ __metadata:
languageName: node
linkType: hard
+"react-router@npm:6.9.0":
+ version: 6.9.0
+ resolution: "react-router@npm:6.9.0"
+ dependencies:
+ "@remix-run/router": 1.4.0
+ peerDependencies:
+ react: ">=16.8"
+ checksum: b2a5f42e042bee7a7f116ca7817b0e58359e5353d84887c9fe7a633d7490c03b1e0ae37cd01830c2a381e3d1e7d501bb4751e53cc3d491e25f36582d3f6e0546
+ languageName: node
+ linkType: hard
+
"react-side-effect@npm:^2.1.0":
version: 2.1.0
resolution: "react-side-effect@npm:2.1.0"
From 86d9e2a7389590b8d56179562ea7f12ef9566917 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 12 Mar 2023 04:27:53 +0000
Subject: [PATCH 038/177] chore(deps): update dependency @types/archiver to
v5.3.2
Signed-off-by: Renovate Bot
---
yarn.lock | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 41da512bc6..ee6c14da1c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14262,11 +14262,11 @@ __metadata:
linkType: hard
"@types/archiver@npm:^5.1.0, @types/archiver@npm:^5.3.1":
- version: 5.3.1
- resolution: "@types/archiver@npm:5.3.1"
+ version: 5.3.2
+ resolution: "@types/archiver@npm:5.3.2"
dependencies:
- "@types/glob": "*"
- checksum: 1c6babc7f50acf5bf7fa3d5fa76bb68702e4463e6a412d259cdddff611dbbb9832ea4b2f41d675fd95ac1aa8b087daa882423073e41db9e296f14d41f2ea88e6
+ "@types/readdir-glob": "*"
+ checksum: 9db5b4fdc1740fa07d08340ed827598cc6eda97406ac18a06a158670c7124d4120650a3b9cd660e9e39b42f033cf8f052566da32681e8ad91163473df88a3c4c
languageName: node
linkType: hard
@@ -15688,6 +15688,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/readdir-glob@npm:*":
+ version: 1.1.0
+ resolution: "@types/readdir-glob@npm:1.1.0"
+ dependencies:
+ "@types/node": "*"
+ checksum: 98cabfac6beddd3aeb3624e05d57b8dd1354431e436e9e795aaf74ddf2f1c23342d7b8df7586cc3d1374ceeee0d7975638fae97cb1739572d8a4067ebebb91d9
+ languageName: node
+ linkType: hard
+
"@types/recharts@npm:^1.8.14, @types/recharts@npm:^1.8.15":
version: 1.8.23
resolution: "@types/recharts@npm:1.8.23"
From 4a44c97bfa133c4c8920b805ceb22badbc98e30f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 12 Mar 2023 05:17:32 +0000
Subject: [PATCH 039/177] chore(deps): update dependency aws-sdk-client-mock to
v2.1.1
Signed-off-by: Renovate Bot
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index ee6c14da1c..78ceb0fba1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -17574,13 +17574,13 @@ __metadata:
linkType: hard
"aws-sdk-client-mock@npm:^2.0.0":
- version: 2.1.0
- resolution: "aws-sdk-client-mock@npm:2.1.0"
+ version: 2.1.1
+ resolution: "aws-sdk-client-mock@npm:2.1.1"
dependencies:
"@types/sinon": ^10.0.10
sinon: ^14.0.2
tslib: ^2.1.0
- checksum: c6179c5528709ff1ad7e7308d03c74850fb5b973ca3d63836ca9973ca70de0c3dd7846fcbd3fd02bf4dabe6cae1095683b38c4202878458c8369e7e837962cd2
+ checksum: 8330b88cdaeae401390ece094344ed727db0b007369d862a88afc0a29249828b95cce809faa0c2289c1af99528af0e765b4aba8156b948d01a12299390195cea
languageName: node
linkType: hard
From c8ded0d4192d6d9f60f7ab32b3f4a0b5ebb76b8f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 12 Mar 2023 06:09:17 +0000
Subject: [PATCH 040/177] chore(deps): update dependency
aws-sdk-client-mock-jest to v2.1.1
Signed-off-by: Renovate Bot
---
yarn.lock | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 78ceb0fba1..d7597a4bfc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -17562,14 +17562,14 @@ __metadata:
linkType: hard
"aws-sdk-client-mock-jest@npm:^2.0.0":
- version: 2.1.0
- resolution: "aws-sdk-client-mock-jest@npm:2.1.0"
+ version: 2.1.1
+ resolution: "aws-sdk-client-mock-jest@npm:2.1.1"
dependencies:
"@types/jest": ^28.1.3
tslib: ^2.1.0
peerDependencies:
- aws-sdk-client-mock: 2.1.0
- checksum: 567e2084d71c90f71e5bfa82f2a4b592fec5ea818cb4edf3586f922454cee4fec1403d4161d3d91a3db3ccebe1db5babe069754d76204c7f6986ab71bafb1084
+ aws-sdk-client-mock: 2.1.1
+ checksum: 4b5ca96bbcaa60ea3ea947821c7ff1f073c1342a12ce5c778b70832bdcc6106e10591e98e09b22c5b0d83dfc6fe554e8a08d5df5cf067a7eaadb804087b891ed
languageName: node
linkType: hard
From e262738b8a0cd43ce4cfea116adc05aef8c9061c Mon Sep 17 00:00:00 2001
From: Adi Krhan
Date: Mon, 13 Mar 2023 09:23:59 +0100
Subject: [PATCH 041/177] Handle token difference in Microsoft provider
Signed-off-by: Adi Krhan
---
.changeset/many-carpets-act.md | 5 +++++
plugins/auth-backend/src/providers/microsoft/provider.ts | 9 ++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 .changeset/many-carpets-act.md
diff --git a/.changeset/many-carpets-act.md b/.changeset/many-carpets-act.md
new file mode 100644
index 0000000000..5285eeebbd
--- /dev/null
+++ b/.changeset/many-carpets-act.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend': patch
+---
+
+Handle difference in expiration time between Microsoft session and Backstage session which caused the Backstage token to be invalid during a time frame.
diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts
index fd2a1529a7..9b14a3c91b 100644
--- a/plugins/auth-backend/src/providers/microsoft/provider.ts
+++ b/plugins/auth-backend/src/providers/microsoft/provider.ts
@@ -50,6 +50,8 @@ import {
import { Logger } from 'winston';
import fetch from 'node-fetch';
+const BACKSTAGE_SESSION_EXPIRATION = 3600;
+
type PrivateInfo = {
refreshToken: string;
};
@@ -145,12 +147,17 @@ export class MicrosoftAuthProvider implements OAuthHandlers {
const { profile } = await this.authHandler(result, this.resolverContext);
+ const expiresInSeconds =
+ result.params.expires_in === undefined
+ ? BACKSTAGE_SESSION_EXPIRATION
+ : Math.min(result.params.expires_in, BACKSTAGE_SESSION_EXPIRATION);
+
const response: OAuthResponse = {
providerInfo: {
idToken: result.params.id_token,
accessToken: result.accessToken,
scope: result.params.scope,
- expiresInSeconds: result.params.expires_in,
+ expiresInSeconds,
},
profile,
};
From c630360631f67ac7e05eef99f61391364d6635c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?=
Date: Mon, 13 Mar 2023 13:36:06 +0100
Subject: [PATCH 042/177] catalog-client: getEntitiesByRefs should return
undefined
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fredrik Adelöw
---
.changeset/tidy-ties-guess.md | 5 +++++
packages/catalog-client/src/CatalogClient.test.ts | 2 +-
packages/catalog-client/src/CatalogClient.ts | 6 ++++--
3 files changed, 10 insertions(+), 3 deletions(-)
create mode 100644 .changeset/tidy-ties-guess.md
diff --git a/.changeset/tidy-ties-guess.md b/.changeset/tidy-ties-guess.md
new file mode 100644
index 0000000000..63247c3819
--- /dev/null
+++ b/.changeset/tidy-ties-guess.md
@@ -0,0 +1,5 @@
+---
+'@backstage/catalog-client': patch
+---
+
+Ensure that `getEntitiesByRefs` returns `undefined` instead of `null` for missing items
diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts
index c235ff1592..53bb55b95f 100644
--- a/packages/catalog-client/src/CatalogClient.test.ts
+++ b/packages/catalog-client/src/CatalogClient.test.ts
@@ -249,7 +249,7 @@ describe('CatalogClient', () => {
{ token },
);
- expect(response).toEqual({ items: [entity, null] });
+ expect(response).toEqual({ items: [entity, undefined] });
});
});
diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts
index 4984d394d4..be4ae6289d 100644
--- a/packages/catalog-client/src/CatalogClient.ts
+++ b/packages/catalog-client/src/CatalogClient.ts
@@ -199,9 +199,11 @@ export class CatalogClient implements CatalogApi {
throw await ResponseError.fromResponse(response);
}
- const { items } = await response.json();
+ const { items } = (await response.json()) as {
+ items: Array;
+ };
- return { items };
+ return { items: items.map(i => i ?? undefined) };
}
/**
From 7af12854970a51f6f88fc9788b8557f4def54d39 Mon Sep 17 00:00:00 2001
From: Heikki Hellgren
Date: Thu, 2 Mar 2023 14:22:31 +0200
Subject: [PATCH 043/177] feat: add scaffolder action to get multiple entities
uses the catalog client getEntitiesByRefs to return the entities for the
template
Signed-off-by: Heikki Hellgren
---
.changeset/sharp-hairs-arrive.md | 5 +
plugins/scaffolder-backend/api-report.md | 3 +-
.../actions/builtin/catalog/fetch.test.ts | 132 +++++++++++++++---
.../actions/builtin/catalog/fetch.ts | 85 ++++++++---
4 files changed, 188 insertions(+), 37 deletions(-)
create mode 100644 .changeset/sharp-hairs-arrive.md
diff --git a/.changeset/sharp-hairs-arrive.md b/.changeset/sharp-hairs-arrive.md
new file mode 100644
index 0000000000..a7f922566a
--- /dev/null
+++ b/.changeset/sharp-hairs-arrive.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Extended scaffolder action `catalog:fetch` to fetch multiple catalog entities by entity references.
diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md
index 293ff7ed29..3a409a39e2 100644
--- a/plugins/scaffolder-backend/api-report.md
+++ b/plugins/scaffolder-backend/api-report.md
@@ -85,7 +85,8 @@ export function createDebugLogAction(): TemplateAction_2<{
export function createFetchCatalogEntityAction(options: {
catalogClient: CatalogApi;
}): TemplateAction_2<{
- entityRef: string;
+ entityRef?: string | undefined;
+ entityRefs?: string[] | undefined;
optional?: boolean | undefined;
}>;
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
index 52c76c8769..1cce7d66cb 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
@@ -23,8 +23,11 @@ import { createFetchCatalogEntityAction } from './fetch';
describe('catalog:fetch', () => {
const getEntityByRef = jest.fn();
+ const getEntitiesByRefs = jest.fn();
+
const catalogClient = {
getEntityByRef: getEntityByRef,
+ getEntitiesByRefs: getEntitiesByRefs,
};
const action = createFetchCatalogEntityAction({
@@ -71,25 +74,6 @@ describe('catalog:fetch', () => {
});
});
- it('should return null if entity not in catalog and optional is true', async () => {
- getEntityByRef.mockImplementationOnce(() => {
- throw new Error('Not found');
- });
-
- await action.handler({
- ...mockContext,
- input: {
- entityRef: 'component:default/test',
- optional: true,
- },
- });
-
- expect(getEntityByRef).toHaveBeenCalledWith('component:default/test', {
- token: 'secret',
- });
- expect(mockContext.output).toHaveBeenCalledWith('entity', null);
- });
-
it('should throw error if entity fetch fails from catalog and optional is false', async () => {
getEntityByRef.mockImplementationOnce(() => {
throw new Error('Not found');
@@ -127,4 +111,114 @@ describe('catalog:fetch', () => {
});
expect(mockContext.output).not.toHaveBeenCalled();
});
+
+ it('should return entities from catalog', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ ],
+ });
+
+ await action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test'],
+ },
+ });
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).toHaveBeenCalledWith('entities', [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ },
+ ]);
+ });
+
+ it('should throw error if undefined is returned for some entity', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ undefined,
+ ],
+ });
+
+ await expect(
+ action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test', 'component:default/test2'],
+ optional: false,
+ },
+ }),
+ ).rejects.toThrow('Entity component:default/test2 not found');
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test', 'component:default/test2'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).not.toHaveBeenCalled();
+ });
+
+ it('should return null in case some of the entities not found and optional is true', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ undefined,
+ ],
+ });
+
+ await action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test', 'component:default/test2'],
+ optional: true,
+ },
+ });
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test', 'component:default/test2'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).toHaveBeenCalledWith('entities', [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ },
+ null,
+ ]);
+ });
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
index 17e510ce64..1bcbfa0006 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
@@ -36,10 +36,26 @@ const examples = [
],
}),
},
+ {
+ description: 'Fetch multiple entities by referencse',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'fetchMultiple',
+ name: 'Fetch catalog entities',
+ input: {
+ entityRefs: ['component:default/name'],
+ },
+ },
+ ],
+ }),
+ },
];
/**
- * Returns entity from the catalog by entity reference.
+ * Returns entity or entities from the catalog by entity reference(s).
+ *
* @public
*/
export function createFetchCatalogEntityAction(options: {
@@ -47,13 +63,17 @@ export function createFetchCatalogEntityAction(options: {
}) {
const { catalogClient } = options;
- return createTemplateAction<{ entityRef: string; optional?: boolean }>({
+ return createTemplateAction<{
+ entityRef?: string;
+ entityRefs?: string[];
+ optional?: boolean;
+ }>({
id,
- description: 'Returns entity from the catalog by entity reference',
+ description:
+ 'Returns entity or entities from the catalog by entity reference(s)',
examples,
schema: {
input: {
- required: ['entityRef'],
type: 'object',
properties: {
entityRef: {
@@ -61,10 +81,15 @@ export function createFetchCatalogEntityAction(options: {
title: 'Entity reference',
description: 'Entity reference of the entity to get',
},
+ entityRefs: {
+ type: 'array',
+ title: 'Entity references',
+ description: 'Entity references of the entities to get',
+ },
optional: {
title: 'Optional',
description:
- 'Permit the entity to optionally exist. Default: false',
+ 'Allow the entity or entities to optionally exist. Default: false',
type: 'boolean',
},
},
@@ -76,29 +101,55 @@ export function createFetchCatalogEntityAction(options: {
title: 'Entity found by the entity reference',
type: 'object',
description:
- 'Object containing same values used in the Entity schema.',
+ 'Object containing same values used in the Entity schema. Only when used with `entityRef` parameter.',
+ },
+ entities: {
+ title: 'Entities found by the entity references',
+ type: 'array',
+ items: { type: 'object' },
+ description:
+ 'Array containing objects with same values used in the Entity schema. Only when used with `entityRefs` parameter.',
},
},
},
},
async handler(ctx) {
- const { entityRef, optional } = ctx.input;
- let entity;
- try {
- entity = await catalogClient.getEntityByRef(entityRef, {
+ const { entityRef, entityRefs, optional } = ctx.input;
+ if (!entityRef && !entityRefs) {
+ if (optional) {
+ return;
+ }
+ throw new Error('Missing entity reference or references');
+ }
+
+ if (entityRef) {
+ const entity = await catalogClient.getEntityByRef(entityRef, {
token: ctx.secrets?.backstageToken,
});
- } catch (e) {
- if (!optional) {
- throw e;
+
+ if (!entity && !optional) {
+ throw new Error(`Entity ${entityRef} not found`);
}
+ ctx.output('entity', entity ?? null);
}
- if (!entity && !optional) {
- throw new Error(`Entity ${entityRef} not found`);
- }
+ if (entityRefs) {
+ const entities = await catalogClient.getEntitiesByRefs(
+ { entityRefs },
+ {
+ token: ctx.secrets?.backstageToken,
+ },
+ );
- ctx.output('entity', entity ?? null);
+ const finalEntities = entities.items.map((e, i) => {
+ if (!e && !optional) {
+ throw new Error(`Entity ${entityRefs[i]} not found`);
+ }
+ return e ?? null;
+ });
+
+ ctx.output('entities', finalEntities);
+ }
},
});
}
From e6ac8e69b5b779444817d32f6782aa93740193b1 Mon Sep 17 00:00:00 2001
From: Alec Jacobs
Date: Mon, 13 Mar 2023 09:27:50 -0700
Subject: [PATCH 044/177] fix(shortcuts): client handles state updates from
storageApi
Signed-off-by: Alec Jacobs
---
.../src/api/LocalStoredShortcuts.test.ts | 3 +-
.../shortcuts/src/api/LocalStoredShortcuts.ts | 54 +++++++++++++------
2 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
index dbea91863c..86890fc75b 100644
--- a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
+++ b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
@@ -36,8 +36,9 @@ describe('LocalStoredShortcuts', () => {
resolve();
},
});
- shortcutApi.add(shortcut);
});
+ observerNextHandler.mockClear(); // handler is called with current state to start
+ await shortcutApi.add(shortcut);
expect(observerNextHandler).toHaveBeenCalledTimes(1);
expect(observerNextHandler).toHaveBeenCalledWith(
diff --git a/plugins/shortcuts/src/api/LocalStoredShortcuts.ts b/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
index 65aeb86e3f..44f7364f69 100644
--- a/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
+++ b/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
@@ -16,10 +16,10 @@
import { pageTheme } from '@backstage/theme';
import { v4 as uuid } from 'uuid';
-import { ShortcutApi } from './ShortcutApi';
-import { Shortcut } from '../types';
-import { StorageApi } from '@backstage/core-plugin-api';
-import Observable from 'zen-observable';
+import { ShortcutApi, type Shortcut } from '@backstage/plugin-shortcuts';
+import type { StorageApi } from '@backstage/core-plugin-api';
+import type { Observable } from '@backstage/types';
+import ObservableImpl from 'zen-observable';
/**
* Implementation of the ShortcutApi that uses the StorageApi to store shortcuts.
@@ -27,27 +27,41 @@ import Observable from 'zen-observable';
* @public
*/
export class LocalStoredShortcuts implements ShortcutApi {
- private readonly shortcuts: Observable;
+ private shortcuts: Shortcut[];
+ private readonly subscribers = new Set<
+ ZenObservable.SubscriptionObserver
+ >();
+
+ private readonly observable = new ObservableImpl(subscriber => {
+ // forward the the latest value
+ subscriber.next(this.shortcuts);
+
+ this.subscribers.add(subscriber);
+ return () => {
+ this.subscribers.delete(subscriber);
+ };
+ });
constructor(private readonly storageApi: StorageApi) {
- this.shortcuts = Observable.from(
- this.storageApi.observe$('items'),
- ).map(snapshot => snapshot.value ?? []);
+ this.shortcuts = this.storageApi.snapshot('items').value ?? [];
+ this.storageApi.observe$('items').subscribe({
+ next: next => {
+ this.shortcuts = next.value ?? [];
+ this.notifyChanges();
+ },
+ });
}
- shortcut$() {
- return this.shortcuts;
+ shortcut$(): Observable {
+ return this.observable;
}
get() {
- return Array.from(
- this.storageApi.snapshot('items').value ?? [],
- ).sort((a, b) => (a.title >= b.title ? 1 : -1));
+ return this.shortcuts;
}
async add(shortcut: Omit) {
- const shortcuts = this.get();
- shortcuts.push({ ...shortcut, id: uuid() });
+ const shortcuts = this.sort([...this.get(), { ...shortcut, id: uuid() }]);
await this.storageApi.set('items', shortcuts);
}
@@ -78,4 +92,14 @@ export class LocalStoredShortcuts implements ShortcutApi {
catalog: 'home',
docs: 'documentation',
};
+
+ private sort(shortcuts: Shortcut[]): Shortcut[] {
+ return shortcuts.slice().sort((a, b) => (a.title >= b.title ? 1 : -1));
+ }
+
+ private notifyChanges() {
+ for (const subscription of this.subscribers) {
+ subscription.next(this.shortcuts);
+ }
+ }
}
From 7c38e565d1fba9bb68d93a856d69bafa0c3b1cd7 Mon Sep 17 00:00:00 2001
From: Alec Jacobs
Date: Mon, 13 Mar 2023 09:34:20 -0700
Subject: [PATCH 045/177] docs(changeset): add patch changeset
Signed-off-by: Alec Jacobs
---
.changeset/pink-apples-design.md | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 .changeset/pink-apples-design.md
diff --git a/.changeset/pink-apples-design.md b/.changeset/pink-apples-design.md
new file mode 100644
index 0000000000..411786370a
--- /dev/null
+++ b/.changeset/pink-apples-design.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-shortcuts': patch
+---
+
+Fixed bug in LocalStoredShortcuts client where adding new Shortcut results in replacing entire shortcut list.
+
+Refactored LocalStoredShortcuts client to listen to `storageApi` updates to ensure that local state is always up to date.
From f538b9c5b83a67bf22b587e43d44071e9bfcb35f Mon Sep 17 00:00:00 2001
From: Miguel Alexandre
Date: Mon, 13 Mar 2023 17:59:54 +0100
Subject: [PATCH 046/177] Include the failureMetadata and successMetadata in
TechInsightsApi
Signed-off-by: Miguel Alexandre
---
.changeset/lazy-monkeys-worry.md | 5 ++++
plugins/tech-insights/src/api/types.ts | 37 ++++++++++++++++++++++++++
2 files changed, 42 insertions(+)
create mode 100644 .changeset/lazy-monkeys-worry.md
diff --git a/.changeset/lazy-monkeys-worry.md b/.changeset/lazy-monkeys-worry.md
new file mode 100644
index 0000000000..2c7e2ba4a2
--- /dev/null
+++ b/.changeset/lazy-monkeys-worry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-tech-insights': minor
+---
+
+The Check class now includes the failureMetadata and successMetadata as returned by the runChecks call.
diff --git a/plugins/tech-insights/src/api/types.ts b/plugins/tech-insights/src/api/types.ts
index ac1f2e44ee..aa073dcbc4 100644
--- a/plugins/tech-insights/src/api/types.ts
+++ b/plugins/tech-insights/src/api/types.ts
@@ -22,11 +22,48 @@ import { JsonValue } from '@backstage/types';
* @public
*/
export type Check = {
+ /**
+ * Unique identifier of the check
+ *
+ * Used to identify which checks to use when running checks.
+ */
id: string;
+
+ /**
+ * Type identifier for the check.
+ * Can be used to determine storage options, logical routing to correct FactChecker implementation
+ * or to help frontend render correct component types based on this
+ */
type: string;
+
+ /**
+ * Human readable name of the check, may be displayed in the UI
+ */
name: string;
+
+ /**
+ * Human readable description of the check, may be displayed in the UI
+ */
description: string;
+
+ /**
+ * A collection of string referencing fact rows that a check will be run against.
+ *
+ * References the fact container, aka fact retriever itself which may or may not contain multiple individual facts and values
+ */
factIds: string[];
+
+ /**
+ * Metadata to be returned in case a check has been successfully evaluated
+ * Can contain links, description texts or other actionable items
+ */
+ successMetadata?: Record;
+
+ /**
+ * Metadata to be returned in case a check evaluation has ended in failure
+ * Can contain links, description texts or other actionable items
+ */
+ failureMetadata?: Record;
};
/**
From c5a57d15e29a53a796fbfc27ca018d673b62427e Mon Sep 17 00:00:00 2001
From: Alec Jacobs
Date: Mon, 13 Mar 2023 10:28:38 -0700
Subject: [PATCH 047/177] docs(shortcuts): regen api-report.md
Signed-off-by: Alec Jacobs
---
plugins/shortcuts/api-report.md | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/plugins/shortcuts/api-report.md b/plugins/shortcuts/api-report.md
index 1aa1dea003..19c0035a55 100644
--- a/plugins/shortcuts/api-report.md
+++ b/plugins/shortcuts/api-report.md
@@ -9,24 +9,25 @@ import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { IconComponent } from '@backstage/core-plugin-api';
import { Observable } from '@backstage/types';
-import { default as Observable_2 } from 'zen-observable';
-import { StorageApi } from '@backstage/core-plugin-api';
+import { Shortcut as Shortcut_2 } from '@backstage/plugin-shortcuts';
+import { ShortcutApi as ShortcutApi_2 } from '@backstage/plugin-shortcuts';
+import type { StorageApi } from '@backstage/core-plugin-api';
// @public
-export class LocalStoredShortcuts implements ShortcutApi {
+export class LocalStoredShortcuts implements ShortcutApi_2 {
constructor(storageApi: StorageApi);
// (undocumented)
- add(shortcut: Omit): Promise;
+ add(shortcut: Omit): Promise;
// (undocumented)
- get(): Shortcut[];
+ get(): Shortcut_2[];
// (undocumented)
getColor(url: string): string;
// (undocumented)
remove(id: string): Promise;
// (undocumented)
- shortcut$(): Observable_2;
+ shortcut$(): Observable;
// (undocumented)
- update(shortcut: Shortcut): Promise;
+ update(shortcut: Shortcut_2): Promise;
}
// @public (undocumented)
From 2d20ea246518fca3c5de9a517faa82ec422f5c05 Mon Sep 17 00:00:00 2001
From: Alec Jacobs
Date: Mon, 13 Mar 2023 10:47:06 -0700
Subject: [PATCH 048/177] build(shortcuts): move @types/zen-observable to
devDependencies
Signed-off-by: Alec Jacobs
---
plugins/shortcuts/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json
index eb48088934..22c0456342 100644
--- a/plugins/shortcuts/package.json
+++ b/plugins/shortcuts/package.json
@@ -30,7 +30,6 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
- "@types/zen-observable": "^0.8.2",
"react-hook-form": "^7.12.2",
"react-use": "^17.2.4",
"uuid": "^8.3.2",
@@ -49,6 +48,7 @@
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/node": "^16.11.26",
+ "@types/zen-observable": "^0.8.2",
"cross-fetch": "^3.1.5",
"msw": "^1.0.0"
},
From c1ee073a82b5c7294a3f243ad86834c8c4518cb1 Mon Sep 17 00:00:00 2001
From: Andrew Thauer
Date: Mon, 13 Mar 2023 16:06:08 -0400
Subject: [PATCH 049/177] feat: add lastModifiedAt to UrlReader methods
Signed-off-by: Andrew Thauer
---
.changeset/sharp-rings-cry.md | 6 ++
packages/backend-common/api-report.md | 2 +
.../src/reading/AwsS3UrlReader.test.ts | 42 +++++++++-
.../src/reading/AwsS3UrlReader.ts | 30 ++++----
.../src/reading/AzureUrlReader.ts | 1 +
.../reading/BitbucketCloudUrlReader.test.ts | 77 +++++++++++++++++++
.../src/reading/BitbucketCloudUrlReader.ts | 10 ++-
.../src/reading/BitbucketServerUrlReader.ts | 10 ++-
.../src/reading/BitbucketUrlReader.test.ts | 77 +++++++++++++++++++
.../src/reading/BitbucketUrlReader.ts | 10 ++-
.../src/reading/FetchUrlReader.test.ts | 25 +++++-
.../src/reading/FetchUrlReader.ts | 7 ++
.../src/reading/GiteaUrlReader.test.ts | 48 +++++++++++-
.../src/reading/GiteaUrlReader.ts | 4 +
.../src/reading/GithubUrlReader.test.ts | 8 +-
.../src/reading/GithubUrlReader.ts | 8 ++
.../src/reading/GitlabUrlReader.test.ts | 38 ++++++++-
.../src/reading/GitlabUrlReader.ts | 10 ++-
.../src/reading/ReadUrlResponseFactory.ts | 1 +
.../src/reading/tree/ReadableArrayResponse.ts | 1 +
.../reading/tree/TarArchiveResponse.test.ts | 5 ++
.../reading/tree/ZipArchiveResponse.test.ts | 5 ++
.../src/reading/tree/ZipArchiveResponse.ts | 3 +
packages/backend-common/src/reading/types.ts | 7 ++
packages/backend-common/src/reading/util.ts | 23 ++++++
packages/backend-plugin-api/api-report.md | 4 +
.../services/definitions/UrlReaderService.ts | 42 ++++++++++
27 files changed, 477 insertions(+), 27 deletions(-)
create mode 100644 .changeset/sharp-rings-cry.md
create mode 100644 packages/backend-common/src/reading/util.ts
diff --git a/.changeset/sharp-rings-cry.md b/.changeset/sharp-rings-cry.md
new file mode 100644
index 0000000000..9e32a53526
--- /dev/null
+++ b/.changeset/sharp-rings-cry.md
@@ -0,0 +1,6 @@
+---
+'@backstage/backend-common': minor
+'@backstage/backend-plugin-api': minor
+---
+
+Added `lastModifiedAt` field on `UrlReaderService` responses and a `lastModifiedAfter` option to `UrlReaderService.readUrl`.
diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md
index ebdd7315c9..f1d8a74dbe 100644
--- a/packages/backend-common/api-report.md
+++ b/packages/backend-common/api-report.md
@@ -301,6 +301,7 @@ export class FetchUrlReader implements UrlReader {
export type FromReadableArrayOptions = Array<{
data: Readable;
path: string;
+ lastModifiedAt?: Date;
}>;
// @public
@@ -635,6 +636,7 @@ export class ReadUrlResponseFactory {
// @public
export type ReadUrlResponseFactoryFromStreamOptions = {
etag?: string;
+ lastModifiedAt?: Date;
};
// @public
diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
index 0bd4d2636f..b37a052c1d 100644
--- a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
+++ b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
@@ -297,23 +297,26 @@ describe('AwsS3UrlReader', () => {
),
),
ETag: '123abc',
+ LastModified: new Date('2020-01-01T00:00:00Z'),
});
});
it('returns contents of an object in a bucket via buffer', async () => {
- const { buffer, etag } = await reader.readUrl(
+ const { buffer, etag, lastModifiedAt } = await reader.readUrl(
'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
);
expect(etag).toBe('123abc');
+ expect(lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
const response = await buffer();
expect(response.toString().trim()).toBe('site_name: Test');
});
it('returns contents of an object in a bucket via stream', async () => {
- const { buffer, etag } = await reader.readUrl(
+ const { buffer, etag, lastModifiedAt } = await reader.readUrl(
'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
);
expect(etag).toBe('123abc');
+ expect(lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
const response = await buffer();
expect(response.toString().trim()).toBe('site_name: Test');
});
@@ -403,6 +406,41 @@ describe('AwsS3UrlReader', () => {
});
});
+ describe('readUrl with lastModifiedAfter', () => {
+ const [{ reader }] = createReader({
+ integrations: {
+ awsS3: [
+ {
+ host: 'amazonaws.com',
+ accessKeyId: 'fake-access-key',
+ secretAccessKey: 'fake-secret-key',
+ },
+ ],
+ },
+ });
+
+ beforeEach(() => {
+ s3Client.reset();
+ const t = new S3ServiceException({
+ name: '304',
+ $fault: 'client',
+ $metadata: { httpStatusCode: 304 },
+ });
+ s3Client.on(GetObjectCommand).rejects(t);
+ });
+
+ it('returns contents of an object in a bucket', async () => {
+ await expect(
+ reader.readUrl!(
+ 'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
+ {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+ });
+
describe('readTree', () => {
let awsS3UrlReader: AwsS3UrlReader;
diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.ts b/packages/backend-common/src/reading/AwsS3UrlReader.ts
index d06e2d0ad6..4d4c28071f 100644
--- a/packages/backend-common/src/reading/AwsS3UrlReader.ts
+++ b/packages/backend-common/src/reading/AwsS3UrlReader.ts
@@ -41,6 +41,7 @@ import {
ListObjectsV2Command,
ListObjectsV2CommandOutput,
GetObjectCommand,
+ GetObjectCommandInput,
} from '@aws-sdk/client-s3';
import { AbortController } from '@aws-sdk/abort-controller';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
@@ -253,6 +254,8 @@ export class AwsS3UrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
+ const { etag, lastModifiedAfter } = options ?? {};
+
try {
const { path, bucket, region } = parseUrl(url, this.integration.config);
const s3Client = await this.buildS3Client(
@@ -262,19 +265,15 @@ export class AwsS3UrlReader implements UrlReader {
);
const abortController = new AbortController();
- let params;
- if (options?.etag) {
- params = {
- Bucket: bucket,
- Key: path,
- IfNoneMatch: options.etag,
- };
- } else {
- params = {
- Bucket: bucket,
- Key: path,
- };
- }
+ const params: GetObjectCommandInput = {
+ Bucket: bucket,
+ Key: path,
+ ...(etag && { IfNoneMatch: etag }),
+ ...(lastModifiedAfter && {
+ IfModifiedSince: lastModifiedAfter,
+ }),
+ };
+
options?.signal?.addEventListener('abort', () => abortController.abort());
const getObjectCommand = new GetObjectCommand(params);
const response = await s3Client.send(getObjectCommand, {
@@ -284,10 +283,10 @@ export class AwsS3UrlReader implements UrlReader {
const s3ObjectData = await this.retrieveS3ObjectData(
response.Body as Readable,
);
- const etag = response.ETag;
return ReadUrlResponseFactory.fromReadable(s3ObjectData, {
- etag: etag,
+ etag: response.ETag,
+ lastModifiedAt: response.LastModified,
});
} catch (e) {
if (e.$metadata && e.$metadata.httpStatusCode === 304) {
@@ -347,6 +346,7 @@ export class AwsS3UrlReader implements UrlReader {
responses.push({
data: s3ObjectData,
path: String(allObjects[i]),
+ lastModifiedAt: response?.LastModified ?? undefined,
});
}
diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-common/src/reading/AzureUrlReader.ts
index 08e3917b38..90cf8f29bd 100644
--- a/packages/backend-common/src/reading/AzureUrlReader.ts
+++ b/packages/backend-common/src/reading/AzureUrlReader.ts
@@ -192,6 +192,7 @@ export class AzureUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
index ca6e15a005..c00aeba124 100644
--- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
+++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
@@ -156,6 +156,83 @@ describe('BitbucketCloudUrlReader', () => {
expect(buffer.toString()).toBe('foo');
expect(result.etag).toBe('new-etag-value');
});
+
+ it('should be able to readUrl via buffer without If-Modified-Since', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-None-Match')).toBeNull();
+ return res(
+ ctx.status(200),
+ ctx.body('foo'),
+ ctx.set('ETag', 'etag-value'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ },
+ ),
+ );
+
+ const result = await reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ );
+ const buffer = await result.buffer();
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ expect(buffer.toString()).toBe('foo');
+ });
+
+ it('should be throw not modified when If-Modified-Since returns a 304', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ },
+ ),
+ );
+
+ await expect(
+ reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should be able to readUrl when If-Modified-Since is before Last-Modified', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(
+ ctx.status(200),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
+ },
+ ),
+ );
+
+ const result = await reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ );
+ const buffer = await result.buffer();
+ expect(buffer.toString()).toBe('foo');
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ });
});
describe('read', () => {
diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
index b83e012423..1522b7678d 100644
--- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
@@ -40,6 +40,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Cloud.
@@ -80,7 +81,7 @@ export class BitbucketCloudUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketCloudFileFetchUrl(
url,
this.integration.config,
@@ -95,6 +96,9 @@ export class BitbucketCloudUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -115,6 +119,9 @@ export class BitbucketCloudUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -184,6 +191,7 @@ export class BitbucketCloudUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
index a97c3b39bb..2b6b5a1f8f 100644
--- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
@@ -39,6 +39,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Server APIs.
@@ -71,7 +72,7 @@ export class BitbucketServerUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketServerFileFetchUrl(
url,
this.integration.config,
@@ -86,6 +87,9 @@ export class BitbucketServerUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -106,6 +110,9 @@ export class BitbucketServerUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -175,6 +182,7 @@ export class BitbucketServerUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.test.ts b/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
index 922480f8e7..15e007d516 100644
--- a/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
+++ b/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
@@ -204,6 +204,83 @@ describe('BitbucketUrlReader', () => {
expect(buffer.toString()).toBe('foo');
expect(result.etag).toBe('new-etag-value');
});
+
+ it('should be able to readUrl via buffer without If-Modified-Since', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-None-Match')).toBeNull();
+ return res(
+ ctx.status(200),
+ ctx.body('foo'),
+ ctx.set('ETag', 'etag-value'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ },
+ ),
+ );
+
+ const result = await bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ );
+ const buffer = await result.buffer();
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ expect(buffer.toString()).toBe('foo');
+ });
+
+ it('should be throw not modified when If-Modified-Since returns a 304', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ },
+ ),
+ );
+
+ await expect(
+ bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should be able to readUrl when If-Modified-Since is before Last-Modified', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(
+ ctx.status(200),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
+ },
+ ),
+ );
+
+ const result = await bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ );
+ const buffer = await result.buffer();
+ expect(buffer.toString()).toBe('foo');
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ });
});
describe('read', () => {
diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-common/src/reading/BitbucketUrlReader.ts
index 01539594dd..3a34c725c6 100644
--- a/packages/backend-common/src/reading/BitbucketUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketUrlReader.ts
@@ -41,6 +41,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket v1 and v2 APIs, such
@@ -96,7 +97,7 @@ export class BitbucketUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketFileFetchUrl(url, this.integration.config);
const requestOptions = getBitbucketRequestOptions(this.integration.config);
@@ -106,6 +107,9 @@ export class BitbucketUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -126,6 +130,9 @@ export class BitbucketUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -195,6 +202,7 @@ export class BitbucketUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/FetchUrlReader.test.ts b/packages/backend-common/src/reading/FetchUrlReader.test.ts
index e45117a106..ad834c64ef 100644
--- a/packages/backend-common/src/reading/FetchUrlReader.test.ts
+++ b/packages/backend-common/src/reading/FetchUrlReader.test.ts
@@ -45,6 +45,21 @@ describe('FetchUrlReader', () => {
);
}
+ if (
+ req.headers.get('if-modified-since') &&
+ new Date(req.headers.get('if-modified-since') ?? '') <
+ new Date('2021-01-01T00:00:00Z')
+ ) {
+ return res(
+ ctx.status(304),
+ ctx.set('Content-Type', 'text/plain'),
+ ctx.set(
+ 'last-modified',
+ new Date('2021-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ }
+
return res(
ctx.status(200),
ctx.set('Content-Type', 'text/plain'),
@@ -192,7 +207,7 @@ describe('FetchUrlReader', () => {
});
describe('readUrl', () => {
- it('should throw NotModified if server responds with 304', async () => {
+ it('should throw NotModified if server responds with 304 from etag', async () => {
await expect(
fetchUrlReader.readUrl('https://backstage.io/some-resource', {
etag: 'foo',
@@ -200,6 +215,14 @@ describe('FetchUrlReader', () => {
).rejects.toThrow(NotModifiedError);
});
+ it('should throw NotModified if server responds with 304 from lastModifiedAfter', async () => {
+ await expect(
+ fetchUrlReader.readUrl('https://backstage.io/some-resource', {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ }),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
it('should return etag from the response', async () => {
const response = await fetchUrlReader.readUrl(
'https://backstage.io/some-resource',
diff --git a/packages/backend-common/src/reading/FetchUrlReader.ts b/packages/backend-common/src/reading/FetchUrlReader.ts
index 20b78d63c3..90c1cf6c26 100644
--- a/packages/backend-common/src/reading/FetchUrlReader.ts
+++ b/packages/backend-common/src/reading/FetchUrlReader.ts
@@ -26,6 +26,7 @@ import {
} from './types';
import path from 'path';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
const isInRange = (num: number, [start, end]: [number, number]) => {
return num >= start && num <= end;
@@ -127,6 +128,9 @@ export class FetchUrlReader implements UrlReader {
response = await fetch(url, {
headers: {
...(options?.etag && { 'If-None-Match': options.etag }),
+ ...(options?.lastModifiedAfter && {
+ 'If-Modified-Since': options.lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -147,6 +151,9 @@ export class FetchUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
diff --git a/packages/backend-common/src/reading/GiteaUrlReader.test.ts b/packages/backend-common/src/reading/GiteaUrlReader.test.ts
index 6c8722d2e5..1860d9f461 100644
--- a/packages/backend-common/src/reading/GiteaUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GiteaUrlReader.test.ts
@@ -25,7 +25,7 @@ import { UrlReaderPredicateTuple } from './types';
import { DefaultReadTreeResponseFactory } from './tree';
import getRawBody from 'raw-body';
import { GiteaUrlReader } from './GiteaUrlReader';
-import { NotFoundError } from '@backstage/errors';
+import { NotFoundError, NotModifiedError } from '@backstage/errors';
const treeResponseFactory = DefaultReadTreeResponseFactory.create({
config: new ConfigReader({}),
@@ -200,5 +200,51 @@ describe('GiteaUrlReader', () => {
'https://gitea.com/owner/project/src/branch/branch2/LICENSE could not be read as https://gitea.com/api/v1/repos/owner/project/contents/LICENSE?ref=branch2, 500 Error!!!',
);
});
+
+ it('should throw NotModified if server responds with 304 from etag', async () => {
+ worker.use(
+ rest.get(
+ 'https://gitea.com/api/v1/repos/owner/project/contents/LICENSE',
+ (_, res, ctx) => {
+ return res(ctx.set('ETag', 'foo'), ctx.status(304, 'Error!!!'));
+ },
+ ),
+ );
+
+ await expect(
+ giteaProcessor.readUrl(
+ 'https://gitea.com/owner/project/src/branch/branch2/LICENSE',
+ {
+ etag: 'foo',
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should throw NotModified if server responds with 304 from lastModifiedAfter', async () => {
+ worker.use(
+ rest.get(
+ 'https://gitea.com/api/v1/repos/owner/project/contents/LICENSE',
+ (_, res, ctx) => {
+ return res(
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.status(304, 'Error!!!'),
+ );
+ },
+ ),
+ );
+
+ await expect(
+ giteaProcessor.readUrl(
+ 'https://gitea.com/owner/project/src/branch/branch2/LICENSE',
+ {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
});
});
diff --git a/packages/backend-common/src/reading/GiteaUrlReader.ts b/packages/backend-common/src/reading/GiteaUrlReader.ts
index 1471bab608..34542e878e 100644
--- a/packages/backend-common/src/reading/GiteaUrlReader.ts
+++ b/packages/backend-common/src/reading/GiteaUrlReader.ts
@@ -34,6 +34,7 @@ import {
NotModifiedError,
} from '@backstage/errors';
import { Readable } from 'stream';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for the Gitea v1 api.
@@ -86,6 +87,9 @@ export class GiteaUrlReader implements UrlReader {
Readable.from(Buffer.from(content, 'base64')),
{
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
},
);
}
diff --git a/packages/backend-common/src/reading/GithubUrlReader.test.ts b/packages/backend-common/src/reading/GithubUrlReader.test.ts
index 2315d1f9e8..1ee25920f2 100644
--- a/packages/backend-common/src/reading/GithubUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GithubUrlReader.test.ts
@@ -247,7 +247,7 @@ describe('GithubUrlReader', () => {
).rejects.toThrow(/rate limit exceeded/);
});
- it('should return etag from the response', async () => {
+ it('should return etag and last-modified from the response', async () => {
(mockCredentialsProvider.getCredentials as jest.Mock).mockResolvedValue({
headers: {
Authorization: 'bearer blah',
@@ -261,6 +261,11 @@ describe('GithubUrlReader', () => {
return res(
ctx.status(200),
ctx.set('Etag', 'foo'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2021-01-01T00:00:00Z').toUTCString(),
+ ),
+
ctx.body('bar'),
);
},
@@ -271,6 +276,7 @@ describe('GithubUrlReader', () => {
'https://github.com/backstage/mock/tree/blob/main',
);
expect(response.etag).toBe('foo');
+ expect(response.lastModifiedAt).toEqual(new Date('2021-01-01T00:00:00Z'));
});
});
diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts
index d91c35621d..ee781daf0b 100644
--- a/packages/backend-common/src/reading/GithubUrlReader.ts
+++ b/packages/backend-common/src/reading/GithubUrlReader.ts
@@ -40,6 +40,7 @@ import {
ReadUrlResponse,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
export type GhRepoResponse =
RestEndpointMethodTypes['repos']['get']['response']['data'];
@@ -109,6 +110,9 @@ export class GithubUrlReader implements UrlReader {
headers: {
...credentials?.headers,
...(options?.etag && { 'If-None-Match': options.etag }),
+ ...(options?.lastModifiedAfter && {
+ 'If-Modified-Since': options.lastModifiedAfter.toUTCString(),
+ }),
Accept: 'application/vnd.github.v3.raw',
},
// TODO(freben): The signal cast is there because pre-3.x versions of
@@ -130,6 +134,9 @@ export class GithubUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -290,6 +297,7 @@ export class GithubUrlReader implements UrlReader {
return files.map(file => ({
url: pathToUrl(file.path),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
}));
}
diff --git a/packages/backend-common/src/reading/GitlabUrlReader.test.ts b/packages/backend-common/src/reading/GitlabUrlReader.test.ts
index 3751ee868e..d926b2be9b 100644
--- a/packages/backend-common/src/reading/GitlabUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GitlabUrlReader.test.ts
@@ -184,7 +184,7 @@ describe('GitlabUrlReader', () => {
treeResponseFactory,
});
- it('should throw NotModified on HTTP 304', async () => {
+ it('should throw NotModified on HTTP 304 from etag', async () => {
worker.use(
rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
res(ctx.status(200), ctx.json({ id: 12345 })),
@@ -205,13 +205,44 @@ describe('GitlabUrlReader', () => {
).rejects.toThrow(NotModifiedError);
});
- it('should return etag in response', async () => {
+ it('should throw NotModified on HTTP 304 from lastModifiedAt', async () => {
+ worker.use(
+ rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
+ res(ctx.status(200), ctx.json({ id: 12345 })),
+ ),
+ rest.get('*', (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('2019 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ }),
+ );
+
+ await expect(
+ reader.readUrl!(
+ 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml',
+ {
+ lastModifiedAfter: new Date('2019 12 31 23:59:59 GMT'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should return etag and last-modified in response', async () => {
worker.use(
rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
res(ctx.status(200), ctx.json({ id: 12345 })),
),
rest.get('*', (_req, res, ctx) => {
- return res(ctx.status(200), ctx.set('ETag', '999'), ctx.body('foo'));
+ return res(
+ ctx.status(200),
+ ctx.set('ETag', '999'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020 01 01 00:0:00 GMT').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
}),
);
@@ -219,6 +250,7 @@ describe('GitlabUrlReader', () => {
'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml',
);
expect(result.etag).toBe('999');
+ expect(result.lastModifiedAt).toEqual(new Date('2020 01 01 00:0:00 GMT'));
const content = await result.buffer();
expect(content.toString()).toBe('foo');
});
diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-common/src/reading/GitlabUrlReader.ts
index bebc7453d0..df8441c1f7 100644
--- a/packages/backend-common/src/reading/GitlabUrlReader.ts
+++ b/packages/backend-common/src/reading/GitlabUrlReader.ts
@@ -40,6 +40,7 @@ import {
} from './types';
import { trimEnd, trimStart } from 'lodash';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files on GitLab.
@@ -72,7 +73,7 @@ export class GitlabUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const builtUrl = await this.getGitlabFetchUrl(url);
let response: Response;
@@ -81,6 +82,9 @@ export class GitlabUrlReader implements UrlReader {
headers: {
...getGitLabRequestOptions(this.integration.config).headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -101,6 +105,9 @@ export class GitlabUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -247,6 +254,7 @@ export class GitlabUrlReader implements UrlReader {
files: files.map(file => ({
url: this.integration.resolveUrl({ url: `/${file.path}`, base: url }),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts b/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
index 91d1939c24..69b9c6c16a 100644
--- a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
+++ b/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
@@ -61,6 +61,7 @@ export class ReadUrlResponseFactory {
return stream;
},
etag: options?.etag,
+ lastModifiedAt: options?.lastModifiedAt,
};
}
diff --git a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts b/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
index eabaa3bc56..1429931142 100644
--- a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
+++ b/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
@@ -63,6 +63,7 @@ export class ReadableArrayResponse implements ReadTreeResponse {
files.push({
path: this.stream[i].path,
content: () => getRawBody(this.stream[i].data),
+ lastModifiedAt: this.stream[i]?.lastModifiedAt,
});
}
}
diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts b/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
index f0cbc6a612..1765a41156 100644
--- a/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
+++ b/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
@@ -45,10 +45,12 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const contents = await Promise.all(files.map(f => f.content()));
@@ -70,6 +72,7 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const content = await files[0].content();
@@ -93,10 +96,12 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const contents = await Promise.all(files.map(f => f.content()));
diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
index e45a25db66..0b010565dd 100644
--- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
+++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
@@ -59,10 +59,12 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
@@ -85,6 +87,7 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
const content = await files[0].content();
@@ -108,10 +111,12 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
const contents = await Promise.all(files.map(f => f.content()));
diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
index 5a1c5f9688..1e55150310 100644
--- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
+++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
@@ -146,6 +146,9 @@ export class ZipArchiveResponse implements ReadTreeResponse {
files.push({
path: this.getInnerPath(entry.fileName),
content: async () => await streamToBuffer(content),
+ lastModifiedAt: entry.lastModFileTime
+ ? new Date(entry.lastModFileTime)
+ : undefined,
});
});
diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts
index 35380029e2..7f4d407fd0 100644
--- a/packages/backend-common/src/reading/types.ts
+++ b/packages/backend-common/src/reading/types.ts
@@ -65,6 +65,7 @@ export type ReaderFactory = (options: {
*/
export type ReadUrlResponseFactoryFromStreamOptions = {
etag?: string;
+ lastModifiedAt?: Date;
};
/**
@@ -95,10 +96,16 @@ export type FromReadableArrayOptions = Array<{
* The raw data itself.
*/
data: Readable;
+
/**
* The filepath of the data.
*/
path: string;
+
+ /**
+ * Last modified date of the file contents.
+ */
+ lastModifiedAt?: Date;
}>;
/**
diff --git a/packages/backend-common/src/reading/util.ts b/packages/backend-common/src/reading/util.ts
new file mode 100644
index 0000000000..3d65c2c527
--- /dev/null
+++ b/packages/backend-common/src/reading/util.ts
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2022 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 function parseLastModified(value: string | null | undefined) {
+ if (!value) {
+ return undefined;
+ }
+
+ return new Date(value);
+}
diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md
index 5e64502b78..7dc6ae97b3 100644
--- a/packages/backend-plugin-api/api-report.md
+++ b/packages/backend-plugin-api/api-report.md
@@ -359,11 +359,13 @@ export type ReadTreeResponseDirOptions = {
export type ReadTreeResponseFile = {
path: string;
content(): Promise;
+ lastModifiedAt?: Date;
};
// @public
export type ReadUrlOptions = {
etag?: string;
+ lastModifiedAfter?: Date;
signal?: AbortSignal;
};
@@ -372,6 +374,7 @@ export type ReadUrlResponse = {
buffer(): Promise;
stream?(): Readable;
etag?: string;
+ lastModifiedAt?: Date;
};
// @public (undocumented)
@@ -420,6 +423,7 @@ export type SearchResponse = {
export type SearchResponseFile = {
url: string;
content(): Promise;
+ lastModifiedAt?: Date;
};
// @public (undocumented)
diff --git a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
index ef825a7fcd..c189b4a339 100644
--- a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
+++ b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
@@ -64,6 +64,26 @@ export type ReadUrlOptions = {
*/
etag?: string;
+ /**
+ * A date which can be provided to check whether a
+ * {@link UrlReaderService.readUrl} response has changed since the lastModifiedAt.
+ *
+ * @remarks
+ *
+ * In the {@link UrlReaderService.readUrl} response, an lastModifiedAt is returned
+ * along with data. The lastModifiedAt date represents the last time the data
+ * was modified.
+ *
+ * When an lastModifiedAfter is given in ReadUrlOptions, {@link UrlReaderService.readUrl}
+ * will compare the lastModifiedAfter against the lastModifiedAt of the target. If
+ * the data has not been modified since this date, the {@link UrlReaderService.readUrl}
+ * will throw a {@link @backstage/errors#NotModifiedError} indicating that the
+ * response does not contain any new data. If they do not match,
+ * {@link UrlReaderService.readUrl} will return the rest of the response along with new
+ * lastModifiedAt date.
+ */
+ lastModifiedAfter?: Date;
+
/**
* An abort signal to pass down to the underlying request.
*
@@ -102,6 +122,11 @@ export type ReadUrlResponse = {
* Can be used to compare and cache responses when doing subsequent calls.
*/
etag?: string;
+
+ /**
+ * Last modified date of the file contents.
+ */
+ lastModifiedAt?: Date;
};
/**
@@ -213,8 +238,20 @@ export type ReadTreeResponse = {
* @public
*/
export type ReadTreeResponseFile = {
+ /**
+ * The filepath of the data.
+ */
path: string;
+
+ /**
+ * The binary contents of the file.
+ */
content(): Promise;
+
+ /**
+ * The last modified timestamp of the data.
+ */
+ lastModifiedAt?: Date;
};
/**
@@ -278,4 +315,9 @@ export type SearchResponseFile = {
* The binary contents of the file.
*/
content(): Promise;
+
+ /**
+ * The last modified timestamp of the data.
+ */
+ lastModifiedAt?: Date;
};
From 13226881189232e2b3e77ecd0bc06f03645a7cfe Mon Sep 17 00:00:00 2001
From: Marcus Eide
Date: Thu, 9 Feb 2023 09:09:33 +0100
Subject: [PATCH 050/177] cli: Add admin skeleton command
Signed-off-by: Marcus Eide
---
packages/cli/src/commands/admin/command.ts | 31 ++++++++++++++++++++++
packages/cli/src/commands/admin/index.ts | 17 ++++++++++++
packages/cli/src/commands/index.ts | 8 ++++++
3 files changed, 56 insertions(+)
create mode 100644 packages/cli/src/commands/admin/command.ts
create mode 100644 packages/cli/src/commands/admin/index.ts
diff --git a/packages/cli/src/commands/admin/command.ts b/packages/cli/src/commands/admin/command.ts
new file mode 100644
index 0000000000..3539ddc40c
--- /dev/null
+++ b/packages/cli/src/commands/admin/command.ts
@@ -0,0 +1,31 @@
+/*
+ * 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 chalk from 'chalk';
+import inquirer from 'inquirer';
+import { Task } from '../../lib/tasks';
+
+export async function command(): Promise {
+ const answers = await inquirer.prompt<{ github: boolean }>([
+ {
+ type: 'confirm',
+ name: 'github',
+ message: chalk.blue('Do you want to set up GitHub Authentication?'),
+ },
+ ]);
+
+ Task.log(answers.github ? 'Ok!' : 'Maybe next time');
+}
diff --git a/packages/cli/src/commands/admin/index.ts b/packages/cli/src/commands/admin/index.ts
new file mode 100644
index 0000000000..4c23ea6e48
--- /dev/null
+++ b/packages/cli/src/commands/admin/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 { command } from './command';
diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts
index ddec5c6a4a..2baf1aac9b 100644
--- a/packages/cli/src/commands/index.ts
+++ b/packages/cli/src/commands/index.ts
@@ -25,6 +25,13 @@ const configOption = [
Array(),
] as const;
+export function registerAdminCommand(program: Command) {
+ program
+ .command('admin')
+ .description('Get help setting up your Backstage App.')
+ .action(lazy(() => import('./admin').then(m => m.command)));
+}
+
export function registerRepoCommand(program: Command) {
const command = program
.command('repo [command]')
@@ -360,6 +367,7 @@ export function registerCommands(program: Command) {
registerRepoCommand(program);
registerScriptCommand(program);
registerMigrateCommand(program);
+ registerAdminCommand(program);
program
.command('versions:bump')
From 7af6c36adfea09e08dbb9a95c307e5c2c272e7e8 Mon Sep 17 00:00:00 2001
From: Marcus Eide
Date: Thu, 9 Feb 2023 14:33:17 +0100
Subject: [PATCH 051/177] cli: Expand admin command to setup basic
authenticaton for gihub
Signed-off-by: Marcus Eide
---
packages/cli/src/commands/admin/command.ts | 54 ++++++++++-
packages/cli/src/commands/admin/file.ts | 48 ++++++++++
packages/cli/src/commands/admin/github.ts | 104 +++++++++++++++++++++
3 files changed, 202 insertions(+), 4 deletions(-)
create mode 100644 packages/cli/src/commands/admin/file.ts
create mode 100644 packages/cli/src/commands/admin/github.ts
diff --git a/packages/cli/src/commands/admin/command.ts b/packages/cli/src/commands/admin/command.ts
index 3539ddc40c..5e8256c14f 100644
--- a/packages/cli/src/commands/admin/command.ts
+++ b/packages/cli/src/commands/admin/command.ts
@@ -17,15 +17,61 @@
import chalk from 'chalk';
import inquirer from 'inquirer';
import { Task } from '../../lib/tasks';
+import { github } from './github';
+import { updateConfigFile, updateEnvFile } from './file';
export async function command(): Promise {
- const answers = await inquirer.prompt<{ github: boolean }>([
+ const answers = await inquirer.prompt<{
+ shouldSetupAuth: boolean;
+ useEnvForSecrets?: boolean;
+ provider?: string;
+ }>([
{
type: 'confirm',
- name: 'github',
- message: chalk.blue('Do you want to set up GitHub Authentication?'),
+ name: 'shouldSetupAuth',
+ message: chalk.blue(
+ 'Do you want to set up Authentication for this project?',
+ ),
+ },
+ {
+ type: 'confirm',
+ name: 'useEnvForSecrets',
+ message:
+ 'Would you like to store sensitive configuration details such as secrets as environment variables? (recommended)',
+ when: ({ shouldSetupAuth }) => shouldSetupAuth,
+ },
+ {
+ type: 'list',
+ name: 'provider',
+ message: 'Please select a provider:',
+ choices: ['github'],
+ when: ({ shouldSetupAuth }) => shouldSetupAuth,
},
]);
- Task.log(answers.github ? 'Ok!' : 'Maybe next time');
+ if (!answers.shouldSetupAuth) {
+ // TODO(eide): Can we add a Task.warning() method?
+ console.log(
+ chalk.yellow(
+ 'If you change your mind, feel free to re-run this command.',
+ ),
+ );
+ process.exit(1);
+ }
+
+ switch (answers.provider) {
+ case 'github': {
+ const { useEnvForSecrets } = answers;
+ const config = await github(useEnvForSecrets);
+ await updateConfigFile(config);
+ if (useEnvForSecrets) {
+ await updateEnvFile(config);
+ }
+ break;
+ }
+ default:
+ throw new Error(`Provider ${answers.provider} not implemented yet.`);
+ }
+
+ Task.log(`Done setting up ${answers.provider}!`);
}
diff --git a/packages/cli/src/commands/admin/file.ts b/packages/cli/src/commands/admin/file.ts
new file mode 100644
index 0000000000..52a55c3776
--- /dev/null
+++ b/packages/cli/src/commands/admin/file.ts
@@ -0,0 +1,48 @@
+/*
+ * 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 * as path from 'path';
+import * as fs from 'fs-extra';
+import yaml from 'yaml';
+import { findPaths } from '@backstage/cli-common';
+import { GithubAuthConfig } from './github';
+
+/* eslint-disable-next-line no-restricted-syntax */
+const { targetRoot } = findPaths(__dirname);
+const APP_CONFIG_FILE = path.join(targetRoot, 'app-config.development.yaml');
+const ENV_CONFIG_FILE = path.join(targetRoot, '.env.development');
+
+// export const readAppConfig = async (file: string) => {
+// return yaml.parse(await fs.readFile(file, 'utf8'));
+// };
+
+export const updateConfigFile = async (config: GithubAuthConfig) => {
+ return await fs.writeFile(
+ APP_CONFIG_FILE,
+ yaml.stringify(config, {
+ indent: 2,
+ }),
+ 'utf8',
+ );
+};
+
+export const updateEnvFile = async (config: GithubAuthConfig) => {
+ const content = `
+AUTH_GITHUB_CLIENT_ID=${config.auth.providers.github.clientId}
+AUTH_GITHUB_CLIENT_SECRET=${config.auth.providers.github.clientId}`;
+
+ return await fs.writeFile(ENV_CONFIG_FILE, content, 'utf8');
+};
diff --git a/packages/cli/src/commands/admin/github.ts b/packages/cli/src/commands/admin/github.ts
new file mode 100644
index 0000000000..5b359ecb33
--- /dev/null
+++ b/packages/cli/src/commands/admin/github.ts
@@ -0,0 +1,104 @@
+/*
+ * 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 chalk from 'chalk';
+import inquirer from 'inquirer';
+import { Task } from '../../lib/tasks';
+
+export type GithubAuthConfig = {
+ auth: {
+ providers: {
+ github: {
+ clientId: string;
+ clientSecret: string;
+ enterpriseInstanceUrl?: string;
+ };
+ };
+ };
+};
+
+export const github = async (
+ useEnvForSecrets?: boolean,
+): Promise => {
+ Task.log(`
+ To add GitHub authentication, you must create an OAuth App from the GitHub developer settings: ${chalk.blue(
+ 'https://github.com/settings/developers',
+ )}
+ The Homepage URL should point to Backstage's frontend, while the Authorization callback URL will point to the auth backend.
+
+ You can find the full documentation page here: ${chalk.blue(
+ 'https://backstage.io/docs/auth/github/provider',
+ )}
+ `);
+
+ const answers = await inquirer.prompt<{
+ clientSecret: string;
+ clientId: string;
+ hasGithubEnterprise: boolean;
+ enterpriseInstanceUrl?: string;
+ }>([
+ {
+ type: 'input',
+ name: 'clientSecret',
+ message: 'What is your Client Secret?',
+ // TODO(eide): Is there another way to validate?
+ // validate(input) {
+ // if (/([a-f0-9]{40})/g.test(input)) {
+ // return true;
+ // }
+
+ // throw Error('Please provide a valid client secret.');
+ // },
+ },
+ {
+ type: 'input',
+ name: 'clientId',
+ message: 'What is your Client Id?',
+ },
+ {
+ type: 'confirm',
+ name: 'hasGithubEnterprise',
+ message: 'Are you using Github Enterprise?',
+ },
+ {
+ type: 'input',
+ name: 'enterpriseInstanceUrl',
+ message: 'What is your URL for Github Enterprise?',
+ when: ({ hasGithubEnterprise }) => hasGithubEnterprise,
+ validate(input: string) {
+ return Boolean(new URL(input));
+ },
+ },
+ ]);
+
+ return {
+ auth: {
+ providers: {
+ github: {
+ clientId: useEnvForSecrets
+ ? '${AUTH_GITHUB_CLIENT_ID}'
+ : answers.clientId,
+ clientSecret: useEnvForSecrets
+ ? '${AUTH_GITHUB_CLIENT_SECRET}'
+ : answers.clientSecret,
+ ...(answers.hasGithubEnterprise && {
+ enterpriseInstanceUrl: answers.enterpriseInstanceUrl,
+ }),
+ },
+ },
+ },
+ };
+};
From e1754adefa7f34b67d47bfe4b8f504177dbf6540 Mon Sep 17 00:00:00 2001
From: Marcus Eide
Date: Thu, 9 Feb 2023 14:38:42 +0100
Subject: [PATCH 052/177] cli: Set admin command to hidden
Signed-off-by: Marcus Eide
---
packages/cli/src/commands/index.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts
index 2baf1aac9b..df0689b4b5 100644
--- a/packages/cli/src/commands/index.ts
+++ b/packages/cli/src/commands/index.ts
@@ -27,7 +27,7 @@ const configOption = [
export function registerAdminCommand(program: Command) {
program
- .command('admin')
+ .command('admin', { hidden: true })
.description('Get help setting up your Backstage App.')
.action(lazy(() => import('./admin').then(m => m.command)));
}
From 29534d24534c5aa37ed3b3b2e27fbee4b8b1d15c Mon Sep 17 00:00:00 2001
From: Philipp Hugenroth
Date: Thu, 9 Feb 2023 17:37:44 +0100
Subject: [PATCH 053/177] Add gh-auth
Signed-off-by: Philipp Hugenroth
---
packages/cli/src/commands/admin/gh-auth.ts | 30 +++++++++++++++++++
.../GithubCreateAppServer.ts | 5 +++-
.../src/commands/create-github-app/index.ts | 1 +
3 files changed, 35 insertions(+), 1 deletion(-)
create mode 100644 packages/cli/src/commands/admin/gh-auth.ts
diff --git a/packages/cli/src/commands/admin/gh-auth.ts b/packages/cli/src/commands/admin/gh-auth.ts
new file mode 100644
index 0000000000..da3036d087
--- /dev/null
+++ b/packages/cli/src/commands/admin/gh-auth.ts
@@ -0,0 +1,30 @@
+/*
+ * 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 chalk from 'chalk';
+import inquirer from 'inquirer';
+import createGithubApp from '../create-github-app';
+
+export default async () => {
+ // TODO: Make the GitHub Org optional
+ const input = await inquirer.prompt<{ org: string }>([
+ {
+ type: 'input',
+ name: 'org',
+ message: chalk.blue('Enter a GitHub Org [required]'),
+ },
+ ]);
+ await createGithubApp(input.org);
+};
diff --git a/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts b/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
index 70b8c0ca53..ca5eb2c02a 100644
--- a/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
+++ b/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
@@ -117,8 +117,11 @@ export class GithubCreateAppServer {
...(this.permissions.includes('members') && { members: 'read' }),
...(this.permissions.includes('read') && { contents: 'read' }),
...(this.permissions.includes('write') && {
+ administration: 'write',
contents: 'write',
- actions: 'write',
+ pull_requests: 'write',
+ issues: 'write',
+ workflows: 'write',
}),
},
name: 'Backstage-',
diff --git a/packages/cli/src/commands/create-github-app/index.ts b/packages/cli/src/commands/create-github-app/index.ts
index 6b3e732f18..e04e39fdf6 100644
--- a/packages/cli/src/commands/create-github-app/index.ts
+++ b/packages/cli/src/commands/create-github-app/index.ts
@@ -26,6 +26,7 @@ import openBrowser from 'react-dev-utils/openBrowser';
// due to lacking support for creating apps from manifests.
// https://docs.github.com/en/free-pro-team@latest/developers/apps/creating-a-github-app-from-a-manifest
export default async (org: string) => {
+ // Why is the Org check not done here?
const answers: Answers = await inquirer.prompt({
name: 'appType',
type: 'checkbox',
From 250fb2af40eb01e96d58235460963a54bb8090a9 Mon Sep 17 00:00:00 2001
From: Philipp Hugenroth
Date: Fri, 10 Feb 2023 13:43:16 +0100
Subject: [PATCH 054/177] Add GHA option to auth flow
Signed-off-by: Philipp Hugenroth
---
packages/cli/src/commands/admin/command.ts | 26 ++-
packages/cli/src/commands/admin/gh-auth.ts | 7 +-
.../GithubCreateAppServer.ts | 2 +-
.../src/commands/create-github-app/index.ts | 160 +++++++++++++-----
4 files changed, 141 insertions(+), 54 deletions(-)
diff --git a/packages/cli/src/commands/admin/command.ts b/packages/cli/src/commands/admin/command.ts
index 5e8256c14f..d7ea348571 100644
--- a/packages/cli/src/commands/admin/command.ts
+++ b/packages/cli/src/commands/admin/command.ts
@@ -19,6 +19,7 @@ import inquirer from 'inquirer';
import { Task } from '../../lib/tasks';
import { github } from './github';
import { updateConfigFile, updateEnvFile } from './file';
+import ghAuth from './gh-auth';
export async function command(): Promise {
const answers = await inquirer.prompt<{
@@ -44,7 +45,7 @@ export async function command(): Promise {
type: 'list',
name: 'provider',
message: 'Please select a provider:',
- choices: ['github'],
+ choices: ['GitHub OAuth', 'GitHub App'],
when: ({ shouldSetupAuth }) => shouldSetupAuth,
},
]);
@@ -59,9 +60,10 @@ export async function command(): Promise {
process.exit(1);
}
+ const { useEnvForSecrets } = answers;
+
switch (answers.provider) {
- case 'github': {
- const { useEnvForSecrets } = answers;
+ case 'GitHub OAuth': {
const config = await github(useEnvForSecrets);
await updateConfigFile(config);
if (useEnvForSecrets) {
@@ -69,6 +71,24 @@ export async function command(): Promise {
}
break;
}
+ case 'GitHub App': {
+ const config = await ghAuth();
+ // TODO(tudi2d): Also change integrations
+ if (useEnvForSecrets) {
+ await updateEnvFile({
+ auth: config.auth,
+ });
+ config.auth.providers.github.clientId = '${AUTH_GITHUB_CLIENT_ID}';
+ config.auth.providers.github.clientSecret =
+ '${AUTH_GITHUB_CLIENT_SECRET}';
+ await updateConfigFile({
+ auth: config.auth,
+ });
+ } else {
+ await updateConfigFile({ auth: config.auth });
+ }
+ break;
+ }
default:
throw new Error(`Provider ${answers.provider} not implemented yet.`);
}
diff --git a/packages/cli/src/commands/admin/gh-auth.ts b/packages/cli/src/commands/admin/gh-auth.ts
index da3036d087..ee5bbfb2c6 100644
--- a/packages/cli/src/commands/admin/gh-auth.ts
+++ b/packages/cli/src/commands/admin/gh-auth.ts
@@ -15,10 +15,11 @@
*/
import chalk from 'chalk';
import inquirer from 'inquirer';
-import createGithubApp from '../create-github-app';
+import { adminCli } from '../create-github-app';
+// TODO(tudi2d): Wrapper for admin CLI around `create-github-app` - potentially to be removed
export default async () => {
- // TODO: Make the GitHub Org optional
+ // TODO(tudi2d): Make the GitHub Org optional
const input = await inquirer.prompt<{ org: string }>([
{
type: 'input',
@@ -26,5 +27,5 @@ export default async () => {
message: chalk.blue('Enter a GitHub Org [required]'),
},
]);
- await createGithubApp(input.org);
+ return await adminCli(input.org);
};
diff --git a/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts b/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
index ca5eb2c02a..cb2613c691 100644
--- a/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
+++ b/packages/cli/src/commands/create-github-app/GithubCreateAppServer.ts
@@ -33,7 +33,7 @@ const FORM_PAGE = `