From e20346c25c7c08a494a1198adbf9fe075135b4dd Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Tue, 28 Feb 2023 09:22:07 -0500 Subject: [PATCH 001/114] add types to function signatures Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- packages/config-loader/src/loader.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/config-loader/src/loader.ts b/packages/config-loader/src/loader.ts index f5ce0eb80c..69b0e04b86 100644 --- a/packages/config-loader/src/loader.ts +++ b/packages/config-loader/src/loader.ts @@ -139,8 +139,11 @@ export async function loadConfig( const env = envFunc ?? (async (name: string) => process.env[name]); - const loadConfigFiles = async () => { - const fileConfigs = []; + const loadConfigFiles = async (): Promise<{ + fileConfigs: AppConfig[]; + loadedPaths: Set; + }> => { + const fileConfigs: AppConfig[] = []; const loadedPaths = new Set(); for (const configPath of configPaths) { @@ -176,7 +179,7 @@ export async function loadConfig( return { fileConfigs, loadedPaths }; }; - const loadRemoteConfigFiles = async () => { + const loadRemoteConfigFiles = async (): Promise => { const configs: AppConfig[] = []; const readConfigFromUrl = async (url: string) => { From 15d0bb68e5bf1332234f248af4ec1124378f6d43 Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Tue, 28 Feb 2023 09:26:48 -0500 Subject: [PATCH 002/114] allow configs to be passed directly to loadBackendConfig Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- .../src/config/ObservableConfigProxy.ts | 9 ++- packages/backend-app-api/src/config/config.ts | 6 +- packages/types/src/index.ts | 1 + packages/types/src/json.ts | 58 +++++++++++++++++++ 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/packages/backend-app-api/src/config/ObservableConfigProxy.ts b/packages/backend-app-api/src/config/ObservableConfigProxy.ts index dd3334c9a5..485dc60901 100644 --- a/packages/backend-app-api/src/config/ObservableConfigProxy.ts +++ b/packages/backend-app-api/src/config/ObservableConfigProxy.ts @@ -16,7 +16,8 @@ import { ConfigService } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; -import { JsonValue } from '@backstage/types'; +import type { JsonObject, JsonValue } from '@backstage/types'; +import { mergeJson } from '@backstage/types'; export class ObservableConfigProxy implements ConfigService { private config: ConfigService = new ConfigReader({}); @@ -61,6 +62,12 @@ export class ObservableConfigProxy implements ConfigService { }, }; } + mergeConfig(configData: JsonObject) { + if (this.parent) { + throw new Error('immutable'); + } + this.setConfig(new ConfigReader(mergeJson(this.config.get(), configData))); + } private select(required: true): ConfigService; private select(required: false): ConfigService | undefined; diff --git a/packages/backend-app-api/src/config/config.ts b/packages/backend-app-api/src/config/config.ts index d3349b41ef..50da0d78b6 100644 --- a/packages/backend-app-api/src/config/config.ts +++ b/packages/backend-app-api/src/config/config.ts @@ -24,10 +24,11 @@ import { ConfigTarget, LoadConfigOptionsRemote, } from '@backstage/config-loader'; -import { Config, ConfigReader } from '@backstage/config'; +import { type Config, ConfigReader } from '@backstage/config'; import { getPackages } from '@manypkg/get-packages'; import { ObservableConfigProxy } from './ObservableConfigProxy'; import { isValidUrl } from '../lib/urls'; +import type { JsonObject } from '@backstage/types'; /** @public */ export async function createConfigSecretEnumerator(options: { @@ -70,6 +71,7 @@ export async function createConfigSecretEnumerator(options: { export async function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; + config?: JsonObject; }): Promise<{ config: Config }> { const args = parseArgs(options.argv); @@ -109,12 +111,12 @@ export async function loadBackendConfig(options: { }), }, }); - console.info( `Loaded config from ${appConfigs.map(c => c.context).join(', ')}`, ); config.setConfig(ConfigReader.fromConfigs(appConfigs)); + config.mergeConfig(options.config ?? {}); return { config }; } diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 0b5c8689b3..52b0b03622 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -21,5 +21,6 @@ */ export type { JsonArray, JsonObject, JsonPrimitive, JsonValue } from './json'; +export { mergeJson } from './json'; export type { Observable, Observer, Subscription } from './observable'; export type { HumanDuration } from './time'; diff --git a/packages/types/src/json.ts b/packages/types/src/json.ts index bcbaaa1030..1bfe0c543f 100644 --- a/packages/types/src/json.ts +++ b/packages/types/src/json.ts @@ -41,3 +41,61 @@ export interface JsonArray extends Array {} * @public */ export type JsonValue = JsonObject | JsonArray | JsonPrimitive; + +/** + * Attempts to merge two JsonObjects together. In the case of collisions, this function + * prefers values from b, unless the value is an object, in which case it recursively + * merges the values. + * + * @param a The base object + * @param b The object to merge into a + * @returns The merged object + */ +export const mergeJson = (a: JsonObject, b: JsonObject): JsonObject => { + const final: JsonObject = {}; + const bKeys = new Set(Object.keys(b)); + const aKeys = new Set(Object.keys(a)); + const intersectingKeys = new Set([...aKeys].filter(x => bKeys.has(x))); + + // add all mutually exclusive keys to the final object + for (const key of aKeys.values()) { + if (!intersectingKeys.has(key)) { + final[key] = a[key]; + continue; + } + } + for (const key of bKeys.values()) { + if (!intersectingKeys.has(key)) { + final[key] = b[key]; + continue; + } + } + + // values now are all overlapping and are either primitives, arrays, or objects. + // for all primitives and arrays, we want to assign the value from b + // for all objects, we want to recursively merge the values + for (const key of intersectingKeys.values()) { + // check if value is an array or primitive + const value = b[key]; + if (Array.isArray(value) || typeof value !== 'object') { + final[key] = value; + continue; + } + + // check if either value is undefined and default to the defined one + const aValue = a[key]; + const bValue = b[key]; + if (!aValue) { + final[key] = bValue; + continue; + } + if (!bValue) { + final[key] = aValue; + continue; + } + + // recursively merge the values + final[key] = mergeJson(aValue as JsonObject, bValue as JsonObject); + } + return final; +}; From e504c73555c770a898c8df3f7be88548ee948c87 Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Wed, 1 Mar 2023 14:02:17 -0500 Subject: [PATCH 003/114] test merging json objects Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- .changeset/spotty-cougars-wink.md | 7 ++ packages/backend-app-api/api-report.md | 1 + packages/types/api-report.md | 3 + packages/types/src/json.test.ts | 94 +++++++++++++++++++++++++- packages/types/src/json.ts | 5 +- 5 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 .changeset/spotty-cougars-wink.md diff --git a/.changeset/spotty-cougars-wink.md b/.changeset/spotty-cougars-wink.md new file mode 100644 index 0000000000..4e8b97a164 --- /dev/null +++ b/.changeset/spotty-cougars-wink.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-app-api': minor +'@backstage/config-loader': minor +'@backstage/types': minor +--- + +Introduces the ability to merge configs and JsonObjects diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index e99135b3ec..ed84730fc0 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -178,6 +178,7 @@ export const lifecycleServiceFactory: () => ServiceFactory< export function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; + config?: JsonObject; }): Promise<{ config: Config; }>; diff --git a/packages/types/api-report.md b/packages/types/api-report.md index 4b43f5daa6..e0b34203cf 100644 --- a/packages/types/api-report.md +++ b/packages/types/api-report.md @@ -29,6 +29,9 @@ export type JsonPrimitive = number | string | boolean | null; // @public export type JsonValue = JsonObject | JsonArray | JsonPrimitive; +// @public +export const mergeJson: (a: JsonObject, b: JsonObject) => JsonObject; + // @public export type Observable = { [Symbol.observable](): Observable; diff --git a/packages/types/src/json.test.ts b/packages/types/src/json.test.ts index 7da0ef8a3e..277992f00f 100644 --- a/packages/types/src/json.test.ts +++ b/packages/types/src/json.test.ts @@ -14,7 +14,13 @@ * limitations under the License. */ -import { JsonPrimitive, JsonArray, JsonObject, JsonValue } from './json'; +import { + JsonPrimitive, + JsonArray, + JsonObject, + JsonValue, + mergeJson, +} from './json'; describe('json', () => { it('JsonPrimitive', () => { @@ -79,3 +85,89 @@ describe('json', () => { expect(true).toBe(true); }); }); + +describe('jsonMerge', () => { + it('should merge two objects', () => { + const obj1 = { a: 1, b: 2, c: 3 }; + const obj2 = { b: 4, c: 5, d: 6 }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual({ a: 1, b: 4, c: 5, d: 6 }); + }); + + it('should always prefer to merge the values of the second parameter', () => { + const obj1 = { + a: 1, + b: [1, 2, 3], + c: { + z: 1, + y: 2, + x: 3, + }, + }; + const obj2 = { + a: 2, + b: [2, 4, 6], + c: { + z: 2, + y: 4, + x: 6, + }, + }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual(obj2); + }); + + it('should prefer the second argument whenever keys collide', () => { + const obj1 = { + a: 1, + b: [1, 2, 3], + c: { + z: 1, + y: 2, + x: 3, + }, + }; + const obj2 = { + a: 2, + c: { + y: 4, + }, + }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual({ + a: 2, + b: [1, 2, 3], + c: { + z: 1, + y: 4, + x: 3, + }, + }); + }); + + it('should merge recursively', () => { + const obj1 = { + backend: { + database: { + provider: 'sqlite3', + }, + }, + }; + const obj2 = { + backend: { + database: { + password: 'password123', + }, + }, + }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual({ + backend: { + database: { + provider: 'sqlite3', + password: 'password123', + }, + }, + }); + }); +}); diff --git a/packages/types/src/json.ts b/packages/types/src/json.ts index 1bfe0c543f..4b0bb958ef 100644 --- a/packages/types/src/json.ts +++ b/packages/types/src/json.ts @@ -47,9 +47,10 @@ export type JsonValue = JsonObject | JsonArray | JsonPrimitive; * prefers values from b, unless the value is an object, in which case it recursively * merges the values. * - * @param a The base object - * @param b The object to merge into a + * @param a - The base object + * @param b - The object to merge into a * @returns The merged object + * @public */ export const mergeJson = (a: JsonObject, b: JsonObject): JsonObject => { const final: JsonObject = {}; From bf828dea7f5b7e22f0eeeeba12769f04b9f9075e Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Thu, 2 Mar 2023 09:07:09 -0500 Subject: [PATCH 004/114] test merging arrays and undefined objects Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- packages/types/src/json.test.ts | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/types/src/json.test.ts b/packages/types/src/json.test.ts index 277992f00f..1210d0a773 100644 --- a/packages/types/src/json.test.ts +++ b/packages/types/src/json.test.ts @@ -170,4 +170,39 @@ describe('jsonMerge', () => { }, }); }); + + it("should overwrite the array with the second argument's array", () => { + const obj1 = { + array: ['a', 'b', 'c'], + }; + const obj2 = { + array: [1, 2, 3], + }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual({ + array: [1, 2, 3], + }); + + const merged2 = mergeJson(obj2, obj1); + expect(merged2).toEqual({ + array: ['a', 'b', 'c'], + }); + }); + + it('should take only the defined value in the case of a collision', () => { + const obj1 = { + sqlite: undefined, + }; + const obj2 = { + sqlite: 'sqlite3', + }; + const merged = mergeJson(obj1, obj2); + expect(merged).toEqual({ + sqlite: 'sqlite3', + }); + const merged2 = mergeJson(obj2, obj1); + expect(merged2).toEqual({ + sqlite: 'sqlite3', + }); + }); }); From 1fbb7e68077b754bbd9b863936e12622d3a313fa Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Thu, 2 Mar 2023 09:34:00 -0500 Subject: [PATCH 005/114] make sure undefined valeus are weeded out first Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- packages/types/src/json.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/types/src/json.ts b/packages/types/src/json.ts index 4b0bb958ef..46b5cf9499 100644 --- a/packages/types/src/json.ts +++ b/packages/types/src/json.ts @@ -76,13 +76,6 @@ export const mergeJson = (a: JsonObject, b: JsonObject): JsonObject => { // for all primitives and arrays, we want to assign the value from b // for all objects, we want to recursively merge the values for (const key of intersectingKeys.values()) { - // check if value is an array or primitive - const value = b[key]; - if (Array.isArray(value) || typeof value !== 'object') { - final[key] = value; - continue; - } - // check if either value is undefined and default to the defined one const aValue = a[key]; const bValue = b[key]; @@ -95,6 +88,13 @@ export const mergeJson = (a: JsonObject, b: JsonObject): JsonObject => { continue; } + // check if value is an array or primitive + const value = bValue; + if (Array.isArray(value) || typeof value !== 'object') { + final[key] = value; + continue; + } + // recursively merge the values final[key] = mergeJson(aValue as JsonObject, bValue as JsonObject); } From 5c7ce5858247eefef610a69c3dec80a5db48eae2 Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Wed, 8 Mar 2023 10:07:01 -0500 Subject: [PATCH 006/114] allow an additional config to be provided to loadBackendConfig during runtime Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- .changeset/curly-steaks-mate.md | 7 + .changeset/spotty-cougars-wink.md | 1 - packages/backend-app-api/api-report.md | 3 +- .../src/config/ObservableConfigProxy.ts | 9 +- packages/backend-app-api/src/config/config.ts | 12 +- packages/backend-common/api-report.md | 3 + packages/backend-common/src/config.ts | 3 +- packages/types/api-report.md | 3 - packages/types/src/index.ts | 1 - packages/types/src/json.test.ts | 129 +----------------- packages/types/src/json.ts | 59 -------- 11 files changed, 24 insertions(+), 206 deletions(-) create mode 100644 .changeset/curly-steaks-mate.md diff --git a/.changeset/curly-steaks-mate.md b/.changeset/curly-steaks-mate.md new file mode 100644 index 0000000000..6f32f27a6d --- /dev/null +++ b/.changeset/curly-steaks-mate.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-app-api': minor +'@backstage/backend-common': minor +'@backstage/config-loader': minor +--- + +Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. diff --git a/.changeset/spotty-cougars-wink.md b/.changeset/spotty-cougars-wink.md index 4e8b97a164..ca3effe724 100644 --- a/.changeset/spotty-cougars-wink.md +++ b/.changeset/spotty-cougars-wink.md @@ -1,7 +1,6 @@ --- '@backstage/backend-app-api': minor '@backstage/config-loader': minor -'@backstage/types': minor --- Introduces the ability to merge configs and JsonObjects diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index ed84730fc0..6ef023333b 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -5,6 +5,7 @@ ```ts /// +import type { AppConfig } from '@backstage/config'; import { BackendFeature } from '@backstage/backend-plugin-api'; import { CacheClient } from '@backstage/backend-common'; import { Config } from '@backstage/config'; @@ -178,7 +179,7 @@ export const lifecycleServiceFactory: () => ServiceFactory< export function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; - config?: JsonObject; + additionalConfig?: AppConfig; }): Promise<{ config: Config; }>; diff --git a/packages/backend-app-api/src/config/ObservableConfigProxy.ts b/packages/backend-app-api/src/config/ObservableConfigProxy.ts index 485dc60901..8e0ad218e9 100644 --- a/packages/backend-app-api/src/config/ObservableConfigProxy.ts +++ b/packages/backend-app-api/src/config/ObservableConfigProxy.ts @@ -16,8 +16,7 @@ import { ConfigService } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; -import type { JsonObject, JsonValue } from '@backstage/types'; -import { mergeJson } from '@backstage/types'; +import type { JsonValue } from '@backstage/types'; export class ObservableConfigProxy implements ConfigService { private config: ConfigService = new ConfigReader({}); @@ -62,12 +61,6 @@ export class ObservableConfigProxy implements ConfigService { }, }; } - mergeConfig(configData: JsonObject) { - if (this.parent) { - throw new Error('immutable'); - } - this.setConfig(new ConfigReader(mergeJson(this.config.get(), configData))); - } private select(required: true): ConfigService; private select(required: false): ConfigService | undefined; diff --git a/packages/backend-app-api/src/config/config.ts b/packages/backend-app-api/src/config/config.ts index 50da0d78b6..668226e8b2 100644 --- a/packages/backend-app-api/src/config/config.ts +++ b/packages/backend-app-api/src/config/config.ts @@ -24,11 +24,11 @@ import { ConfigTarget, LoadConfigOptionsRemote, } from '@backstage/config-loader'; -import { type Config, ConfigReader } from '@backstage/config'; +import { ConfigReader } from '@backstage/config'; +import type { Config, AppConfig } from '@backstage/config'; import { getPackages } from '@manypkg/get-packages'; import { ObservableConfigProxy } from './ObservableConfigProxy'; import { isValidUrl } from '../lib/urls'; -import type { JsonObject } from '@backstage/types'; /** @public */ export async function createConfigSecretEnumerator(options: { @@ -71,7 +71,7 @@ export async function createConfigSecretEnumerator(options: { export async function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; - config?: JsonObject; + additionalConfig?: AppConfig; }): Promise<{ config: Config }> { const args = parseArgs(options.argv); @@ -115,8 +115,12 @@ export async function loadBackendConfig(options: { `Loaded config from ${appConfigs.map(c => c.context).join(', ')}`, ); + // add the additional config if provided + if (options.additionalConfig) { + appConfigs.push(options.additionalConfig); + } + config.setConfig(ConfigReader.fromConfigs(appConfigs)); - config.mergeConfig(options.config ?? {}); return { config }; } diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index ebdd7315c9..a37b5874a3 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -7,6 +7,8 @@ /// import { AwsCredentialsManager } from '@backstage/integration-aws-node'; +import type { AppConfig } from '@backstage/config'; +import aws from 'aws-sdk'; import { AwsS3Integration } from '@backstage/integration'; import { AzureIntegration } from '@backstage/integration'; import { BackendFeature } from '@backstage/backend-plugin-api'; @@ -532,6 +534,7 @@ export const legacyPlugin: ( export function loadBackendConfig(options: { logger: LoggerService; remote?: LoadConfigOptionsRemote; + additionalConfig?: AppConfig; argv: string[]; }): Promise; diff --git a/packages/backend-common/src/config.ts b/packages/backend-common/src/config.ts index dd96a6b46a..47316cfd6e 100644 --- a/packages/backend-common/src/config.ts +++ b/packages/backend-common/src/config.ts @@ -19,7 +19,7 @@ import { loadBackendConfig as newLoadBackendConfig, } from '@backstage/backend-app-api'; import { LoggerService } from '@backstage/backend-plugin-api'; -import { Config } from '@backstage/config'; +import type { AppConfig, Config } from '@backstage/config'; import { LoadConfigOptionsRemote } from '@backstage/config-loader'; import { setRootLoggerRedactionList } from './logging/createRootLogger'; @@ -34,6 +34,7 @@ export async function loadBackendConfig(options: { logger: LoggerService; // process.argv or any other overrides remote?: LoadConfigOptionsRemote; + additionalConfig?: AppConfig; argv: string[]; }): Promise { const secretEnumerator = await createConfigSecretEnumerator({ diff --git a/packages/types/api-report.md b/packages/types/api-report.md index e0b34203cf..4b43f5daa6 100644 --- a/packages/types/api-report.md +++ b/packages/types/api-report.md @@ -29,9 +29,6 @@ export type JsonPrimitive = number | string | boolean | null; // @public export type JsonValue = JsonObject | JsonArray | JsonPrimitive; -// @public -export const mergeJson: (a: JsonObject, b: JsonObject) => JsonObject; - // @public export type Observable = { [Symbol.observable](): Observable; diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 52b0b03622..0b5c8689b3 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -21,6 +21,5 @@ */ export type { JsonArray, JsonObject, JsonPrimitive, JsonValue } from './json'; -export { mergeJson } from './json'; export type { Observable, Observer, Subscription } from './observable'; export type { HumanDuration } from './time'; diff --git a/packages/types/src/json.test.ts b/packages/types/src/json.test.ts index 1210d0a773..7da0ef8a3e 100644 --- a/packages/types/src/json.test.ts +++ b/packages/types/src/json.test.ts @@ -14,13 +14,7 @@ * limitations under the License. */ -import { - JsonPrimitive, - JsonArray, - JsonObject, - JsonValue, - mergeJson, -} from './json'; +import { JsonPrimitive, JsonArray, JsonObject, JsonValue } from './json'; describe('json', () => { it('JsonPrimitive', () => { @@ -85,124 +79,3 @@ describe('json', () => { expect(true).toBe(true); }); }); - -describe('jsonMerge', () => { - it('should merge two objects', () => { - const obj1 = { a: 1, b: 2, c: 3 }; - const obj2 = { b: 4, c: 5, d: 6 }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual({ a: 1, b: 4, c: 5, d: 6 }); - }); - - it('should always prefer to merge the values of the second parameter', () => { - const obj1 = { - a: 1, - b: [1, 2, 3], - c: { - z: 1, - y: 2, - x: 3, - }, - }; - const obj2 = { - a: 2, - b: [2, 4, 6], - c: { - z: 2, - y: 4, - x: 6, - }, - }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual(obj2); - }); - - it('should prefer the second argument whenever keys collide', () => { - const obj1 = { - a: 1, - b: [1, 2, 3], - c: { - z: 1, - y: 2, - x: 3, - }, - }; - const obj2 = { - a: 2, - c: { - y: 4, - }, - }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual({ - a: 2, - b: [1, 2, 3], - c: { - z: 1, - y: 4, - x: 3, - }, - }); - }); - - it('should merge recursively', () => { - const obj1 = { - backend: { - database: { - provider: 'sqlite3', - }, - }, - }; - const obj2 = { - backend: { - database: { - password: 'password123', - }, - }, - }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual({ - backend: { - database: { - provider: 'sqlite3', - password: 'password123', - }, - }, - }); - }); - - it("should overwrite the array with the second argument's array", () => { - const obj1 = { - array: ['a', 'b', 'c'], - }; - const obj2 = { - array: [1, 2, 3], - }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual({ - array: [1, 2, 3], - }); - - const merged2 = mergeJson(obj2, obj1); - expect(merged2).toEqual({ - array: ['a', 'b', 'c'], - }); - }); - - it('should take only the defined value in the case of a collision', () => { - const obj1 = { - sqlite: undefined, - }; - const obj2 = { - sqlite: 'sqlite3', - }; - const merged = mergeJson(obj1, obj2); - expect(merged).toEqual({ - sqlite: 'sqlite3', - }); - const merged2 = mergeJson(obj2, obj1); - expect(merged2).toEqual({ - sqlite: 'sqlite3', - }); - }); -}); diff --git a/packages/types/src/json.ts b/packages/types/src/json.ts index 46b5cf9499..bcbaaa1030 100644 --- a/packages/types/src/json.ts +++ b/packages/types/src/json.ts @@ -41,62 +41,3 @@ export interface JsonArray extends Array {} * @public */ export type JsonValue = JsonObject | JsonArray | JsonPrimitive; - -/** - * Attempts to merge two JsonObjects together. In the case of collisions, this function - * prefers values from b, unless the value is an object, in which case it recursively - * merges the values. - * - * @param a - The base object - * @param b - The object to merge into a - * @returns The merged object - * @public - */ -export const mergeJson = (a: JsonObject, b: JsonObject): JsonObject => { - const final: JsonObject = {}; - const bKeys = new Set(Object.keys(b)); - const aKeys = new Set(Object.keys(a)); - const intersectingKeys = new Set([...aKeys].filter(x => bKeys.has(x))); - - // add all mutually exclusive keys to the final object - for (const key of aKeys.values()) { - if (!intersectingKeys.has(key)) { - final[key] = a[key]; - continue; - } - } - for (const key of bKeys.values()) { - if (!intersectingKeys.has(key)) { - final[key] = b[key]; - continue; - } - } - - // values now are all overlapping and are either primitives, arrays, or objects. - // for all primitives and arrays, we want to assign the value from b - // for all objects, we want to recursively merge the values - for (const key of intersectingKeys.values()) { - // check if either value is undefined and default to the defined one - const aValue = a[key]; - const bValue = b[key]; - if (!aValue) { - final[key] = bValue; - continue; - } - if (!bValue) { - final[key] = aValue; - continue; - } - - // check if value is an array or primitive - const value = bValue; - if (Array.isArray(value) || typeof value !== 'object') { - final[key] = value; - continue; - } - - // recursively merge the values - final[key] = mergeJson(aValue as JsonObject, bValue as JsonObject); - } - return final; -}; From 3ca229276dcd69134d204b8eee5d04d59b302cdf Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Wed, 8 Mar 2023 14:10:36 -0500 Subject: [PATCH 007/114] allow a list of AppConfigs to be supplied at runtime Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- .changeset/spotty-cougars-wink.md | 6 ------ packages/backend-app-api/api-report.md | 2 +- .../backend-app-api/src/config/ObservableConfigProxy.ts | 2 +- packages/backend-app-api/src/config/config.ts | 8 +++----- packages/backend-common/api-report.md | 3 +-- packages/backend-common/src/config.ts | 2 +- packages/config-loader/src/loader.ts | 9 +++------ 7 files changed, 10 insertions(+), 22 deletions(-) delete mode 100644 .changeset/spotty-cougars-wink.md diff --git a/.changeset/spotty-cougars-wink.md b/.changeset/spotty-cougars-wink.md deleted file mode 100644 index ca3effe724..0000000000 --- a/.changeset/spotty-cougars-wink.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-app-api': minor -'@backstage/config-loader': minor ---- - -Introduces the ability to merge configs and JsonObjects diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 6ef023333b..90b76ffb64 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -179,7 +179,7 @@ export const lifecycleServiceFactory: () => ServiceFactory< export function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; - additionalConfig?: AppConfig; + additionalConfigs?: AppConfig[]; }): Promise<{ config: Config; }>; diff --git a/packages/backend-app-api/src/config/ObservableConfigProxy.ts b/packages/backend-app-api/src/config/ObservableConfigProxy.ts index 8e0ad218e9..dd3334c9a5 100644 --- a/packages/backend-app-api/src/config/ObservableConfigProxy.ts +++ b/packages/backend-app-api/src/config/ObservableConfigProxy.ts @@ -16,7 +16,7 @@ import { ConfigService } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; -import type { JsonValue } from '@backstage/types'; +import { JsonValue } from '@backstage/types'; export class ObservableConfigProxy implements ConfigService { private config: ConfigService = new ConfigReader({}); diff --git a/packages/backend-app-api/src/config/config.ts b/packages/backend-app-api/src/config/config.ts index 668226e8b2..a2a6f8de9e 100644 --- a/packages/backend-app-api/src/config/config.ts +++ b/packages/backend-app-api/src/config/config.ts @@ -71,7 +71,7 @@ export async function createConfigSecretEnumerator(options: { export async function loadBackendConfig(options: { remote?: LoadConfigOptionsRemote; argv: string[]; - additionalConfig?: AppConfig; + additionalConfigs?: AppConfig[]; }): Promise<{ config: Config }> { const args = parseArgs(options.argv); @@ -115,11 +115,9 @@ export async function loadBackendConfig(options: { `Loaded config from ${appConfigs.map(c => c.context).join(', ')}`, ); - // add the additional config if provided - if (options.additionalConfig) { - appConfigs.push(options.additionalConfig); + if (options.additionalConfigs) { + appConfigs.push(...options.additionalConfigs); } - config.setConfig(ConfigReader.fromConfigs(appConfigs)); return { config }; diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index a37b5874a3..b1dad254f9 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -6,9 +6,8 @@ /// /// +import { AppConfig } from '@backstage/config'; import { AwsCredentialsManager } from '@backstage/integration-aws-node'; -import type { AppConfig } from '@backstage/config'; -import aws from 'aws-sdk'; import { AwsS3Integration } from '@backstage/integration'; import { AzureIntegration } from '@backstage/integration'; import { BackendFeature } from '@backstage/backend-plugin-api'; diff --git a/packages/backend-common/src/config.ts b/packages/backend-common/src/config.ts index 47316cfd6e..cc824c47fd 100644 --- a/packages/backend-common/src/config.ts +++ b/packages/backend-common/src/config.ts @@ -19,7 +19,7 @@ import { loadBackendConfig as newLoadBackendConfig, } from '@backstage/backend-app-api'; import { LoggerService } from '@backstage/backend-plugin-api'; -import type { AppConfig, Config } from '@backstage/config'; +import { AppConfig, Config } from '@backstage/config'; import { LoadConfigOptionsRemote } from '@backstage/config-loader'; import { setRootLoggerRedactionList } from './logging/createRootLogger'; diff --git a/packages/config-loader/src/loader.ts b/packages/config-loader/src/loader.ts index 69b0e04b86..f5ce0eb80c 100644 --- a/packages/config-loader/src/loader.ts +++ b/packages/config-loader/src/loader.ts @@ -139,11 +139,8 @@ export async function loadConfig( const env = envFunc ?? (async (name: string) => process.env[name]); - const loadConfigFiles = async (): Promise<{ - fileConfigs: AppConfig[]; - loadedPaths: Set; - }> => { - const fileConfigs: AppConfig[] = []; + const loadConfigFiles = async () => { + const fileConfigs = []; const loadedPaths = new Set(); for (const configPath of configPaths) { @@ -179,7 +176,7 @@ export async function loadConfig( return { fileConfigs, loadedPaths }; }; - const loadRemoteConfigFiles = async (): Promise => { + const loadRemoteConfigFiles = async () => { const configs: AppConfig[] = []; const readConfigFromUrl = async (url: string) => { From ffbfcd1ab7ed0ea872f5e13d6b80e5176522004d Mon Sep 17 00:00:00 2001 From: Oleg S <97077423+RobotSail@users.noreply.github.com> Date: Fri, 10 Mar 2023 09:59:10 -0500 Subject: [PATCH 008/114] merge additional configs with remote configs Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> --- .changeset/curly-steaks-mate.md | 1 - packages/backend-app-api/src/config/config.ts | 12 ++++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.changeset/curly-steaks-mate.md b/.changeset/curly-steaks-mate.md index 6f32f27a6d..1b41633659 100644 --- a/.changeset/curly-steaks-mate.md +++ b/.changeset/curly-steaks-mate.md @@ -1,7 +1,6 @@ --- '@backstage/backend-app-api': minor '@backstage/backend-common': minor -'@backstage/config-loader': minor --- Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. diff --git a/packages/backend-app-api/src/config/config.ts b/packages/backend-app-api/src/config/config.ts index a2a6f8de9e..7367767870 100644 --- a/packages/backend-app-api/src/config/config.ts +++ b/packages/backend-app-api/src/config/config.ts @@ -94,8 +94,11 @@ export async function loadBackendConfig(options: { console.info( `Reloaded config from ${newConfigs.map(c => c.context).join(', ')}`, ); - - config.setConfig(ConfigReader.fromConfigs(newConfigs)); + const configsToMerge = [...newConfigs]; + if (options.additionalConfigs) { + configsToMerge.push(...options.additionalConfigs); + } + config.setConfig(ConfigReader.fromConfigs(configsToMerge)); }, stopSignal: new Promise(resolve => { if (currentCancelFunc) { @@ -115,10 +118,11 @@ export async function loadBackendConfig(options: { `Loaded config from ${appConfigs.map(c => c.context).join(', ')}`, ); + const finalAppConfigs = [...appConfigs]; if (options.additionalConfigs) { - appConfigs.push(...options.additionalConfigs); + finalAppConfigs.push(...options.additionalConfigs); } - config.setConfig(ConfigReader.fromConfigs(appConfigs)); + config.setConfig(ConfigReader.fromConfigs(finalAppConfigs)); return { config }; } From 6de23c546f4091ac59f6d617fbc83b30f08c7937 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 17 Mar 2023 13:31:02 +0100 Subject: [PATCH 009/114] chore: naming conventions for github actions Signed-off-by: blam --- .../software-templates/writing-custom-actions.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 7a841dfd0e..93ea23cdbd 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -31,7 +31,7 @@ import { z } from 'zod'; export const createNewFileAction = () => { return createTemplateAction({ - id: 'mycompany:create-file', + id: 'file:create', schema: { input: z.object({ contents: z.string().describe('The contents of the file'), @@ -75,7 +75,7 @@ import { writeFile } from 'fs'; export const createNewFileAction = () => { return createTemplateAction<{ contents: string; filename: string }>({ - id: 'mycompany:create-file', + id: 'file:create', schema: { input: { required: ['contents', 'filename'], @@ -107,6 +107,17 @@ export const createNewFileAction = () => { }; ``` +#### A note on naming conventions + +Try to keep names consistent for both your own custom actions, and any actions contributed to open source. We've found that a seperation of `:` and using a verb as the last part of the name works well. +We follow `provider:entity:verb` or as close to this as possible for our built in actions. For example, `github:actions:create` or `github:repo:create`. + +Also feel free to use your company name to namespace them if you prefer too, for example `acme:file:create`. + +Prefer to use `camelCase` over `pascalCase` for these actions if possible, which leads to better reading and writing of template entity definitions. + +> We're aware that theres some exceptions to this, but try to follow as close as possible. We'll be working on migrating these in the repository over time too. + ### The context object When the action `handler` is called, we provide you a `context` as the only From 9adce708348f1d3f6534c02408301b7ef90847d3 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 17 Mar 2023 14:11:11 +0100 Subject: [PATCH 010/114] chore: fixing spelling mistake Signed-off-by: blam --- docs/features/software-templates/writing-custom-actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 93ea23cdbd..480e0dbb14 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -109,14 +109,14 @@ export const createNewFileAction = () => { #### A note on naming conventions -Try to keep names consistent for both your own custom actions, and any actions contributed to open source. We've found that a seperation of `:` and using a verb as the last part of the name works well. +Try to keep names consistent for both your own custom actions, and any actions contributed to open source. We've found that a separation of `:` and using a verb as the last part of the name works well. We follow `provider:entity:verb` or as close to this as possible for our built in actions. For example, `github:actions:create` or `github:repo:create`. Also feel free to use your company name to namespace them if you prefer too, for example `acme:file:create`. Prefer to use `camelCase` over `pascalCase` for these actions if possible, which leads to better reading and writing of template entity definitions. -> We're aware that theres some exceptions to this, but try to follow as close as possible. We'll be working on migrating these in the repository over time too. +> We're aware that there are some exceptions to this, but try to follow as close as possible. We'll be working on migrating these in the repository over time too. ### The context object From f4f50d8eef222bd07cff48d27816ec0b1ec979f8 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:01:03 +0100 Subject: [PATCH 011/114] [Playlist] feat: added dynamic group noun through the config Signed-off-by: antonio.bergas --- app-config.yaml | 4 ++ plugins/playlist/config.d.ts | 31 +++++++++++ plugins/playlist/package.json | 23 +++++++- .../CreatePlaylistButton.tsx | 14 +++-- .../EntityPlaylistDialog.tsx | 38 +++++++++++--- .../PlaylistEditDialog/PlaylistEditDialog.tsx | 13 +++-- .../PlaylistIndexPage/PlaylistIndexPage.tsx | 52 ++++++++++--------- .../components/PlaylistList/PlaylistList.tsx | 7 ++- .../PlaylistPage/PlaylistEntitiesTable.tsx | 10 ++-- .../PlaylistPage/PlaylistHeader.tsx | 5 +- plugins/playlist/src/hooks/index.ts | 1 + plugins/playlist/src/hooks/useConfig.ts | 27 ++++++++++ .../playlist/src/hooks/usePlaylistList.tsx | 2 +- 13 files changed, 181 insertions(+), 46 deletions(-) create mode 100644 plugins/playlist/config.d.ts create mode 100644 plugins/playlist/src/hooks/useConfig.ts diff --git a/app-config.yaml b/app-config.yaml index 385c9c2e0e..7b94e2fb2e 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -125,6 +125,10 @@ proxy: organization: name: My Company + +playlist: + groupPluralNoun: Collections + groupSingularNoun: Collection # Reference documentation http://backstage.io/docs/features/techdocs/configuration # Note: After experimenting with basic setup, use CI/CD to generate docs diff --git a/plugins/playlist/config.d.ts b/plugins/playlist/config.d.ts new file mode 100644 index 0000000000..5f59ffc236 --- /dev/null +++ b/plugins/playlist/config.d.ts @@ -0,0 +1,31 @@ +/* + * Copyright 2020 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 interface Config { + playlist: { + /** + * (Optional) The plural noun for the entities grouping that will shown in the UI; leave empty for `PLaylists`. + * @visibility frontend + */ + groupPluralNoun: string; + + /** + * (Optional) The singular noun for the entities grouping that will shown in the UI; leave empty for `PLaylists`. + * @visibility frontend + */ + groupSingularNoun: string; + }; +} diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 59cde3f246..bed1d654c5 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -66,5 +66,26 @@ }, "files": [ "dist" - ] + ], + "configSchema": { + "$schema": "https://backstage.io/schema/config-v1", + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "groupPluralNoun": { + "type": "string", + "description": "Frontend plural entities grouping name", + "visibility": "frontend" + }, + "groupSingularNoun": { + "type": "string", + "description": "Frontend singular entities grouping name", + "visibility": "frontend" + } + } + } + } + } } diff --git a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx index c064f28591..a615e2cb36 100644 --- a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx +++ b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx @@ -14,7 +14,12 @@ * limitations under the License. */ -import { errorApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; +import { + configApiRef, + errorApiRef, + useApi, + useRouteRef, +} from '@backstage/core-plugin-api'; import { BackstageTheme } from '@backstage/theme'; import { usePermission } from '@backstage/plugin-permission-react'; import { @@ -29,6 +34,7 @@ import { useNavigate } from 'react-router-dom'; import { playlistApiRef } from '../../api'; import { playlistRouteRef } from '../../routes'; import { PlaylistEditDialog } from '../PlaylistEditDialog'; +import { useGroupNoun } from '../../hooks/useConfig'; export const CreatePlaylistButton = () => { const navigate = useNavigate(); @@ -55,13 +61,15 @@ export const CreatePlaylistButton = () => { [errorApi, navigate, playlistApi, playlistRoute], ); + const groupSingularNounLowerCase = useGroupNoun(false, false); + return ( <> {isXSScreen ? ( setOpenDialog(true)} > @@ -74,7 +82,7 @@ export const CreatePlaylistButton = () => { color="primary" onClick={() => setOpenDialog(true)} > - Create Playlist + Create {groupSingularNounLowerCase} )} { [playlistApi], ); + const groupSingularNoun = useGroupNoun(true, false); + const groupSingularNounLowerCase = useGroupNoun(false, true); + const groupPluralNounLowerCase = useGroupNoun(true, true); + useEffect(() => { if (open) { loadPlaylists(); @@ -120,12 +130,19 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { navigate(playlistRoute({ playlistId })); } catch (e) { alertApi.post({ - message: `Failed to add entity to playlist: ${e}`, + message: `Failed to add entity to ${groupSingularNounLowerCase}: ${e}`, severity: 'error', }); } }, - [alertApi, entity, navigate, playlistApi, playlistRoute], + [ + alertApi, + entity, + navigate, + playlistApi, + playlistRoute, + groupSingularNounLowerCase, + ], ); const [{ loading: addEntityLoading }, addToPlaylist] = useAsyncFn( @@ -141,12 +158,12 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { }); } catch (e) { alertApi.post({ - message: `Failed to add entity to playlist: ${e}`, + message: `Failed to add entity to ${groupSingularNounLowerCase}: ${e}`, severity: 'error', }); } }, - [alertApi, closeDialog, entity, playlistApi], + [alertApi, closeDialog, entity, playlistApi, groupSingularNounLowerCase], ); return ( @@ -160,7 +177,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { > {(loading || addEntityLoading) && } - Add to Playlist + Add to {groupSingularNoun} { {error && ( - + )} {playlists && entity && ( @@ -205,7 +225,9 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { - + )} {playlists diff --git a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx index 27cc13fede..ebdf4a1798 100644 --- a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx +++ b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx @@ -15,7 +15,11 @@ */ import { parseEntityRef } from '@backstage/catalog-model'; -import { identityApiRef, useApi } from '@backstage/core-plugin-api'; +import { + configApiRef, + identityApiRef, + useApi, +} from '@backstage/core-plugin-api'; import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; import { PlaylistMetadata } from '@backstage/plugin-playlist-common'; import { @@ -39,6 +43,7 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; import useAsync from 'react-use/lib/useAsync'; import useAsyncFn from 'react-use/lib/useAsyncFn'; +import { useGroupNoun } from '../../hooks/useConfig'; const useStyles = makeStyles({ buttonWrapper: { @@ -105,6 +110,8 @@ export const PlaylistEditDialog = ({ } }; + const groupSingularNounLowercase = useGroupNoun(false, false); + return ( @@ -121,7 +128,7 @@ export const PlaylistEditDialog = ({ fullWidth label="Name" margin="dense" - placeholder="Give your playlist name" + placeholder={`Give your ${groupSingularNounLowercase} name`} required type="text" /> @@ -139,7 +146,7 @@ export const PlaylistEditDialog = ({ label="Description" margin="dense" multiline - placeholder="Describe your playlist" + placeholder={`Describe your ${groupSingularNounLowercase}`} type="text" /> )} diff --git a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx index 0ee829018a..6a92718df2 100644 --- a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx +++ b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx @@ -23,7 +23,7 @@ import { } from '@backstage/core-components'; import { CatalogFilterLayout } from '@backstage/plugin-catalog-react'; -import { PlaylistListProvider } from '../../hooks'; +import { PlaylistListProvider, useGroupNoun } from '../../hooks'; import { CreatePlaylistButton } from '../CreatePlaylistButton'; import { PersonalListPicker } from '../PersonalListPicker'; import { PlaylistList } from '../PlaylistList'; @@ -31,26 +31,30 @@ import { PlaylistOwnerPicker } from '../PlaylistOwnerPicker'; import { PlaylistSearchBar } from '../PlaylistSearchBar'; import { PlaylistSortPicker } from '../PlaylistSortPicker'; -export const PlaylistIndexPage = () => ( - - - - - - - - - - - - - - - - - - - - - -); +export const PlaylistIndexPage = () => { + const groupPluralNoun = useGroupNoun(true, false); + + return ( + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx index fcc3971542..fd8569e758 100644 --- a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx +++ b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx @@ -23,18 +23,21 @@ import { } from '@backstage/core-components'; import { Typography } from '@material-ui/core'; -import { usePlaylistList } from '../../hooks'; +import { useGroupNoun, usePlaylistList } from '../../hooks'; import { PlaylistCard } from '../PlaylistCard'; export const PlaylistList = () => { const { loading, error, playlists } = usePlaylistList(); + const groupPluralNounLowercase = useGroupNoun(true, true); return ( <> {loading && } {error && ( - + {error.message} )} diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx index f499f59a61..384d51612b 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx @@ -21,7 +21,7 @@ import { Table, TableFilter, } from '@backstage/core-components'; -import { errorApiRef, useApi } from '@backstage/core-plugin-api'; +import { configApiRef, errorApiRef, useApi } from '@backstage/core-plugin-api'; import { EntityRefLink } from '@backstage/plugin-catalog-react'; import { usePermission } from '@backstage/plugin-permission-react'; import { permissions } from '@backstage/plugin-playlist-common'; @@ -32,6 +32,7 @@ import React, { forwardRef, useCallback, useEffect, useState } from 'react'; import useAsyncFn from 'react-use/lib/useAsyncFn'; import { playlistApiRef } from '../../api'; +import { useGroupNoun } from '../../hooks/useConfig'; import { AddEntitiesDrawer } from './AddEntitiesDrawer'; export const PlaylistEntitiesTable = ({ @@ -41,6 +42,7 @@ export const PlaylistEntitiesTable = ({ }) => { const errorApi = useApi(errorApiRef); const playlistApi = useApi(playlistApiRef); + const configApi = useApi(configApiRef); const [openAddEntitiesDrawer, setOpenAddEntitiesDrawer] = useState(false); const { allowed: editAllowed } = usePermission({ @@ -84,16 +86,18 @@ export const PlaylistEntitiesTable = ({ [errorApi, loadEntities, playlistApi, playlistId], ); + const groupSingularNounLowerCase = useGroupNoun(false, true); + const actions = editAllowed ? [ { icon: DeleteIcon, - tooltip: 'Remove from playlist', + tooltip: `Remove from ${groupSingularNounLowerCase}`, onClick: removeEntity, }, { icon: AddBoxIcon, - tooltip: 'Add entities to playlist', + tooltip: `Add entities to ${groupSingularNounLowerCase}`, isFreeAction: true, onClick: () => setOpenAddEntitiesDrawer(true), }, diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx index 7f4457062d..ecf443b565 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx @@ -45,6 +45,7 @@ import useAsyncFn from 'react-use/lib/useAsyncFn'; import { playlistApiRef } from '../../api'; import { rootRouteRef } from '../../routes'; import { PlaylistEditDialog } from '../PlaylistEditDialog'; +import { useGroupNoun } from '../../hooks/useConfig'; const useStyles = makeStyles({ buttonWrapper: { @@ -109,6 +110,8 @@ export const PlaylistHeader = ({ playlist, onUpdate }: PlaylistHeaderProps) => { } }, [playlistApi]); + const groupSingularNoun = useGroupNoun(false, false); + return (
{ onClick: () => setOpenEditDialog(true), }, { - label: 'Delete Playlist', + label: `Delete ${groupSingularNoun}`, icon: , disabled: !deleteAllowed, onClick: () => setOpenDeleteDialog(true), diff --git a/plugins/playlist/src/hooks/index.ts b/plugins/playlist/src/hooks/index.ts index 316121b515..da045fbf65 100644 --- a/plugins/playlist/src/hooks/index.ts +++ b/plugins/playlist/src/hooks/index.ts @@ -15,3 +15,4 @@ */ export * from './usePlaylistList'; +export * from './useConfig'; diff --git a/plugins/playlist/src/hooks/useConfig.ts b/plugins/playlist/src/hooks/useConfig.ts new file mode 100644 index 0000000000..15d44570a8 --- /dev/null +++ b/plugins/playlist/src/hooks/useConfig.ts @@ -0,0 +1,27 @@ +/* + * 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 { configApiRef, useApi } from '@backstage/core-plugin-api'; + +export function useGroupNoun(inPlural: boolean, inLowerCase: boolean) { + const configApi = useApi(configApiRef); + const defaultNoun = inPlural ? 'Playlists' : 'Playlist'; + const configProp = inPlural ? 'groupPluralNoun' : 'groupSingularNoun'; + const groupNoun = + configApi.getOptionalString(`playlist.${configProp}`) ?? `${defaultNoun}`; + + return inLowerCase ? groupNoun.toLocaleLowerCase('en-US') : groupNoun; +} diff --git a/plugins/playlist/src/hooks/usePlaylistList.tsx b/plugins/playlist/src/hooks/usePlaylistList.tsx index 69f712413b..4d2b857520 100644 --- a/plugins/playlist/src/hooks/usePlaylistList.tsx +++ b/plugins/playlist/src/hooks/usePlaylistList.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { useApi } from '@backstage/core-plugin-api'; +import { configApiRef, useApi } from '@backstage/core-plugin-api'; import { Playlist } from '@backstage/plugin-playlist-common'; import { compact, isEqual } from 'lodash'; import qs from 'qs'; From 1207646d38af969cd8052d73f4d982c8dcda14c5 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:13:00 +0100 Subject: [PATCH 012/114] [Playlist] feat: added dynamic group noun through the config Signed-off-by: antonio.bergas --- plugins/playlist/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/playlist/README.md b/plugins/playlist/README.md index 6ae3fb84ac..c85eee8f94 100644 --- a/plugins/playlist/README.md +++ b/plugins/playlist/README.md @@ -131,6 +131,18 @@ const defaultEntityPage = ( Note: the above only shows an example for the `defaultEntityPage` for a full example of this you can look at [this EntityPage](../../packages/app/src/components/catalog/EntityPage.tsx) +## Custom Group Noun + +You can define your custom group noun to shown in all the components of the Playlist plugin in the UI. To do this you just need to add some config in your **app-config.yaml**, here's an example: + +```yaml +playlist: + groupPluralNoun: Collections + groupSingularNoun: Collection +``` + +_You will always need the plural and the singular matching to have a consistency in the UI_ + ## Features ### View All Playlists From 03cfdd388cfdac2e27f5d5e0f3b46c417e0840a0 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:14:14 +0100 Subject: [PATCH 013/114] [Playlist] feat: added dynamic group noun through the config Signed-off-by: antonio.bergas --- app-config.yaml | 4 ---- .../EntityPlaylistDialog/EntityPlaylistDialog.tsx | 7 +------ 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 7b94e2fb2e..385c9c2e0e 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -125,10 +125,6 @@ proxy: organization: name: My Company - -playlist: - groupPluralNoun: Collections - groupSingularNoun: Collection # Reference documentation http://backstage.io/docs/features/techdocs/configuration # Note: After experimenting with basic setup, use CI/CD to generate docs diff --git a/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx b/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx index 1bf26fadd7..cc69a24d78 100644 --- a/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx +++ b/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx @@ -16,12 +16,7 @@ import { parseEntityRef, stringifyEntityRef } from '@backstage/catalog-model'; import { ResponseErrorPanel } from '@backstage/core-components'; -import { - alertApiRef, - configApiRef, - useApi, - useRouteRef, -} from '@backstage/core-plugin-api'; +import { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; import { humanizeEntityRef, useAsyncEntity, From a3967b9a55c82ec7980ade5ade17f113a6389ff4 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:16:05 +0100 Subject: [PATCH 014/114] [Playlist] feat: added dynamic group noun through the config Signed-off-by: antonio.bergas --- plugins/playlist/src/hooks/usePlaylistList.test.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/playlist/src/hooks/usePlaylistList.test.tsx b/plugins/playlist/src/hooks/usePlaylistList.test.tsx index 9b4b0ca0fc..f528375db6 100644 --- a/plugins/playlist/src/hooks/usePlaylistList.test.tsx +++ b/plugins/playlist/src/hooks/usePlaylistList.test.tsx @@ -16,7 +16,6 @@ import { ConfigApi, - configApiRef, IdentityApi, identityApiRef, } from '@backstage/core-plugin-api'; From 81933db1259a3a0f4ec84110b59fb8fe57d2edbc Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:24:08 +0100 Subject: [PATCH 015/114] Fixed wrong import delete Signed-off-by: antonio.bergas --- plugins/playlist/src/hooks/usePlaylistList.test.tsx | 1 + plugins/playlist/src/hooks/usePlaylistList.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/playlist/src/hooks/usePlaylistList.test.tsx b/plugins/playlist/src/hooks/usePlaylistList.test.tsx index f528375db6..9b4b0ca0fc 100644 --- a/plugins/playlist/src/hooks/usePlaylistList.test.tsx +++ b/plugins/playlist/src/hooks/usePlaylistList.test.tsx @@ -16,6 +16,7 @@ import { ConfigApi, + configApiRef, IdentityApi, identityApiRef, } from '@backstage/core-plugin-api'; diff --git a/plugins/playlist/src/hooks/usePlaylistList.tsx b/plugins/playlist/src/hooks/usePlaylistList.tsx index 4d2b857520..69f712413b 100644 --- a/plugins/playlist/src/hooks/usePlaylistList.tsx +++ b/plugins/playlist/src/hooks/usePlaylistList.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { configApiRef, useApi } from '@backstage/core-plugin-api'; +import { useApi } from '@backstage/core-plugin-api'; import { Playlist } from '@backstage/plugin-playlist-common'; import { compact, isEqual } from 'lodash'; import qs from 'qs'; From ed30a8b213b7958cd9fe120daf7f988be8611c92 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:33:16 +0100 Subject: [PATCH 016/114] Update changelog and version Signed-off-by: antonio.bergas --- plugins/playlist/CHANGELOG.md | 4 ++++ plugins/playlist/package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 43a7ff4e4d..648ff6319d 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,9 @@ # @backstage/plugin-playlist +## 0.1.8 + +- Added config properties to change dynamically the group noun for all the components in the UI + ## 0.1.7 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index bed1d654c5..289236428b 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.7", + "version": "0.1.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", From 1b3c05460479ec0ebbe1a9e16d859fcc6c4bab86 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Sat, 18 Mar 2023 23:42:21 +0100 Subject: [PATCH 017/114] Added missing changeset Removed imports not used Signed-off-by: antonio.bergas --- .changeset/perfect-deers-add.md | 5 +++++ .../CreatePlaylistButton/CreatePlaylistButton.tsx | 7 +------ .../components/PlaylistEditDialog/PlaylistEditDialog.tsx | 6 +----- .../src/components/PlaylistPage/PlaylistEntitiesTable.tsx | 3 +-- 4 files changed, 8 insertions(+), 13 deletions(-) create mode 100644 .changeset/perfect-deers-add.md diff --git a/.changeset/perfect-deers-add.md b/.changeset/perfect-deers-add.md new file mode 100644 index 0000000000..c932351a19 --- /dev/null +++ b/.changeset/perfect-deers-add.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-playlist': patch +--- + +Added config properties to change dynamically the group noun for all the components in the UI diff --git a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx index a615e2cb36..cc7427c96c 100644 --- a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx +++ b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx @@ -14,12 +14,7 @@ * limitations under the License. */ -import { - configApiRef, - errorApiRef, - useApi, - useRouteRef, -} from '@backstage/core-plugin-api'; +import { errorApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; import { BackstageTheme } from '@backstage/theme'; import { usePermission } from '@backstage/plugin-permission-react'; import { diff --git a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx index ebdf4a1798..d8f48cbecf 100644 --- a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx +++ b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx @@ -15,11 +15,7 @@ */ import { parseEntityRef } from '@backstage/catalog-model'; -import { - configApiRef, - identityApiRef, - useApi, -} from '@backstage/core-plugin-api'; +import { identityApiRef, useApi } from '@backstage/core-plugin-api'; import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; import { PlaylistMetadata } from '@backstage/plugin-playlist-common'; import { diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx index 384d51612b..3f9e10c4c8 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx @@ -21,7 +21,7 @@ import { Table, TableFilter, } from '@backstage/core-components'; -import { configApiRef, errorApiRef, useApi } from '@backstage/core-plugin-api'; +import { errorApiRef, useApi } from '@backstage/core-plugin-api'; import { EntityRefLink } from '@backstage/plugin-catalog-react'; import { usePermission } from '@backstage/plugin-permission-react'; import { permissions } from '@backstage/plugin-playlist-common'; @@ -42,7 +42,6 @@ export const PlaylistEntitiesTable = ({ }) => { const errorApi = useApi(errorApiRef); const playlistApi = useApi(playlistApiRef); - const configApi = useApi(configApiRef); const [openAddEntitiesDrawer, setOpenAddEntitiesDrawer] = useState(false); const { allowed: editAllowed } = usePermission({ From 7600ced55e210aafc90a518ede40ff23d13d74c4 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 20 Mar 2023 11:49:21 +0100 Subject: [PATCH 018/114] Update writing-custom-actions.md Signed-off-by: Ben Lambert --- docs/features/software-templates/writing-custom-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 480e0dbb14..8311402f3c 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -114,7 +114,7 @@ We follow `provider:entity:verb` or as close to this as possible for our built i Also feel free to use your company name to namespace them if you prefer too, for example `acme:file:create`. -Prefer to use `camelCase` over `pascalCase` for these actions if possible, which leads to better reading and writing of template entity definitions. +Prefer to use `camelCase` over `snake-case` for these actions if possible, which leads to better reading and writing of template entity definitions. > We're aware that there are some exceptions to this, but try to follow as close as possible. We'll be working on migrating these in the repository over time too. From 5f50c92dc3f06b4099be7f5bc7aa48e1469f7a9c Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Mon, 20 Mar 2023 18:06:36 +0100 Subject: [PATCH 019/114] [Playlist]feat: rename new config prop to title and use pluralize to manage nouns Signed-off-by: antonio.bergas --- app-config.yaml | 3 ++ plugins/playlist/CHANGELOG.md | 4 --- plugins/playlist/README.md | 9 ++---- plugins/playlist/config.d.ts | 12 ++------ plugins/playlist/package.json | 28 ++++--------------- .../CreatePlaylistButton.tsx | 8 +++--- .../EntityPlaylistDialog.tsx | 22 +++++++-------- .../PlaylistEditDialog/PlaylistEditDialog.tsx | 8 +++--- .../PlaylistIndexPage/PlaylistIndexPage.tsx | 6 ++-- .../components/PlaylistList/PlaylistList.tsx | 6 ++-- .../PlaylistPage/PlaylistEntitiesTable.tsx | 8 +++--- .../PlaylistPage/PlaylistHeader.tsx | 6 ++-- plugins/playlist/src/hooks/index.ts | 2 +- .../src/hooks/{useConfig.ts => useTitle.ts} | 14 ++++++---- yarn.lock | 1 + 15 files changed, 56 insertions(+), 81 deletions(-) rename plugins/playlist/src/hooks/{useConfig.ts => useTitle.ts} (65%) diff --git a/app-config.yaml b/app-config.yaml index 385c9c2e0e..ba9df18085 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -126,6 +126,9 @@ proxy: organization: name: My Company +playlist: + title: Module + # Reference documentation http://backstage.io/docs/features/techdocs/configuration # Note: After experimenting with basic setup, use CI/CD to generate docs # and an external cloud storage when deploying TechDocs for production use-case. diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 648ff6319d..43a7ff4e4d 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,9 +1,5 @@ # @backstage/plugin-playlist -## 0.1.8 - -- Added config properties to change dynamically the group noun for all the components in the UI - ## 0.1.7 ### Patch Changes diff --git a/plugins/playlist/README.md b/plugins/playlist/README.md index c85eee8f94..e35f94b9e5 100644 --- a/plugins/playlist/README.md +++ b/plugins/playlist/README.md @@ -131,18 +131,15 @@ const defaultEntityPage = ( Note: the above only shows an example for the `defaultEntityPage` for a full example of this you can look at [this EntityPage](../../packages/app/src/components/catalog/EntityPage.tsx) -## Custom Group Noun +## Custom Title -You can define your custom group noun to shown in all the components of the Playlist plugin in the UI. To do this you just need to add some config in your **app-config.yaml**, here's an example: +You can define a custom title to be shown in all the components of this plugin to replace the default term "playlist" in the UI. To do this you just need to add some config in your **app-config.yaml**, here's an example: ```yaml playlist: - groupPluralNoun: Collections - groupSingularNoun: Collection + title: Collection ``` -_You will always need the plural and the singular matching to have a consistency in the UI_ - ## Features ### View All Playlists diff --git a/plugins/playlist/config.d.ts b/plugins/playlist/config.d.ts index 5f59ffc236..e6245e22a6 100644 --- a/plugins/playlist/config.d.ts +++ b/plugins/playlist/config.d.ts @@ -15,17 +15,11 @@ */ export interface Config { - playlist: { + playlist?: { /** - * (Optional) The plural noun for the entities grouping that will shown in the UI; leave empty for `PLaylists`. + * (Optional) The title that will shown in the UI; leave empty for `PLaylist`. * @visibility frontend */ - groupPluralNoun: string; - - /** - * (Optional) The singular noun for the entities grouping that will shown in the UI; leave empty for `PLaylists`. - * @visibility frontend - */ - groupSingularNoun: string; + title?: string | undefined; }; } diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 289236428b..285673a99c 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.8", + "version": "0.1.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -42,6 +42,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", "lodash": "^4.17.21", + "pluralize": "^8.0.0", "qs": "^6.9.4", "react-hook-form": "^7.13.0", "react-use": "^17.2.4" @@ -65,27 +66,8 @@ "swr": "^2.0.0" }, "files": [ - "dist" + "dist", + "config.d.ts" ], - "configSchema": { - "$schema": "https://backstage.io/schema/config-v1", - "type": "object", - "properties": { - "playlist": { - "type": "object", - "properties": { - "groupPluralNoun": { - "type": "string", - "description": "Frontend plural entities grouping name", - "visibility": "frontend" - }, - "groupSingularNoun": { - "type": "string", - "description": "Frontend singular entities grouping name", - "visibility": "frontend" - } - } - } - } - } + "configSchema": "config.d.ts" } diff --git a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx index cc7427c96c..3859b2aa1e 100644 --- a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx +++ b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx @@ -29,7 +29,7 @@ import { useNavigate } from 'react-router-dom'; import { playlistApiRef } from '../../api'; import { playlistRouteRef } from '../../routes'; import { PlaylistEditDialog } from '../PlaylistEditDialog'; -import { useGroupNoun } from '../../hooks/useConfig'; +import { useTitle } from '../../hooks'; export const CreatePlaylistButton = () => { const navigate = useNavigate(); @@ -56,7 +56,7 @@ export const CreatePlaylistButton = () => { [errorApi, navigate, playlistApi, playlistRoute], ); - const groupSingularNounLowerCase = useGroupNoun(false, false); + const singularTitle = useTitle(false, false); return ( <> @@ -64,7 +64,7 @@ export const CreatePlaylistButton = () => { setOpenDialog(true)} > @@ -77,7 +77,7 @@ export const CreatePlaylistButton = () => { color="primary" onClick={() => setOpenDialog(true)} > - Create {groupSingularNounLowerCase} + Create {singularTitle} )} { [playlistApi], ); - const groupSingularNoun = useGroupNoun(true, false); - const groupSingularNounLowerCase = useGroupNoun(false, true); - const groupPluralNounLowerCase = useGroupNoun(true, true); + const singularTitle = useTitle(true, false); + const singularTitleLowerCase = useTitle(false, true); + const plurlaTitleLowerCase = useTitle(true, true); useEffect(() => { if (open) { @@ -125,7 +125,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { navigate(playlistRoute({ playlistId })); } catch (e) { alertApi.post({ - message: `Failed to add entity to ${groupSingularNounLowerCase}: ${e}`, + message: `Failed to add entity to ${singularTitleLowerCase}: ${e}`, severity: 'error', }); } @@ -136,7 +136,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { navigate, playlistApi, playlistRoute, - groupSingularNounLowerCase, + singularTitleLowerCase, ], ); @@ -153,12 +153,12 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { }); } catch (e) { alertApi.post({ - message: `Failed to add entity to ${groupSingularNounLowerCase}: ${e}`, + message: `Failed to add entity to ${singularTitleLowerCase}: ${e}`, severity: 'error', }); } }, - [alertApi, closeDialog, entity, playlistApi, groupSingularNounLowerCase], + [alertApi, closeDialog, entity, playlistApi, singularTitleLowerCase], ); return ( @@ -172,7 +172,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { > {(loading || addEntityLoading) && } - Add to {groupSingularNoun} + Add to {singularTitle} { {error && ( )} @@ -221,7 +221,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { )} diff --git a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx index d8f48cbecf..1989f25ae7 100644 --- a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx +++ b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx @@ -39,7 +39,7 @@ import React from 'react'; import { useForm, Controller } from 'react-hook-form'; import useAsync from 'react-use/lib/useAsync'; import useAsyncFn from 'react-use/lib/useAsyncFn'; -import { useGroupNoun } from '../../hooks/useConfig'; +import { useTitle } from '../../hooks'; const useStyles = makeStyles({ buttonWrapper: { @@ -106,7 +106,7 @@ export const PlaylistEditDialog = ({ } }; - const groupSingularNounLowercase = useGroupNoun(false, false); + const titleSingularLowerCase = useTitle(false, false); return ( @@ -124,7 +124,7 @@ export const PlaylistEditDialog = ({ fullWidth label="Name" margin="dense" - placeholder={`Give your ${groupSingularNounLowercase} name`} + placeholder={`Give your ${titleSingularLowerCase} name`} required type="text" /> @@ -142,7 +142,7 @@ export const PlaylistEditDialog = ({ label="Description" margin="dense" multiline - placeholder={`Describe your ${groupSingularNounLowercase}`} + placeholder={`Describe your ${titleSingularLowerCase}`} type="text" /> )} diff --git a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx index 6a92718df2..eabce5d0c6 100644 --- a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx +++ b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx @@ -23,7 +23,7 @@ import { } from '@backstage/core-components'; import { CatalogFilterLayout } from '@backstage/plugin-catalog-react'; -import { PlaylistListProvider, useGroupNoun } from '../../hooks'; +import { PlaylistListProvider, useTitle } from '../../hooks'; import { CreatePlaylistButton } from '../CreatePlaylistButton'; import { PersonalListPicker } from '../PersonalListPicker'; import { PlaylistList } from '../PlaylistList'; @@ -32,10 +32,10 @@ import { PlaylistSearchBar } from '../PlaylistSearchBar'; import { PlaylistSortPicker } from '../PlaylistSortPicker'; export const PlaylistIndexPage = () => { - const groupPluralNoun = useGroupNoun(true, false); + const pluralTitle = useTitle(true, false); return ( - + diff --git a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx index fd8569e758..6c90914c49 100644 --- a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx +++ b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx @@ -23,12 +23,12 @@ import { } from '@backstage/core-components'; import { Typography } from '@material-ui/core'; -import { useGroupNoun, usePlaylistList } from '../../hooks'; +import { useTitle, usePlaylistList } from '../../hooks'; import { PlaylistCard } from '../PlaylistCard'; export const PlaylistList = () => { const { loading, error, playlists } = usePlaylistList(); - const groupPluralNounLowercase = useGroupNoun(true, true); + const pluralTitleLowerCase = useTitle(true, true); return ( <> @@ -36,7 +36,7 @@ export const PlaylistList = () => { {error && ( {error.message} diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx index 3f9e10c4c8..69a6beadb2 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx @@ -32,7 +32,7 @@ import React, { forwardRef, useCallback, useEffect, useState } from 'react'; import useAsyncFn from 'react-use/lib/useAsyncFn'; import { playlistApiRef } from '../../api'; -import { useGroupNoun } from '../../hooks/useConfig'; +import { useTitle } from '../../hooks'; import { AddEntitiesDrawer } from './AddEntitiesDrawer'; export const PlaylistEntitiesTable = ({ @@ -85,18 +85,18 @@ export const PlaylistEntitiesTable = ({ [errorApi, loadEntities, playlistApi, playlistId], ); - const groupSingularNounLowerCase = useGroupNoun(false, true); + const singularTitleLowerCase = useTitle(false, true); const actions = editAllowed ? [ { icon: DeleteIcon, - tooltip: `Remove from ${groupSingularNounLowerCase}`, + tooltip: `Remove from ${singularTitleLowerCase}`, onClick: removeEntity, }, { icon: AddBoxIcon, - tooltip: `Add entities to ${groupSingularNounLowerCase}`, + tooltip: `Add entities to ${singularTitleLowerCase}`, isFreeAction: true, onClick: () => setOpenAddEntitiesDrawer(true), }, diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx index ecf443b565..8ead799db2 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx @@ -45,7 +45,7 @@ import useAsyncFn from 'react-use/lib/useAsyncFn'; import { playlistApiRef } from '../../api'; import { rootRouteRef } from '../../routes'; import { PlaylistEditDialog } from '../PlaylistEditDialog'; -import { useGroupNoun } from '../../hooks/useConfig'; +import { useTitle } from '../../hooks'; const useStyles = makeStyles({ buttonWrapper: { @@ -110,7 +110,7 @@ export const PlaylistHeader = ({ playlist, onUpdate }: PlaylistHeaderProps) => { } }, [playlistApi]); - const groupSingularNoun = useGroupNoun(false, false); + const singularTitle = useTitle(false, false); return (
{ onClick: () => setOpenEditDialog(true), }, { - label: `Delete ${groupSingularNoun}`, + label: `Delete ${singularTitle}`, icon: , disabled: !deleteAllowed, onClick: () => setOpenDeleteDialog(true), diff --git a/plugins/playlist/src/hooks/index.ts b/plugins/playlist/src/hooks/index.ts index da045fbf65..bb164d961c 100644 --- a/plugins/playlist/src/hooks/index.ts +++ b/plugins/playlist/src/hooks/index.ts @@ -15,4 +15,4 @@ */ export * from './usePlaylistList'; -export * from './useConfig'; +export * from './useTitle'; diff --git a/plugins/playlist/src/hooks/useConfig.ts b/plugins/playlist/src/hooks/useTitle.ts similarity index 65% rename from plugins/playlist/src/hooks/useConfig.ts rename to plugins/playlist/src/hooks/useTitle.ts index 15d44570a8..ade68d03e8 100644 --- a/plugins/playlist/src/hooks/useConfig.ts +++ b/plugins/playlist/src/hooks/useTitle.ts @@ -15,13 +15,15 @@ */ import { configApiRef, useApi } from '@backstage/core-plugin-api'; +import pluralize from 'pluralize'; -export function useGroupNoun(inPlural: boolean, inLowerCase: boolean) { +export function useTitle(inPlural: boolean, inLowerCase: boolean) { const configApi = useApi(configApiRef); - const defaultNoun = inPlural ? 'Playlists' : 'Playlist'; - const configProp = inPlural ? 'groupPluralNoun' : 'groupSingularNoun'; - const groupNoun = - configApi.getOptionalString(`playlist.${configProp}`) ?? `${defaultNoun}`; + let title = configApi.getOptionalString('playlist.title') ?? 'Playlist'; - return inLowerCase ? groupNoun.toLocaleLowerCase('en-US') : groupNoun; + if (inPlural) { + title = pluralize(title); + } + + return inLowerCase ? title.toLocaleLowerCase('en-US') : title; } diff --git a/yarn.lock b/yarn.lock index 3cf7b49696..2687870b8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7380,6 +7380,7 @@ __metadata: cross-fetch: ^3.1.5 lodash: ^4.17.21 msw: ^1.0.0 + pluralize: ^8.0.0 qs: ^6.9.4 react-hook-form: ^7.13.0 react-use: ^17.2.4 From 39973bcd50476f0ce31904de34c3155ca25cd863 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Mon, 20 Mar 2023 18:22:30 +0100 Subject: [PATCH 020/114] [Playlist]feat: removed unneccessary playlist config Signed-off-by: antonio.bergas --- app-config.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index ba9df18085..385c9c2e0e 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -126,9 +126,6 @@ proxy: organization: name: My Company -playlist: - title: Module - # Reference documentation http://backstage.io/docs/features/techdocs/configuration # Note: After experimenting with basic setup, use CI/CD to generate docs # and an external cloud storage when deploying TechDocs for production use-case. From d48fdc7396d2f8c1e61d32d7060dbb76dccbcbc8 Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Mon, 20 Mar 2023 19:35:36 +0100 Subject: [PATCH 021/114] [Playlist]feat: fixed wrong copyright Signed-off-by: antonio.bergas --- plugins/playlist/config.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/playlist/config.d.ts b/plugins/playlist/config.d.ts index e6245e22a6..5b9ff8aad8 100644 --- a/plugins/playlist/config.d.ts +++ b/plugins/playlist/config.d.ts @@ -1,5 +1,5 @@ /* - * Copyright 2020 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. From 904b7ffd5e044d2f5a9aabb70576c028bc594f9e Mon Sep 17 00:00:00 2001 From: Antonio Bergas Date: Mon, 20 Mar 2023 20:19:22 +0100 Subject: [PATCH 022/114] Update plugins/playlist/config.d.ts Improve description in config interface Co-authored-by: Phil Kuang Signed-off-by: Antonio Bergas --- plugins/playlist/config.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/playlist/config.d.ts b/plugins/playlist/config.d.ts index 5b9ff8aad8..d949cfe73a 100644 --- a/plugins/playlist/config.d.ts +++ b/plugins/playlist/config.d.ts @@ -17,7 +17,7 @@ export interface Config { playlist?: { /** - * (Optional) The title that will shown in the UI; leave empty for `PLaylist`. + * (Optional) The title that will shown in the UI; Defaults to`Playlist` if undefined. * @visibility frontend */ title?: string | undefined; From d08f00fd777d4227c83f97db64d6e10ba96c0a7b Mon Sep 17 00:00:00 2001 From: "antonio.bergas" Date: Mon, 20 Mar 2023 20:45:11 +0100 Subject: [PATCH 023/114] [Playlist]feat: improve useTitle hook and fixing tests Signed-off-by: antonio.bergas --- .../CreatePlaylistButton.tsx | 5 +- .../EntityPlaylistDialog.tsx | 17 ++++- .../PlaylistEditDialog/PlaylistEditDialog.tsx | 7 +- .../PlaylistIndexPage/PlaylistIndexPage.tsx | 5 +- .../PlaylistList/PlaylistList.test.tsx | 76 +++++++++++-------- .../components/PlaylistList/PlaylistList.tsx | 5 +- .../PlaylistPage/PlaylistEntitiesTable.tsx | 5 +- .../PlaylistPage/PlaylistHeader.tsx | 5 +- plugins/playlist/src/hooks/useTitle.ts | 13 +++- 9 files changed, 91 insertions(+), 47 deletions(-) diff --git a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx index 3859b2aa1e..7669a48c26 100644 --- a/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx +++ b/plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx @@ -56,7 +56,10 @@ export const CreatePlaylistButton = () => { [errorApi, navigate, playlistApi, playlistRoute], ); - const singularTitle = useTitle(false, false); + const singularTitle = useTitle({ + pluralize: false, + lowerCase: false, + }); return ( <> diff --git a/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx b/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx index 711858577a..150ca6bc56 100644 --- a/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx +++ b/plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx @@ -105,9 +105,18 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { [playlistApi], ); - const singularTitle = useTitle(true, false); - const singularTitleLowerCase = useTitle(false, true); - const plurlaTitleLowerCase = useTitle(true, true); + const singularTitle = useTitle({ + pluralize: true, + lowerCase: false, + }); + const singularTitleLowerCase = useTitle({ + pluralize: false, + lowerCase: true, + }); + const pluralTitleLowerCase = useTitle({ + pluralize: true, + lowerCase: true, + }); useEffect(() => { if (open) { @@ -204,7 +213,7 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => { {error && ( )} diff --git a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx index 1989f25ae7..a213c7c51c 100644 --- a/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx +++ b/plugins/playlist/src/components/PlaylistEditDialog/PlaylistEditDialog.tsx @@ -106,7 +106,10 @@ export const PlaylistEditDialog = ({ } }; - const titleSingularLowerCase = useTitle(false, false); + const titleSingularLowerCase = useTitle({ + pluralize: false, + lowerCase: false, + }); return ( @@ -124,7 +127,7 @@ export const PlaylistEditDialog = ({ fullWidth label="Name" margin="dense" - placeholder={`Give your ${titleSingularLowerCase} name`} + placeholder={`Give your ${titleSingularLowerCase} a name`} required type="text" /> diff --git a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx index eabce5d0c6..f25df19ee7 100644 --- a/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx +++ b/plugins/playlist/src/components/PlaylistIndexPage/PlaylistIndexPage.tsx @@ -32,7 +32,10 @@ import { PlaylistSearchBar } from '../PlaylistSearchBar'; import { PlaylistSortPicker } from '../PlaylistSortPicker'; export const PlaylistIndexPage = () => { - const pluralTitle = useTitle(true, false); + const pluralTitle = useTitle({ + pluralize: true, + lowerCase: false, + }); return ( diff --git a/plugins/playlist/src/components/PlaylistList/PlaylistList.test.tsx b/plugins/playlist/src/components/PlaylistList/PlaylistList.test.tsx index 27030ec1c7..976db99983 100644 --- a/plugins/playlist/src/components/PlaylistList/PlaylistList.test.tsx +++ b/plugins/playlist/src/components/PlaylistList/PlaylistList.test.tsx @@ -14,13 +14,19 @@ * limitations under the License. */ +import { ConfigApi, configApiRef } from '@backstage/core-plugin-api'; import { Playlist } from '@backstage/plugin-playlist-common'; +import { TestApiProvider } from '@backstage/test-utils'; import { render } from '@testing-library/react'; import React from 'react'; import { MockPlaylistListProvider } from '../../testUtils'; import { PlaylistList } from './PlaylistList'; +const mockConfigApi = { + getOptionalString: () => undefined, +} as Partial; + jest.mock('../PlaylistCard', () => ({ PlaylistCard: ({ playlist }: { playlist: Playlist }) => (
{playlist.name}
@@ -30,9 +36,11 @@ jest.mock('../PlaylistCard', () => ({ describe('', () => { it('renders error on error', () => { const rendered = render( - - - , + + + + + , ); expect(rendered.getByText('Test Error')).toBeInTheDocument(); @@ -40,9 +48,11 @@ describe('', () => { it('handles no playlists', () => { const rendered = render( - - - , + + + + + , ); expect( @@ -52,32 +62,34 @@ describe('', () => { it('renders playlists', () => { const rendered = render( - - - , + + + + + , ); expect(rendered.getByText('playlist-1')).toBeInTheDocument(); diff --git a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx index 6c90914c49..2f815f07c6 100644 --- a/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx +++ b/plugins/playlist/src/components/PlaylistList/PlaylistList.tsx @@ -28,7 +28,10 @@ import { PlaylistCard } from '../PlaylistCard'; export const PlaylistList = () => { const { loading, error, playlists } = usePlaylistList(); - const pluralTitleLowerCase = useTitle(true, true); + const pluralTitleLowerCase = useTitle({ + pluralize: true, + lowerCase: true, + }); return ( <> diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx index 69a6beadb2..3d8efe3bc5 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx @@ -85,7 +85,10 @@ export const PlaylistEntitiesTable = ({ [errorApi, loadEntities, playlistApi, playlistId], ); - const singularTitleLowerCase = useTitle(false, true); + const singularTitleLowerCase = useTitle({ + pluralize: false, + lowerCase: true, + }); const actions = editAllowed ? [ diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx index 8ead799db2..621f94f75c 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx @@ -110,7 +110,10 @@ export const PlaylistHeader = ({ playlist, onUpdate }: PlaylistHeaderProps) => { } }, [playlistApi]); - const singularTitle = useTitle(false, false); + const singularTitle = useTitle({ + pluralize: false, + lowerCase: false, + }); return (
Date: Thu, 23 Mar 2023 08:09:35 +0000 Subject: [PATCH 024/114] Update dependency minimatch to v5.1.6 Signed-off-by: Renovate Bot --- yarn.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96b2dc1402..0973be65e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3470,7 +3470,7 @@ __metadata: http-errors: ^2.0.0 lodash: ^4.17.21 logform: ^2.3.2 - minimatch: ^5.0.0 + minimatch: ^5.1.1 minimist: ^1.2.5 morgan: ^1.10.0 node-forge: ^1.3.1 @@ -3552,7 +3552,7 @@ __metadata: lodash: ^4.17.21 logform: ^2.3.2 luxon: ^3.0.0 - minimatch: ^5.0.0 + minimatch: ^5.1.1 minimist: ^1.2.5 mock-fs: ^5.1.0 morgan: ^1.10.0 @@ -4162,7 +4162,7 @@ __metadata: "@backstage/cli": "workspace:^" "@manypkg/get-packages": ^1.1.3 eslint: ^8.33.0 - minimatch: ^5.1.2 + minimatch: ^5.1.1 languageName: unknown linkType: soft @@ -4611,7 +4611,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.0.0 + minimatch: ^5.1.1 morgan: ^1.10.0 msw: ^1.0.0 node-cache: ^5.1.2 @@ -5100,7 +5100,7 @@ __metadata: git-url-parse: ^13.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.1.2 + minimatch: ^5.1.1 msw: ^1.0.0 node-fetch: ^2.6.7 uuid: ^8.0.0 @@ -5299,7 +5299,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.0.0 + minimatch: ^5.1.1 msw: ^1.0.0 node-fetch: ^2.6.7 p-limit: ^3.0.2 @@ -30218,7 +30218,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0, minimatch@npm:^5.1.1, minimatch@npm:^5.1.2": +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0, minimatch@npm:^5.1.1": version: 5.1.2 resolution: "minimatch@npm:5.1.2" dependencies: From 5972042ef85ecc88b5fe95c0602be4bc2ddd8436 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 23 Mar 2023 15:02:07 +0100 Subject: [PATCH 025/114] OWNERS: add Helm Charts Signed-off-by: Patrik Oldsberg --- OWNERS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OWNERS.md b/OWNERS.md index 368620cf42..ffbecbab1b 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -38,6 +38,18 @@ Scope: Discoverability within Backstage, including the home page, information ar | Raghunandan Balachandran | Spotify | BUX | [soapraj](http://github.com/soapraj) | raghunandanb#1114 | | Renan Mendes Carvalho | Spotify | BUX | [aitherios](http://github.com/aitherios) | aitherios#0593 | +### Helm Charts + +Team: @backstage/helm-chart-maintainers + +Scope: The Backstage [Helm Chart(s)](https://github.com/backstage/charts). + +| Name | Organization | Team | GitHub | Discord | +| -------------------- | ------------ | ---- | ---------------------------------------- | -------------- | +| Andrew Block | Red Hat | | [sabre1041](http://github.com/sabre1041) | sabre1041#2622 | +| Tom Coufal | Red Hat | | [tumido](http://github.com/tumido) | Tumi#4346 | +| Vincenzo Scamporlino | Spotify | | [vinzscam](http://github.com/vinzscam) | vinzscam#6944 | + ### Kubernetes Team: @backstage/kubernetes-maintainers From cf18c32934afa755138459aefd9ee9b18149c271 Mon Sep 17 00:00:00 2001 From: Katharina Sick Date: Fri, 24 Mar 2023 14:14:17 +0100 Subject: [PATCH 026/114] feat: show details for nested objects and arrays in the Installed Actions page Signed-off-by: Katharina Sick --- .changeset/tender-parrots-fry.md | 5 + .../ActionsPage/ActionsPage.test.tsx | 300 +++++++++++++++++- .../components/ActionsPage/ActionsPage.tsx | 188 +++++++---- 3 files changed, 436 insertions(+), 57 deletions(-) create mode 100644 .changeset/tender-parrots-fry.md diff --git a/.changeset/tender-parrots-fry.md b/.changeset/tender-parrots-fry.md new file mode 100644 index 0000000000..847bd18761 --- /dev/null +++ b/.changeset/tender-parrots-fry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': minor +--- + +The Installed Actions page now shows details for nested objects and arrays diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx index 90f6f9b393..a402e078a8 100644 --- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx +++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx @@ -16,8 +16,8 @@ import React from 'react'; import { ActionsPage } from './ActionsPage'; import { - scaffolderApiRef, ScaffolderApi, + scaffolderApiRef, } from '@backstage/plugin-scaffolder-react'; import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils'; import { ApiProvider } from '@backstage/core-app-api'; @@ -118,7 +118,7 @@ describe('TemplatePage', () => { expect(rendered.getByText('Test output')).toBeInTheDocument(); }); - it('renders action with multipel input types', async () => { + it('renders action with multiple input types', async () => { scaffolderApiMock.listActions.mockResolvedValue([ { id: 'test', @@ -211,4 +211,300 @@ describe('TemplatePage', () => { expect(rendered.getByText('Bar title')).toBeInTheDocument(); expect(rendered.getByText('Bar description')).toBeInTheDocument(); }); + + it('renders action with object input type', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + required: ['foobar'], + properties: { + foobar: { + title: 'Test object', + type: ['object'], + properties: { + a: { + title: 'nested prop a', + type: 'string', + }, + b: { + title: 'nested prop b', + type: 'number', + }, + }, + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('Test object')).toBeInTheDocument(); + const objectChip = rendered.getByText('object'); + expect(objectChip).toBeInTheDocument(); + + expect(rendered.queryByText('nested prop a')).not.toBeInTheDocument(); + expect(rendered.queryByText('string')).not.toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).not.toBeInTheDocument(); + expect(rendered.queryByText('number')).not.toBeInTheDocument(); + + objectChip.click(); + + expect(rendered.queryByText('nested prop a')).toBeInTheDocument(); + expect(rendered.queryByText('string')).toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).toBeInTheDocument(); + expect(rendered.queryByText('number')).toBeInTheDocument(); + }); + + it('renders action with nested object input type', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + required: ['foobar'], + properties: { + foobar: { + title: 'Test object', + type: 'object', + properties: { + a: { + title: 'nested object a', + type: 'object', + properties: { + c: { + title: 'nested object c', + type: 'object', + }, + }, + }, + b: { + title: 'nested prop b', + type: 'number', + }, + }, + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('Test object')).toBeInTheDocument(); + const objectChip = rendered.getByText('object'); + expect(objectChip).toBeInTheDocument(); + + expect(rendered.queryByText('nested object a')).not.toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).not.toBeInTheDocument(); + expect(rendered.queryByText('nested object c')).not.toBeInTheDocument(); + + objectChip.click(); + + expect(rendered.queryByText('nested object a')).toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).toBeInTheDocument(); + expect(rendered.queryByText('nested object c')).not.toBeInTheDocument(); + + const allObjectChips = rendered.getAllByText('object'); + expect(allObjectChips.length).toBe(2); + allObjectChips[1].click(); + + expect(rendered.queryByText('nested object a')).toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).toBeInTheDocument(); + expect(rendered.queryByText('nested object c')).toBeInTheDocument(); + }); + + it('renders action with object input type and no properties', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + required: ['foobar'], + properties: { + foobar: { + title: 'Test object', + type: ['object'], + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('Test object')).toBeInTheDocument(); + const objectChip = rendered.getByText('object'); + expect(objectChip).toBeInTheDocument(); + + expect(rendered.queryByText('No schema defined')).not.toBeInTheDocument(); + + objectChip.click(); + + expect(rendered.queryByText('No schema defined')).toBeInTheDocument(); + }); + + it('renders action with array(string) input type', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + properties: { + foobar: { + title: 'Test array', + type: 'array', + items: { + type: 'string', + }, + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('Test array')).toBeInTheDocument(); + expect(rendered.getByText('array(string)')).toBeInTheDocument(); + }); + + it('renders action with array(object) input type', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + properties: { + foobar: { + title: 'Test array', + type: 'array', + items: { + title: 'nested object', + type: 'object', + properties: { + a: { + title: 'nested object a', + type: 'object', + properties: { + c: { + title: 'nested object c', + type: 'object', + }, + }, + }, + b: { + title: 'nested prop b', + type: 'number', + }, + }, + }, + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('Test array')).toBeInTheDocument(); + const objectChip = rendered.getByText('array(object)'); + expect(objectChip).toBeInTheDocument(); + + expect(rendered.queryByText('nested object a')).not.toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).not.toBeInTheDocument(); + + objectChip.click(); + + expect(rendered.queryByText('nested object a')).toBeInTheDocument(); + expect(rendered.queryByText('nested prop b')).toBeInTheDocument(); + }); + + it('renders action with array input type and no items', async () => { + scaffolderApiMock.listActions.mockResolvedValue([ + { + id: 'test', + description: 'example description', + schema: { + input: { + type: 'object', + properties: { + foo: { + type: 'array', + }, + }, + }, + }, + }, + ]); + const rendered = await renderInTestApp( + + + , + { + mountedRoutes: { + '/create/actions': rootRouteRef, + }, + }, + ); + + expect(rendered.getByText('array(unknown)')).toBeInTheDocument(); + }); }); diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx index 10a272b3cf..3f21b75322 100644 --- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx +++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.tsx @@ -13,43 +13,45 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { Fragment } from 'react'; +import React, { Fragment, useState } from 'react'; import useAsync from 'react-use/lib/useAsync'; import { ActionExample, scaffolderApiRef, } from '@backstage/plugin-scaffolder-react'; import { - Typography, + Accordion, + AccordionDetails, + AccordionSummary, + Box, + Collapse, + Grid, + makeStyles, Paper, Table, TableBody, - Box, - Chip, TableCell, TableContainer, TableHead, TableRow, - Grid, - makeStyles, - Accordion, - AccordionSummary, - AccordionDetails, + Typography, } from '@material-ui/core'; import { JSONSchema7, JSONSchema7Definition } from 'json-schema'; import classNames from 'classnames'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import ExpandLessIcon from '@material-ui/icons/ExpandLess'; import { useApi } from '@backstage/core-plugin-api'; import { - Progress, - Content, - Header, - Page, - ErrorPage, CodeSnippet, + Content, + ErrorPage, + Header, MarkdownContent, + Page, + Progress, } from '@backstage/core-components'; +import Chip from '@material-ui/core/Chip'; const useStyles = makeStyles(theme => ({ code: { @@ -111,6 +113,7 @@ export const ActionsPage = () => { const { loading, value, error } = useAsync(async () => { return api.listActions(); }); + const [isExpanded, setIsExpanded] = useState<{ [key: string]: boolean }>({}); if (loading) { return ; @@ -125,41 +128,9 @@ export const ActionsPage = () => { ); } - const formatRows = (input: JSONSchema7) => { - const properties = input.properties; - if (!properties) { - return undefined; - } - - return Object.entries(properties).map(entry => { - const [key] = entry; - const props = entry[1] as unknown as JSONSchema7; - const codeClassname = classNames(classes.code, { - [classes.codeRequired]: input.required?.includes(key), - }); - - return ( - - -
{key}
-
- {props.title} - {props.description} - - <> - {[props.type].flat().map(type => ( - - ))} - - -
- ); - }); - }; - - const renderTable = (input: JSONSchema7) => { - if (!input.properties) { - return undefined; + const renderTable = (rows?: JSX.Element[]) => { + if (!rows || rows.length < 1) { + return No schema defined; } return ( @@ -172,13 +143,108 @@ export const ActionsPage = () => { Type - {formatRows(input)} + {rows} ); }; - const renderTables = (name: string, input?: JSONSchema7Definition[]) => { + const getTypes = (properties: JSONSchema7) => { + if (!properties.type) { + return ['unknown']; + } + + if (properties.type !== 'array') { + return [properties.type].flat(); + } + + return [ + `${properties.type}(${ + (properties.items as JSONSchema7 | undefined)?.type ?? 'unknown' + })`, + ]; + }; + + const formatRows = (parentId: string, input?: JSONSchema7) => { + const properties = input?.properties; + if (!properties) { + return undefined; + } + + return Object.entries(properties).map(entry => { + const [key] = entry; + const id = `${parentId}.${key}`; + const props = entry[1] as unknown as JSONSchema7; + const codeClassname = classNames(classes.code, { + [classes.codeRequired]: input.required?.includes(key), + }); + const types = getTypes(props); + + return ( + + + +
{key}
+
+ {props.title} + {props.description} + + {types.map(type => + type.includes('object') ? ( + : + } + variant="outlined" + onClick={() => + setIsExpanded(prevState => { + const state = { ...prevState }; + state[id] = !prevState[id]; + return state; + }) + } + /> + ) : ( + + ), + )} + +
+ + + + + + {key} + + {renderTable( + formatRows( + id, + props.type === 'array' + ? ({ + properties: + (props.items as JSONSchema7 | undefined) + ?.properties ?? {}, + } as unknown as JSONSchema7 | undefined) + : props, + ), + )} + + + + +
+ ); + }); + }; + + const renderTables = ( + name: string, + id: string, + input?: JSONSchema7Definition[], + ) => { if (!input) { return undefined; } @@ -187,7 +253,11 @@ export const ActionsPage = () => { <> {name} {input.map((i, index) => ( -
{renderTable(i as unknown as JSONSchema7)}
+
+ {renderTable( + formatRows(`${id}.${index}`, i as unknown as JSONSchema7), + )} +
))} ); @@ -198,7 +268,11 @@ export const ActionsPage = () => { return undefined; } - const oneOf = renderTables('oneOf', action.schema?.input?.oneOf); + const oneOf = renderTables( + 'oneOf', + `${action.id}.input`, + action.schema?.input?.oneOf, + ); return ( @@ -208,14 +282,18 @@ export const ActionsPage = () => { {action.schema?.input && ( Input - {renderTable(action.schema.input)} + {renderTable( + formatRows(`${action.id}.input`, action?.schema?.input), + )} {oneOf} )} {action.schema?.output && ( Output - {renderTable(action.schema.output)} + {renderTable( + formatRows(`${action.id}.output`, action?.schema?.output), + )} )} {action.examples && ( From 9cb1db6546a847c6f215b2572f9fc58a2ab0b986 Mon Sep 17 00:00:00 2001 From: Mark David Avery Date: Thu, 16 Mar 2023 21:52:53 -0700 Subject: [PATCH 027/114] fix(tech-insights): When multiple fact retrievers are used for a check, allow for cases where only one returns a given fact Signed-off-by: Mark David Avery --- .changeset/popular-radios-visit.md | 5 + .../README.md | 5 + .../JsonRulesEngineFactChecker.test.ts | 335 +++++++++++++++++- .../src/service/JsonRulesEngineFactChecker.ts | 7 +- 4 files changed, 340 insertions(+), 12 deletions(-) create mode 100644 .changeset/popular-radios-visit.md diff --git a/.changeset/popular-radios-visit.md b/.changeset/popular-radios-visit.md new file mode 100644 index 0000000000..94d292d10a --- /dev/null +++ b/.changeset/popular-radios-visit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend-module-jsonfc': patch +--- + +When multiple fact retrievers are used for a check, allow for cases where only one returns a given fact diff --git a/plugins/tech-insights-backend-module-jsonfc/README.md b/plugins/tech-insights-backend-module-jsonfc/README.md index f61666d671..5940d39b15 100644 --- a/plugins/tech-insights-backend-module-jsonfc/README.md +++ b/plugins/tech-insights-backend-module-jsonfc/README.md @@ -86,6 +86,11 @@ export const exampleCheck: TechInsightJsonRuleCheck = { }; ``` +### More than one `factIds` for a check. + +When more than one is supplied, the requested fact **MUST** be present in at least one of the fact retrievers. +The order of the fact retrievers defined in the `factIds` array has no bearing on the checks, the check will merge all facts from the various retrievers, and then check against latest fact . + # Custom operators json-rules-engine supports a limited [number of built-in operators](https://github.com/CacheControl/json-rules-engine/blob/master/docs/rules.md#operators) that can be used in conditions. You can add your own operators by adding them to the `operators` array in the `JsonRulesEngineFactCheckerFactory` constructor. For example: diff --git a/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.test.ts b/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.test.ts index 0d651be178..7fbc2e320b 100644 --- a/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.test.ts +++ b/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.test.ts @@ -129,6 +129,98 @@ const testChecks: Record = { }, ], + twoRetrieversSame: [ + { + id: 'twoRetrieversSameCheck', + name: 'twoRetrieversSameCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + description: 'Two Retriever Check For Testing', + factIds: [ + 'test-factretriever', + 'test-factretriever-same-fact', + 'non-existing-factretriever', + ], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + operator: 'greaterThan', + value: 2, + }, + ], + }, + }, + }, + ], + + twoRetrieversDifferent: [ + { + id: 'twoRetrieversDifferentCheck', + name: 'twoRetrieversDifferentCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + description: 'Two Retriever Check For Testing', + factIds: ['test-factretriever-different-fact', 'test-factretriever'], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + operator: 'greaterThan', + value: 2, + }, + ], + }, + }, + }, + ], + + twoRetrieversDifferentOrder: [ + { + id: 'twoRetrieversDifferentOrderCheck', + name: 'twoRetrieversDifferentOrderCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + description: 'Two Retriever Check For Testing', + factIds: ['test-factretriever', 'test-factretriever-different-fact'], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + operator: 'greaterThan', + value: 2, + }, + ], + }, + }, + }, + ], + + twoRetrieversOnlyOneData: [ + { + id: 'twoRetrieversOnlyOneDataCheck', + name: 'twoRetrieversOnlyOneDataCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + description: 'Two Retriever Check For Testing', + factIds: [ + 'test-factretriever', + 'test-factretriever-no-fact', + 'non-existing-factretriever', + ], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + operator: 'greaterThan', + value: 2, + }, + ], + }, + }, + }, + ], + customOperator: [ { id: 'customOperatorTestCheck', @@ -184,16 +276,75 @@ const latestSchemasMock = jest.fn().mockImplementation(() => [ description: '', }, }, -]); -const factsBetweenTimestampsByIdsMock = jest.fn(); -const latestFactsByIdsMock = jest.fn().mockResolvedValue({ - ['test-factretriever']: { - id: 'test-factretriever', - facts: { - testnumberfact: 3, + { + version: '0.0.1', + id: 3, + ref: 'test-factretriever-no-fact', + entityTypes: ['component'], + testnumberfact: { + type: 'integer', + description: '', }, }, -}); + { + version: '0.0.1', + id: 4, + ref: 'test-factretriever-same-fact', + entityTypes: ['component'], + testnumberfact: { + type: 'integer', + description: '', + }, + }, + { + version: '0.0.1', + id: 5, + ref: 'test-factretriever-different-fact', + entityTypes: ['users'], + testnumberfact: { + type: 'integer', + description: '', + }, + }, +]); +const factsBetweenTimestampsByIdsMock = jest.fn(); +const latestFactsByIdsMock = jest + .fn() + .mockImplementation((factIds: string[]) => { + const facts = [ + { + id: 'test-factretriever-different-fact', + facts: { + testnumberfact: 1, + }, + }, + { + id: 'test-factretriever-same-fact', + facts: { + testnumberfact: 3, + }, + }, + { + id: 'test-factretriever', + facts: { + testnumberfact: 3, + }, + }, + { + id: 'test-factretriever-no-fact', + facts: {}, + }, + ]; + + const factResults = Object.fromEntries( + factIds + .map(factId => facts.filter(fact => fact.id === factId)) + .flat() + .map(fact => [fact.id, fact]), + ); + + return factResults; + }); const mockCheckRegistry = { getAll(checks: string[]) { return checks.flatMap(check => testChecks[check]); @@ -281,6 +432,174 @@ describe('JsonRulesEngineFactChecker', () => { }); }); + it('should respond with result, facts, fact schemas and checks for multiple retrievers', async () => { + const results = await factChecker.runChecks('a/a/a', [ + 'twoRetrieversSame', + ]); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + facts: { + testnumberfact: { + value: 3, + type: 'integer', + description: '', + }, + }, + result: true, + check: { + id: 'twoRetrieversSameCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'twoRetrieversSameCheck', + description: 'Two Retriever Check For Testing', + factIds: [ + 'test-factretriever', + 'test-factretriever-same-fact', + 'non-existing-factretriever', + ], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + factResult: 3, + operator: 'greaterThan', + result: true, + value: 2, + }, + ], + priority: 1, + }, + }, + }, + }); + }); + + it('should respond with result, facts, fact schemas and checks for multiple retrievers with the last fact winning', async () => { + const results = await factChecker.runChecks('a/a/a', [ + 'twoRetrieversDifferent', + 'twoRetrieversDifferentOrder', + ]); + + expect(results).toHaveLength(2); + expect(results[0]).toMatchObject({ + facts: { + testnumberfact: { + value: 3, + type: 'integer', + description: '', + }, + }, + result: true, + check: { + id: 'twoRetrieversDifferentCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'twoRetrieversDifferentCheck', + description: 'Two Retriever Check For Testing', + factIds: ['test-factretriever-different-fact', 'test-factretriever'], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + factResult: 3, + operator: 'greaterThan', + result: true, + value: 2, + }, + ], + priority: 1, + }, + }, + }, + }); + expect(results[1]).toMatchObject({ + facts: { + testnumberfact: { + value: 3, + type: 'integer', + description: '', + }, + }, + result: true, + check: { + id: 'twoRetrieversDifferentOrderCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'twoRetrieversDifferentOrderCheck', + description: 'Two Retriever Check For Testing', + factIds: ['test-factretriever', 'test-factretriever-different-fact'], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + factResult: 3, + operator: 'greaterThan', + result: true, + value: 2, + }, + ], + priority: 1, + }, + }, + }, + }); + }); + + it('the ordering of the factIds do not effect the result, its just which fact is last.', async () => { + const resultsDIfferentFirst = await factChecker.runChecks('a/a/a', [ + 'twoRetrieversDifferent', + ]); + const resultsDIfferentSecond = await factChecker.runChecks('a/a/a', [ + 'twoRetrieversDifferentOrder', + ]); + + expect(resultsDIfferentFirst[0].result).not.toEqual( + resultsDIfferentSecond[0].result, + ); + }); + + it('should respond with result, facts, fact schemas and checks for multiple retrievers one without data', async () => { + const results = await factChecker.runChecks('a/a/a', [ + 'twoRetrieversOnlyOneData', + ]); + expect(results).toHaveLength(1); + expect(results[0]).toMatchObject({ + facts: { + testnumberfact: { + value: 3, + type: 'integer', + description: '', + }, + }, + result: true, + check: { + id: 'twoRetrieversOnlyOneDataCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'twoRetrieversOnlyOneDataCheck', + description: 'Two Retriever Check For Testing', + factIds: [ + 'test-factretriever', + 'test-factretriever-no-fact', + 'non-existing-factretriever', + ], + rule: { + conditions: { + all: [ + { + fact: 'testnumberfact', + factResult: 3, + operator: 'greaterThan', + result: true, + value: 2, + }, + ], + priority: 1, + }, + }, + }, + }); + }); + it('should use custom operators when defined', async () => { const results = await factChecker.runChecks('a/a/a', ['customOperator']); expect(results).toHaveLength(1); diff --git a/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.ts b/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.ts index c36c0ae6de..721c9b3c62 100644 --- a/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.ts +++ b/plugins/tech-insights-backend-module-jsonfc/src/service/JsonRulesEngineFactChecker.ts @@ -104,14 +104,13 @@ export class JsonRulesEngineFactChecker : await this.checkRegistry.list(); const factIds = techInsightChecks.flatMap(it => it.factIds); const facts = await this.repository.getLatestFactsByIds(factIds, entity); + techInsightChecks.forEach(techInsightCheck => { const rule = techInsightCheck.rule; rule.name = techInsightCheck.id; // Only run checks that have all the facts available: - const hasAllFacts = techInsightCheck.factIds.every( - factId => facts[factId], - ); - if (hasAllFacts) { + const hasFacts = techInsightCheck.factIds.some(factId => facts[factId]); + if (hasFacts) { engine.addRule({ ...techInsightCheck.rule, event: noopEvent }); } else { this.logger.debug( From c4a258f5e474fb53e63d6390b01b56ca8ae014e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 28 Mar 2023 12:30:49 +0200 Subject: [PATCH 028/114] use jest.setTimeout consistently MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- packages/backend-tasks/src/migrations.test.ts | 3 +- .../src/tasks/PluginTaskSchedulerImpl.test.ts | 9 +- .../src/tasks/TaskScheduler.test.ts | 4 +- .../src/tasks/TaskWorker.test.ts | 8 +- .../src/database/TestDatabases.test.ts | 167 ++++++++---------- .../src/database/startMysqlContainer.test.ts | 30 ++-- .../database/startPostgresContainer.test.ts | 32 ++-- .../src/lib/assets/StaticAssetsStore.test.ts | 5 +- .../src/service/DatabaseHandler.test.ts | 3 +- .../database/DefaultCatalogDatabase.test.ts | 3 +- .../DefaultProcessingDatabase.test.ts | 11 +- .../database/DefaultProviderDatabase.test.ts | 11 +- .../deleteWithEagerPruningOfChildren.test.ts | 8 +- .../catalog-backend/src/migrations.test.ts | 4 +- .../modules/core/DefaultLocationStore.test.ts | 10 +- .../service/DefaultEntitiesCatalog.test.ts | 18 +- .../src/service/DefaultRefreshService.test.ts | 5 +- .../src/stitching/Stitcher.test.ts | 3 +- .../database/DatabaseDocumentStore.test.ts | 15 +- .../src/database/util.test.ts | 4 +- .../service/fact/FactRetrieverEngine.test.ts | 4 +- 21 files changed, 138 insertions(+), 219 deletions(-) diff --git a/packages/backend-tasks/src/migrations.test.ts b/packages/backend-tasks/src/migrations.test.ts index 74503ab9a7..7e471a1c16 100644 --- a/packages/backend-tasks/src/migrations.test.ts +++ b/packages/backend-tasks/src/migrations.test.ts @@ -39,6 +39,8 @@ async function migrateUntilBefore(knex: Knex, target: string): Promise { } } +jest.setTimeout(60_000); + describe('migrations', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -80,6 +82,5 @@ describe('migrations', () => { await knex.destroy(); }, - 60_000, ); }); diff --git a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts index 9a29810683..6247755bbd 100644 --- a/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts +++ b/packages/backend-tasks/src/tasks/PluginTaskSchedulerImpl.test.ts @@ -32,6 +32,8 @@ function defer() { return { promise, resolve }; } +jest.setTimeout(60_000); + describe('PluginTaskManagerImpl', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -77,7 +79,6 @@ describe('PluginTaskManagerImpl', () => { await promise; expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -98,7 +99,6 @@ describe('PluginTaskManagerImpl', () => { await promise; expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, - 60_000, ); }); @@ -125,7 +125,6 @@ describe('PluginTaskManagerImpl', () => { await promise; expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -146,7 +145,6 @@ describe('PluginTaskManagerImpl', () => { NotFoundError, ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -172,7 +170,6 @@ describe('PluginTaskManagerImpl', () => { ConflictError, ); }, - 60_000, ); }); @@ -300,7 +297,6 @@ describe('PluginTaskManagerImpl', () => { await promise; expect(fn).toHaveBeenCalledWith(expect.any(AbortSignal)); }, - 60_000, ); }); @@ -340,7 +336,6 @@ describe('PluginTaskManagerImpl', () => { }, ]); }, - 60_000, ); }); diff --git a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts index aa2db5a364..89eff433db 100644 --- a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts +++ b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts @@ -20,6 +20,8 @@ import { Duration } from 'luxon'; import waitForExpect from 'wait-for-expect'; import { TaskScheduler } from './TaskScheduler'; +jest.setTimeout(60_000); + describe('TaskScheduler', () => { const logger = getVoidLogger(); const databases = TestDatabases.create({ @@ -56,7 +58,6 @@ describe('TaskScheduler', () => { expect(fn).toHaveBeenCalled(); }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -77,6 +78,5 @@ describe('TaskScheduler', () => { expect(fn).toHaveBeenCalled(); }); }, - 60_000, ); }); diff --git a/packages/backend-tasks/src/tasks/TaskWorker.test.ts b/packages/backend-tasks/src/tasks/TaskWorker.test.ts index 28dbcc4337..fa2577ce53 100644 --- a/packages/backend-tasks/src/tasks/TaskWorker.test.ts +++ b/packages/backend-tasks/src/tasks/TaskWorker.test.ts @@ -23,6 +23,8 @@ import { DbTasksRow, DB_TASKS_TABLE } from '../database/tables'; import { TaskWorker } from './TaskWorker'; import { TaskSettingsV2 } from './types'; +jest.setTimeout(60_000); + describe('TaskWorker', () => { const logger = getVoidLogger(); const databases = TestDatabases.create({ @@ -115,7 +117,6 @@ describe('TaskWorker', () => { }), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -140,7 +141,6 @@ describe('TaskWorker', () => { expect(logger.error).toHaveBeenCalled(); }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -164,7 +164,6 @@ describe('TaskWorker', () => { expect(fn).toHaveBeenCalledTimes(3); }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -223,7 +222,6 @@ describe('TaskWorker', () => { }), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -280,7 +278,6 @@ describe('TaskWorker', () => { false, ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -334,6 +331,5 @@ describe('TaskWorker', () => { await promise2; expect(fn1.mock.calls.length).toBeGreaterThan(before); }, - 60_000, ); }); diff --git a/packages/backend-test-utils/src/database/TestDatabases.test.ts b/packages/backend-test-utils/src/database/TestDatabases.test.ts index 000e047c4d..691ac5259e 100644 --- a/packages/backend-test-utils/src/database/TestDatabases.test.ts +++ b/packages/backend-test-utils/src/database/TestDatabases.test.ts @@ -22,12 +22,16 @@ import { TestDatabases } from './TestDatabases'; const itIfDocker = isDockerDisabledForTests() ? it.skip : it; +jest.setTimeout(60_000); + describe('TestDatabases', () => { const OLD_ENV = process.env; + beforeEach(() => { jest.resetModules(); process.env = { ...OLD_ENV }; }); + afterAll(() => { process.env = OLD_ENV; }); @@ -49,109 +53,84 @@ describe('TestDatabases', () => { { a: 1 }, ]); }, - 60_000, ); }); - itIfDocker( - 'obeys a provided connection string for postgres 13', - async () => { - const dbs = TestDatabases.create(); - const { host, port, user, password, stop } = await startPostgresContainer( - 'postgres:13', - ); + itIfDocker('obeys a provided connection string for postgres 13', async () => { + const dbs = TestDatabases.create(); + const { host, port, user, password, stop } = await startPostgresContainer( + 'postgres:13', + ); - try { - // Leave a mark - process.env.BACKSTAGE_TEST_DATABASE_POSTGRES13_CONNECTION_STRING = `postgresql://${user}:${password}@${host}:${port}`; - const input = await dbs.init('POSTGRES_13'); - await input.schema.createTable('a', table => - table.string('x').primary(), - ); - await input.insert({ x: 'y' }).into('a'); + try { + // Leave a mark + process.env.BACKSTAGE_TEST_DATABASE_POSTGRES13_CONNECTION_STRING = `postgresql://${user}:${password}@${host}:${port}`; + const input = await dbs.init('POSTGRES_13'); + await input.schema.createTable('a', table => table.string('x').primary()); + await input.insert({ x: 'y' }).into('a'); - // Look for the mark - const database = input.client.config.connection.database; - const output = knexFactory({ - client: 'pg', - connection: { host, port, user, password, database }, - }); - // eslint-disable-next-line jest/no-standalone-expect - await expect(output.select('x').from('a')).resolves.toEqual([ - { x: 'y' }, - ]); - } finally { - await stop(); - } - }, - 60_000, - ); + // Look for the mark + const database = input.client.config.connection.database; + const output = knexFactory({ + client: 'pg', + connection: { host, port, user, password, database }, + }); + // eslint-disable-next-line jest/no-standalone-expect + await expect(output.select('x').from('a')).resolves.toEqual([{ x: 'y' }]); + } finally { + await stop(); + } + }); - itIfDocker( - 'obeys a provided connection string for postgres 9', - async () => { - const dbs = TestDatabases.create(); - const { host, port, user, password, stop } = await startPostgresContainer( - 'postgres:9', - ); + itIfDocker('obeys a provided connection string for postgres 9', async () => { + const dbs = TestDatabases.create(); + const { host, port, user, password, stop } = await startPostgresContainer( + 'postgres:9', + ); - try { - // Leave a mark - process.env.BACKSTAGE_TEST_DATABASE_POSTGRES9_CONNECTION_STRING = `postgresql://${user}:${password}@${host}:${port}`; - const input = await dbs.init('POSTGRES_9'); - await input.schema.createTable('a', table => - table.string('x').primary(), - ); - await input.insert({ x: 'y' }).into('a'); + try { + // Leave a mark + process.env.BACKSTAGE_TEST_DATABASE_POSTGRES9_CONNECTION_STRING = `postgresql://${user}:${password}@${host}:${port}`; + const input = await dbs.init('POSTGRES_9'); + await input.schema.createTable('a', table => table.string('x').primary()); + await input.insert({ x: 'y' }).into('a'); - // Look for the mark - const database = input.client.config.connection.database; - const output = knexFactory({ - client: 'pg', - connection: { host, port, user, password, database }, - }); - // eslint-disable-next-line jest/no-standalone-expect - await expect(output.select('x').from('a')).resolves.toEqual([ - { x: 'y' }, - ]); - } finally { - await stop(); - } - }, - 60_000, - ); + // Look for the mark + const database = input.client.config.connection.database; + const output = knexFactory({ + client: 'pg', + connection: { host, port, user, password, database }, + }); + // eslint-disable-next-line jest/no-standalone-expect + await expect(output.select('x').from('a')).resolves.toEqual([{ x: 'y' }]); + } finally { + await stop(); + } + }); - itIfDocker( - 'obeys a provided connection string for mysql 8', - async () => { - const dbs = TestDatabases.create(); - const { host, port, user, password, stop } = await startMysqlContainer( - 'mysql:8', - ); + itIfDocker('obeys a provided connection string for mysql 8', async () => { + const dbs = TestDatabases.create(); + const { host, port, user, password, stop } = await startMysqlContainer( + 'mysql:8', + ); - try { - // Leave a mark - process.env.BACKSTAGE_TEST_DATABASE_MYSQL8_CONNECTION_STRING = `mysql://${user}:${password}@${host}:${port}/ignored`; - const input = await dbs.init('MYSQL_8'); - await input.schema.createTable('a', table => - table.string('x').primary(), - ); - await input.insert({ x: 'y' }).into('a'); + try { + // Leave a mark + process.env.BACKSTAGE_TEST_DATABASE_MYSQL8_CONNECTION_STRING = `mysql://${user}:${password}@${host}:${port}/ignored`; + const input = await dbs.init('MYSQL_8'); + await input.schema.createTable('a', table => table.string('x').primary()); + await input.insert({ x: 'y' }).into('a'); - // Look for the mark - const database = input.client.config.connection.database; - const output = knexFactory({ - client: 'mysql2', - connection: { host, port, user, password, database }, - }); - // eslint-disable-next-line jest/no-standalone-expect - await expect(output.select('x').from('a')).resolves.toEqual([ - { x: 'y' }, - ]); - } finally { - await stop(); - } - }, - 60_000, - ); + // Look for the mark + const database = input.client.config.connection.database; + const output = knexFactory({ + client: 'mysql2', + connection: { host, port, user, password, database }, + }); + // eslint-disable-next-line jest/no-standalone-expect + await expect(output.select('x').from('a')).resolves.toEqual([{ x: 'y' }]); + } finally { + await stop(); + } + }); }); diff --git a/packages/backend-test-utils/src/database/startMysqlContainer.test.ts b/packages/backend-test-utils/src/database/startMysqlContainer.test.ts index 282e84dabc..23cb128a35 100644 --- a/packages/backend-test-utils/src/database/startMysqlContainer.test.ts +++ b/packages/backend-test-utils/src/database/startMysqlContainer.test.ts @@ -20,21 +20,19 @@ import { startMysqlContainer } from './startMysqlContainer'; const itIfDocker = isDockerDisabledForTests() ? it.skip : it; +jest.setTimeout(60_000); + describe('startMysqlContainer', () => { - itIfDocker( - 'successfully launches the container', - async () => { - const { stop, ...connection } = await startMysqlContainer('mysql:8'); - const db = createConnection({ client: 'mysql2', connection }); - try { - const result = await db.select(db.raw('version() AS version')); - // eslint-disable-next-line jest/no-standalone-expect - expect(result[0]?.version).toContain('8.'); - } finally { - await db.destroy(); - await stop(); - } - }, - 60_000, - ); + itIfDocker('successfully launches the container', async () => { + const { stop, ...connection } = await startMysqlContainer('mysql:8'); + const db = createConnection({ client: 'mysql2', connection }); + try { + const result = await db.select(db.raw('version() AS version')); + // eslint-disable-next-line jest/no-standalone-expect + expect(result[0]?.version).toContain('8.'); + } finally { + await db.destroy(); + await stop(); + } + }); }); diff --git a/packages/backend-test-utils/src/database/startPostgresContainer.test.ts b/packages/backend-test-utils/src/database/startPostgresContainer.test.ts index 3c3ad5e15f..f64a605fd4 100644 --- a/packages/backend-test-utils/src/database/startPostgresContainer.test.ts +++ b/packages/backend-test-utils/src/database/startPostgresContainer.test.ts @@ -20,23 +20,19 @@ import { startPostgresContainer } from './startPostgresContainer'; const itIfDocker = isDockerDisabledForTests() ? it.skip : it; +jest.setTimeout(60_000); + describe('startPostgresContainer', () => { - itIfDocker( - 'successfully launches the container', - async () => { - const { stop, ...connection } = await startPostgresContainer( - 'postgres:13', - ); - const db = createConnection({ client: 'pg', connection }); - try { - const result = await db.select(db.raw('version()')); - // eslint-disable-next-line jest/no-standalone-expect - expect(result[0]?.version).toContain('PostgreSQL'); - } finally { - await db.destroy(); - await stop(); - } - }, - 60_000, - ); + itIfDocker('successfully launches the container', async () => { + const { stop, ...connection } = await startPostgresContainer('postgres:13'); + const db = createConnection({ client: 'pg', connection }); + try { + const result = await db.select(db.raw('version()')); + // eslint-disable-next-line jest/no-standalone-expect + expect(result[0]?.version).toContain('PostgreSQL'); + } finally { + await db.destroy(); + await stop(); + } + }); }); diff --git a/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts b/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts index 3d0973e18c..8a0935d4e3 100644 --- a/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts +++ b/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts @@ -33,6 +33,8 @@ function createDatabaseManager( }; } +jest.setTimeout(60_000); + describe('StaticAssetsStore', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -78,7 +80,6 @@ describe('StaticAssetsStore', () => { store.getAsset('does-not-exist.txt'), ).resolves.toBeUndefined(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -130,7 +131,6 @@ describe('StaticAssetsStore', () => { const sameBar = await store.getAsset('bar'); expect(oldBar!.lastModifiedAt).toEqual(sameBar!.lastModifiedAt); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -172,6 +172,5 @@ describe('StaticAssetsStore', () => { await expect(store.getAsset('new')).resolves.toBeDefined(); await expect(store.getAsset('old')).resolves.toBeUndefined(); }, - 60_000, ); }); diff --git a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts index be4f82f580..8978679ff4 100644 --- a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts +++ b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts @@ -31,6 +31,8 @@ const bazaarProject: any = { responsible: 'r', }; +jest.setTimeout(60_000); + describe('DatabaseHandler', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -96,6 +98,5 @@ describe('DatabaseHandler', () => { res[0].members_count === '1' || res[0].members_count === 1, ).toBeTruthy(); }, - 60_000, ); }); diff --git a/plugins/catalog-backend/src/database/DefaultCatalogDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultCatalogDatabase.test.ts index 827ab58ebe..bcc20816a4 100644 --- a/plugins/catalog-backend/src/database/DefaultCatalogDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultCatalogDatabase.test.ts @@ -21,6 +21,8 @@ import { DefaultCatalogDatabase } from './DefaultCatalogDatabase'; import { applyDatabaseMigrations } from './migrations'; import { DbRefreshStateReferencesRow, DbRefreshStateRow } from './tables'; +jest.setTimeout(60_000); + describe('DefaultCatalogDatabase', () => { const defaultLogger = getVoidLogger(); const databases = TestDatabases.create({ @@ -105,7 +107,6 @@ describe('DefaultCatalogDatabase', () => { 'location:default/root-2', ]); }, - 60_000, ); }); }); diff --git a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts index 540c93ef13..db5153a8ba 100644 --- a/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultProcessingDatabase.test.ts @@ -33,6 +33,8 @@ import { createRandomProcessingInterval } from '../processing/refresh'; import { timestampToDateTime } from './conversion'; import { generateStableHash } from './util'; +jest.setTimeout(60_000); + describe('DefaultProcessingDatabase', () => { const defaultLogger = getVoidLogger(); const databases = TestDatabases.create({ @@ -106,7 +108,6 @@ describe('DefaultProcessingDatabase', () => { ); }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -153,7 +154,6 @@ describe('DefaultProcessingDatabase', () => { ), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -193,7 +193,6 @@ describe('DefaultProcessingDatabase', () => { expect(entities[0].errors).toEqual("['something broke']"); expect(entities[0].location_key).toEqual('key'); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -279,7 +278,6 @@ describe('DefaultProcessingDatabase', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -328,7 +326,6 @@ describe('DefaultProcessingDatabase', () => { expect(refreshStateEntries).toHaveLength(1); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -478,7 +475,6 @@ describe('DefaultProcessingDatabase', () => { } }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -583,7 +579,6 @@ describe('DefaultProcessingDatabase', () => { expect(entities2.length).toBe(1); expect(entities2[0].cache).toEqual('{}'); }, - 60_000, ); }); @@ -636,7 +631,6 @@ describe('DefaultProcessingDatabase', () => { ).resolves.toEqual({ items: [] }); }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -672,7 +666,6 @@ describe('DefaultProcessingDatabase', () => { const nextUpdateDiff = nextUpdate.diff(now, 'seconds'); expect(nextUpdateDiff.seconds).toBeGreaterThanOrEqual(90); }, - 60_000, ); }); diff --git a/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts b/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts index 09bec187fa..19093b542b 100644 --- a/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts +++ b/plugins/catalog-backend/src/database/DefaultProviderDatabase.test.ts @@ -24,6 +24,8 @@ import { DefaultProviderDatabase } from './DefaultProviderDatabase'; import { applyDatabaseMigrations } from './migrations'; import { DbRefreshStateReferencesRow, DbRefreshStateRow } from './tables'; +jest.setTimeout(60_000); + describe('DefaultProviderDatabase', () => { const defaultLogger = getVoidLogger(); const databases = TestDatabases.create({ @@ -184,7 +186,6 @@ describe('DefaultProviderDatabase', () => { ), ).toBeTruthy(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -321,7 +322,6 @@ describe('DefaultProviderDatabase', () => { ), ).toBeFalsy(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -392,7 +392,6 @@ describe('DefaultProviderDatabase', () => { ), ).toBeTruthy(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -443,7 +442,6 @@ describe('DefaultProviderDatabase', () => { }), ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -493,7 +491,6 @@ describe('DefaultProviderDatabase', () => { ), ).toBeFalsy(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -560,7 +557,6 @@ describe('DefaultProviderDatabase', () => { }), ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -688,7 +684,6 @@ describe('DefaultProviderDatabase', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -743,7 +738,6 @@ describe('DefaultProviderDatabase', () => { ]), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -777,7 +771,6 @@ describe('DefaultProviderDatabase', () => { const state = await knex('refresh_state').select(); expect(state).toEqual([]); }, - 60_000, ); }); }); diff --git a/plugins/catalog-backend/src/database/operations/provider/deleteWithEagerPruningOfChildren.test.ts b/plugins/catalog-backend/src/database/operations/provider/deleteWithEagerPruningOfChildren.test.ts index 8ab94df64a..e3cc813c96 100644 --- a/plugins/catalog-backend/src/database/operations/provider/deleteWithEagerPruningOfChildren.test.ts +++ b/plugins/catalog-backend/src/database/operations/provider/deleteWithEagerPruningOfChildren.test.ts @@ -21,6 +21,8 @@ import { applyDatabaseMigrations } from '../../migrations'; import { DbRefreshStateReferencesRow, DbRefreshStateRow } from '../../tables'; import { deleteWithEagerPruningOfChildren } from './deleteWithEagerPruningOfChildren'; +jest.setTimeout(60_000); + describe('deleteWithEagerPruningOfChildren', () => { const databases = TestDatabases.create({ ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -111,7 +113,6 @@ describe('deleteWithEagerPruningOfChildren', () => { await run(knex, { sourceKey: 'P1', entityRefs: ['E1', 'E3'] }); await expect(remainingEntities(knex)).resolves.toEqual(['E4', 'E5']); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -141,7 +142,6 @@ describe('deleteWithEagerPruningOfChildren', () => { await run(knex, { sourceKey: 'P1', entityRefs: ['E1'] }); await expect(remainingEntities(knex)).resolves.toEqual(['E2']); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -170,7 +170,6 @@ describe('deleteWithEagerPruningOfChildren', () => { await run(knex, { sourceKey: 'P1', entityRefs: ['E1'] }); await expect(remainingEntities(knex)).resolves.toEqual(['E2', 'E3']); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -199,7 +198,6 @@ describe('deleteWithEagerPruningOfChildren', () => { await run(knex, { sourceKey: 'P1', entityRefs: ['E1'] }); await expect(remainingEntities(knex)).resolves.toEqual(['E2', 'E3']); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -240,7 +238,6 @@ describe('deleteWithEagerPruningOfChildren', () => { await run(knex, { sourceKey: 'P1', entityRefs: ['E3'] }); await expect(remainingEntities(knex)).resolves.toEqual([]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -273,6 +270,5 @@ describe('deleteWithEagerPruningOfChildren', () => { 'E4', ]); }, - 60_000, ); }); diff --git a/plugins/catalog-backend/src/migrations.test.ts b/plugins/catalog-backend/src/migrations.test.ts index 33f88e9aa7..779d2582bd 100644 --- a/plugins/catalog-backend/src/migrations.test.ts +++ b/plugins/catalog-backend/src/migrations.test.ts @@ -39,6 +39,8 @@ async function migrateUntilBefore(knex: Knex, target: string): Promise { } } +jest.setTimeout(60_000); + describe('migrations', () => { const databases = TestDatabases.create({ ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -159,7 +161,6 @@ describe('migrations', () => { await knex.destroy(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -237,6 +238,5 @@ describe('migrations', () => { await knex.destroy(); }, - 60_000, ); }); diff --git a/plugins/catalog-backend/src/modules/core/DefaultLocationStore.test.ts b/plugins/catalog-backend/src/modules/core/DefaultLocationStore.test.ts index 9a957f8838..fca7faacf8 100644 --- a/plugins/catalog-backend/src/modules/core/DefaultLocationStore.test.ts +++ b/plugins/catalog-backend/src/modules/core/DefaultLocationStore.test.ts @@ -13,11 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { v4 as uuid } from 'uuid'; import { applyDatabaseMigrations } from '../../database/migrations'; import { DefaultLocationStore } from './DefaultLocationStore'; +jest.setTimeout(60_000); + describe('DefaultLocationStore', () => { const databases = TestDatabases.create({ ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -42,7 +45,6 @@ describe('DefaultLocationStore', () => { entities: [], }); }, - 60_000, ); describe('listLocations', () => { @@ -52,7 +54,6 @@ describe('DefaultLocationStore', () => { const { store } = await createLocationStore(databaseId); expect(await store.listLocations()).toEqual([]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -77,7 +78,6 @@ describe('DefaultLocationStore', () => { ]), ); }, - 60_000, ); }); @@ -96,7 +96,6 @@ describe('DefaultLocationStore', () => { new RegExp(`Location ${spec.type}:${spec.target} already exists`), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -127,7 +126,6 @@ describe('DefaultLocationStore', () => { ]), }); }, - 60_000, ); }); @@ -141,7 +139,6 @@ describe('DefaultLocationStore', () => { new RegExp(`Found no location with ID ${id}`), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -175,7 +172,6 @@ describe('DefaultLocationStore', () => { ], }); }, - 60_000, ); }); }); diff --git a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts index 25cdc8d826..08ae295834 100644 --- a/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts +++ b/plugins/catalog-backend/src/service/DefaultEntitiesCatalog.test.ts @@ -35,6 +35,8 @@ import { buildEntitySearch } from '../stitching/buildEntitySearch'; import { DefaultEntitiesCatalog } from './DefaultEntitiesCatalog'; import { EntitiesRequest } from '../catalog/types'; +jest.setTimeout(60_000); + describe('DefaultEntitiesCatalog', () => { let knex: Knex; @@ -184,7 +186,6 @@ describe('DefaultEntitiesCatalog', () => { ]), ); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -200,7 +201,6 @@ describe('DefaultEntitiesCatalog', () => { catalog.entityAncestry('k:default/root'), ).rejects.toThrow('No such entity k:default/root'); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -273,7 +273,6 @@ describe('DefaultEntitiesCatalog', () => { ]), ); }, - 60_000, ); }); @@ -313,7 +312,6 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities[0]).toEqual(entity2); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -353,7 +351,6 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities[0]).toEqual(entity1); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -427,7 +424,6 @@ describe('DefaultEntitiesCatalog', () => { expect(entities).toContainEqual(entity2); expect(entities).toContainEqual(entity4); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -473,7 +469,6 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(1); expect(entities).toContainEqual(entity1); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -510,7 +505,6 @@ describe('DefaultEntitiesCatalog', () => { expect(entities.length).toBe(0); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -569,7 +563,6 @@ describe('DefaultEntitiesCatalog', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -665,7 +658,6 @@ describe('DefaultEntitiesCatalog', () => { }), ).resolves.toEqual(['n4', 'n3', 'n1', 'n2']); }, - 60_000, ); }); @@ -722,7 +714,6 @@ describe('DefaultEntitiesCatalog', () => { 'k:default/two', ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -767,7 +758,6 @@ describe('DefaultEntitiesCatalog', () => { null, ]); }, - 60_000, ); }); @@ -1617,7 +1607,6 @@ describe('DefaultEntitiesCatalog', () => { new Set(['k:default/unrelated1', 'k:default/unrelated2']), ); }, - 60_000, ); }); @@ -1660,7 +1649,6 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -1711,7 +1699,6 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -1757,7 +1744,6 @@ describe('DefaultEntitiesCatalog', () => { }, }); }, - 60_000, ); }); }); diff --git a/plugins/catalog-backend/src/service/DefaultRefreshService.test.ts b/plugins/catalog-backend/src/service/DefaultRefreshService.test.ts index eafa0b0c14..85cec596ce 100644 --- a/plugins/catalog-backend/src/service/DefaultRefreshService.test.ts +++ b/plugins/catalog-backend/src/service/DefaultRefreshService.test.ts @@ -34,6 +34,8 @@ import { EntityProcessingRequest } from '../processing/types'; import { Stitcher } from '../stitching/Stitcher'; import { DefaultRefreshService } from './DefaultRefreshService'; +jest.setTimeout(60_000); + describe('DefaultRefreshService', () => { const defaultLogger = getVoidLogger(); const databases = TestDatabases.create({ @@ -221,7 +223,6 @@ describe('DefaultRefreshService', () => { await engine.stop(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -275,7 +276,6 @@ describe('DefaultRefreshService', () => { await engine.stop(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -337,6 +337,5 @@ describe('DefaultRefreshService', () => { await engine.stop(); }, - 60_000, ); }); diff --git a/plugins/catalog-backend/src/stitching/Stitcher.test.ts b/plugins/catalog-backend/src/stitching/Stitcher.test.ts index 729793a8d7..1efcb01a3c 100644 --- a/plugins/catalog-backend/src/stitching/Stitcher.test.ts +++ b/plugins/catalog-backend/src/stitching/Stitcher.test.ts @@ -27,6 +27,8 @@ import { } from '../database/tables'; import { Stitcher } from './Stitcher'; +jest.setTimeout(60_000); + describe('Stitcher', () => { const databases = TestDatabases.create({ ids: ['MYSQL_8', 'POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -267,6 +269,5 @@ describe('Stitcher', () => { ]), ); }, - 60_000, ); }); diff --git a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts index 59c8d85562..2f99a02521 100644 --- a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts +++ b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts @@ -44,6 +44,8 @@ function createDatabaseManager( }; } +jest.setTimeout(60_000); + describe('DatabaseDocumentStore', () => { describe('unsupported', () => { const databases = TestDatabases.create({ @@ -58,7 +60,6 @@ describe('DatabaseDocumentStore', () => { expect(supported).toBe(false); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -71,7 +72,6 @@ describe('DatabaseDocumentStore', () => { async () => await DatabaseDocumentStore.create(databaseManager), ).rejects.toThrow(); }, - 60_000, ); }); @@ -102,7 +102,6 @@ describe('DatabaseDocumentStore', () => { expect(supported).toBe(true); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -131,7 +130,6 @@ describe('DatabaseDocumentStore', () => { await knex.count('*').where('type', 'my-type').from('documents'), ).toEqual([{ count: '2' }]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -172,7 +170,6 @@ describe('DatabaseDocumentStore', () => { await knex.count('*').where('type', 'my-type').from('documents'), ).toEqual([{ count: '4' }]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -219,7 +216,6 @@ describe('DatabaseDocumentStore', () => { await knex.count('*').where('type', 'my-type').from('documents'), ).toEqual([{ count: '0' }]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -270,7 +266,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -325,7 +320,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -378,7 +372,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -433,7 +426,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -498,7 +490,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -551,7 +542,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -610,7 +600,6 @@ describe('DatabaseDocumentStore', () => { }, ]); }, - 60_000, ); }); }); diff --git a/plugins/search-backend-module-pg/src/database/util.test.ts b/plugins/search-backend-module-pg/src/database/util.test.ts index b3df5a3ad4..781805b3a3 100644 --- a/plugins/search-backend-module-pg/src/database/util.test.ts +++ b/plugins/search-backend-module-pg/src/database/util.test.ts @@ -16,6 +16,8 @@ import { TestDatabases } from '@backstage/backend-test-utils'; import { queryPostgresMajorVersion } from './util'; +jest.setTimeout(60_000); + describe('util', () => { describe('unsupported', () => { const databases = TestDatabases.create({ @@ -31,7 +33,6 @@ describe('util', () => { async () => await queryPostgresMajorVersion(knex), ).rejects.toThrow(); }, - 60_000, ); }); @@ -56,7 +57,6 @@ describe('util', () => { expectedVersion, ); }, - 60_000, ); }); }); diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index 37c7cdf3ca..5bf05cda98 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { FactRetriever, FactRetrieverRegistration, @@ -34,6 +35,7 @@ import { ConfigReader } from '@backstage/config'; import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { TaskScheduler } from '@backstage/backend-tasks'; +jest.setTimeout(60_000); jest.useFakeTimers(); const testFactRetriever: FactRetriever = { @@ -175,7 +177,6 @@ describe('FactRetrieverEngine', () => { ); expect(schemaAssertionCallback).toHaveBeenCalled(); }, - 60_000, ); it.each(databases.eachSupportedId())( @@ -227,6 +228,5 @@ describe('FactRetrieverEngine', () => { }), ); }, - 60_000, ); }); From a0f66c48265808b596ad242e96abbdfc69bc715c Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Tue, 28 Mar 2023 12:57:28 +0200 Subject: [PATCH 029/114] Update docs/features/software-templates/writing-custom-actions.md Co-authored-by: Patrik Oldsberg Signed-off-by: Ben Lambert --- docs/features/software-templates/writing-custom-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 8311402f3c..966cc3bdff 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -107,7 +107,7 @@ export const createNewFileAction = () => { }; ``` -#### A note on naming conventions +#### Naming Conventions Try to keep names consistent for both your own custom actions, and any actions contributed to open source. We've found that a separation of `:` and using a verb as the last part of the name works well. We follow `provider:entity:verb` or as close to this as possible for our built in actions. For example, `github:actions:create` or `github:repo:create`. From cf085b9d97e9b90210b76ae876216d5e29fce6a3 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 28 Mar 2023 12:59:49 +0200 Subject: [PATCH 030/114] chore: updating the example Signed-off-by: blam --- docs/features/software-templates/writing-custom-actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 966cc3bdff..18ef703330 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -75,7 +75,7 @@ import { writeFile } from 'fs'; export const createNewFileAction = () => { return createTemplateAction<{ contents: string; filename: string }>({ - id: 'file:create', + id: 'acme:file:create', schema: { input: { required: ['contents', 'filename'], @@ -112,7 +112,7 @@ export const createNewFileAction = () => { Try to keep names consistent for both your own custom actions, and any actions contributed to open source. We've found that a separation of `:` and using a verb as the last part of the name works well. We follow `provider:entity:verb` or as close to this as possible for our built in actions. For example, `github:actions:create` or `github:repo:create`. -Also feel free to use your company name to namespace them if you prefer too, for example `acme:file:create`. +Also feel free to use your company name to namespace them if you prefer too, for example `acme:file:create` like above. Prefer to use `camelCase` over `snake-case` for these actions if possible, which leads to better reading and writing of template entity definitions. From 7fc4dcea11fb2996fa9b1e8bde4a803325dcdf97 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 28 Mar 2023 13:04:56 +0200 Subject: [PATCH 031/114] chore: woops missed one Signed-off-by: blam --- docs/features/software-templates/writing-custom-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 18ef703330..f04940a418 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -31,7 +31,7 @@ import { z } from 'zod'; export const createNewFileAction = () => { return createTemplateAction({ - id: 'file:create', + id: 'acme:file:create', schema: { input: z.object({ contents: z.string().describe('The contents of the file'), From d3364e5a04029f19fc1fb4d39b9acd6c87a5cec1 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 28 Mar 2023 09:51:40 -0400 Subject: [PATCH 032/114] feat(circleci): Add hover to avatar icon Signed-off-by: Adam Harvey --- .../components/BuildsPage/lib/CITable/CITable.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx b/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx index 22f69ac30f..82ee144a24 100644 --- a/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx +++ b/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx @@ -21,6 +21,7 @@ import { Box, IconButton, makeStyles, + Tooltip, } from '@material-ui/core'; import RetryIcon from '@material-ui/icons/Replay'; import GitHubIcon from '@material-ui/icons/GitHub'; @@ -116,7 +117,13 @@ const SourceInfo = ({ build }: { build: CITableBuildInfo }) => { return ( - + + + {source?.branchName} @@ -217,7 +224,11 @@ const generatedColumns: TableColumn[] = [ - {row?.workflow?.name} + + + + {row?.workflow?.name} + ), }, From 5b1eb586dd08592fb0a6a25dd01728c06f42ab1e Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 28 Mar 2023 09:52:00 -0400 Subject: [PATCH 033/114] chore: Link feature enhancements Signed-off-by: Adam Harvey --- plugins/circleci/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/circleci/README.md b/plugins/circleci/README.md index 014a2a3f99..f468ab37e2 100644 --- a/plugins/circleci/README.md +++ b/plugins/circleci/README.md @@ -74,4 +74,4 @@ spec: ## Limitations - CircleCI has pretty strict rate limits per token, be careful with opened tabs -- CircleCI doesn't provide a way to auth by 3rd party (e.g. GitHub) token, nor by calling their OAuth endpoints, which currently stands in the way of better auth integration with Backstage (https://discuss.circleci.com/t/circleci-api-authorization-with-github-token/5356) +- CircleCI doesn't provide a way to auth by 3rd party (e.g. GitHub) token, nor by calling their OAuth endpoints, which currently stands in the way of better auth integration with Backstage (reference [feature request](https://ideas.circleci.com/api-feature-requests/p/allow-circleci-api-calls-using-github-auth) and [discussion topic](https://discuss.circleci.com/t/circleci-api-authorization-with-github-token/5356)) From d14ac997c367538b07a22fc76f38af88537d8206 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 28 Mar 2023 09:54:10 -0400 Subject: [PATCH 034/114] chore: Add changeset Signed-off-by: Adam Harvey --- .changeset/clean-items-draw.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/clean-items-draw.md diff --git a/.changeset/clean-items-draw.md b/.changeset/clean-items-draw.md new file mode 100644 index 0000000000..0dafb41265 --- /dev/null +++ b/.changeset/clean-items-draw.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-circleci': patch +--- + +Add hover over CircleCI avatar icon to show user name in builds table From be705076b3d0e01cda99cdd79358a4a24aefb421 Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Tue, 28 Mar 2023 11:14:14 -0400 Subject: [PATCH 035/114] add jamieklassen as k8s maintainer Signed-off-by: Jamie Klassen --- OWNERS.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OWNERS.md b/OWNERS.md index 08736d5723..31a69f4f3e 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -44,9 +44,10 @@ Team: @backstage/kubernetes-maintainers Scope: The Kubernetes plugin and the base it provides for other plugins to build upon. -| Name | Organization | Team | GitHub | Discord | -| -------------- | ------------ | ---- | ---------------------------------------- | ------------ | -| Matthew Clarke | Spotify | | [mclarke47](http://github.com/mclarke47) | mclarke#0725 | +| Name | Organization | Team | GitHub | Discord | +| -------------- | ------------ | ---- | ---------------------------------------------- | ----------------- | +| Matthew Clarke | Spotify | | [mclarke47](http://github.com/mclarke47) | mclarke#0725 | +| Jamie Klassen | VMware | | [jamieklassen](http://github.com/jamieklassen) | jamieklassen#3047 | ### TechDocs From cc0e135cb921fdb7e650596529c71b579c0c71ad Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 25 Mar 2023 15:30:07 +0100 Subject: [PATCH 036/114] root: bump to TypeScript 5.0 Signed-off-by: Patrik Oldsberg --- package.json | 2 +- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index e86692839e..6cf9251a6c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "semver": "^7.3.2", "shx": "^0.3.2", "ts-node": "^10.4.0", - "typescript": "~4.7.0" + "typescript": "~5.0.0" }, "prettier": "@spotify/prettier-config", "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 116a15cc5d..06788a826e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35894,7 +35894,7 @@ __metadata: semver: ^7.3.2 shx: ^0.3.2 ts-node: ^10.4.0 - typescript: ~4.7.0 + typescript: ~5.0.0 languageName: unknown linkType: soft @@ -38744,16 +38744,6 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.7.0": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 5750181b1cd7e6482c4195825547e70f944114fb47e58e4aa7553e62f11b3f3173766aef9c281783edfd881f7b8299cf35e3ca8caebe73d8464528c907a164df - languageName: node - linkType: hard - "typescript@npm:~4.8.2, typescript@npm:~4.8.4": version: 4.8.4 resolution: "typescript@npm:4.8.4" @@ -38764,13 +38754,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@~4.7.0#~builtin": - version: 4.7.4 - resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin::version=4.7.4&hash=a1c5e5" +"typescript@npm:~5.0.0": + version: 5.0.2 + resolution: "typescript@npm:5.0.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9096d8f6c16cb80ef3bf96fcbbd055bf1c4a43bd14f3b7be45a9fbe7ada46ec977f604d5feed3263b4f2aa7d4c7477ce5f9cd87de0d6feedec69a983f3a4f93e + checksum: bef1dcd166acfc6934b2ec4d72f93edb8961a5fab36b8dd2aaf6f4f4cd5c0210f2e0850aef4724f3b4913d5aef203a94a28ded731b370880c8bcff7e4ff91fc1 languageName: node linkType: hard @@ -38784,6 +38774,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@~5.0.0#~builtin": + version: 5.0.2 + resolution: "typescript@patch:typescript@npm%3A5.0.2#~builtin::version=5.0.2&hash=a1c5e5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: bdbf3d0aac0d6cf010fbe0536753dc19f278eb4aba88140dcd25487dfe1c56ca8b33abc0dcd42078790a939b08ebc4046f3e9bb961d77d3d2c3cfa9829da4d53 + languageName: node + linkType: hard + "ua-parser-js@npm:^0.7.18, ua-parser-js@npm:^0.7.30": version: 0.7.33 resolution: "ua-parser-js@npm:0.7.33" From 4cbd92d95a46a14480e30bf01baad6a9edd6cb1c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 29 Mar 2023 10:21:22 +0200 Subject: [PATCH 037/114] OWNERS: add org member luchillo17 Signed-off-by: Patrik Oldsberg --- OWNERS.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/OWNERS.md b/OWNERS.md index 31a69f4f3e..f8c6e9138a 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -70,20 +70,21 @@ Scope: The TechDocs plugin and related tooling ## Organization Members -| Name | Organization | GitHub | Discord | -| ------------------ | ------------------------- | ----------------------------------------------- | ------------------------------ | -| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey#3739` | -| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` | -| Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` | -| Brian Fletcher | RoadieHQ | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` | -| David Tuite | Roadie | [dtuite](https://github.com/dtuite) | `David Tuite (roadie.io)#1010` | -| Himanshu Mishra | Harness.io | [OrkoHunter](https://github.com/OrkoHunter) | `OrkoHunter#1520` | -| Jamie Klassen | VMware | [jamieklassen](https://github.com/jamieklassen) | `jamieklassen#3047` | -| Jussi Hallila | Roadie | [Xantier](https://github.com/Xantier) | `Xantier#0086` | -| Mark Avery | Cvent | [webark](https://github.com/webark) | `webark#8471` | -| Patrick Jungermann | Bonial International GmbH | [pjungermann](https://github.com/pjungermann) | `pjungermann#6933` | -| Phil Kuang | FactSet Research Systems | [kuangp](https://github.com/kuangp) | `pkuang#3202` | -| Taras Mankovski | Frontside | [taras](https://github.com/taras) | `tarasm#1256` | +| Name | Organization | GitHub | Discord | +| ------------------------------ | ------------------------- | ----------------------------------------------- | ------------------------------ | +| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey#3739` | +| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` | +| Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` | +| Brian Fletcher | RoadieHQ | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` | +| Carlos Esteban Lopez Jaramillo | VMWare | [luchillo17](https://github.com/luchillo17) | `luchillo17#8777` | +| David Tuite | Roadie | [dtuite](https://github.com/dtuite) | `David Tuite (roadie.io)#1010` | +| Himanshu Mishra | Harness.io | [OrkoHunter](https://github.com/OrkoHunter) | `OrkoHunter#1520` | +| Jamie Klassen | VMware | [jamieklassen](https://github.com/jamieklassen) | `jamieklassen#3047` | +| Jussi Hallila | Roadie | [Xantier](https://github.com/Xantier) | `Xantier#0086` | +| Mark Avery | Cvent | [webark](https://github.com/webark) | `webark#8471` | +| Patrick Jungermann | Bonial International GmbH | [pjungermann](https://github.com/pjungermann) | `pjungermann#6933` | +| Phil Kuang | FactSet Research Systems | [kuangp](https://github.com/kuangp) | `pkuang#3202` | +| Taras Mankovski | Frontside | [taras](https://github.com/taras) | `tarasm#1256` | ## Emeritus Core Maintainers From 76e8f08fa2438d3a02a273c4f5295b22cb0aa337 Mon Sep 17 00:00:00 2001 From: Matthew Clarke Date: Wed, 29 Mar 2023 04:29:10 -0400 Subject: [PATCH 038/114] fix: localKubectlProxy auth provider throwing error (#17139) * fix: localKubectlProxy auth provider throwing error Signed-off-by: Matthew Clarke * docs: changeset Signed-off-by: Matthew Clarke --------- Signed-off-by: Matthew Clarke --- .changeset/poor-cars-fold.md | 5 ++ .../src/service/KubernetesFetcher.test.ts | 49 +++++++++++++++++++ .../src/service/KubernetesFetcher.ts | 5 +- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .changeset/poor-cars-fold.md diff --git a/.changeset/poor-cars-fold.md b/.changeset/poor-cars-fold.md new file mode 100644 index 0000000000..8268a616d8 --- /dev/null +++ b/.changeset/poor-cars-fold.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +fix localKubectlProxy auth provider fetching diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts index 6482ba5f9e..9800780077 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.test.ts @@ -235,6 +235,55 @@ describe('KubernetesFetcher', () => { ], }); }); + it('localKubectlProxy authProvider fetches resources correctly', async () => { + worker.use( + rest.get( + 'http://localhost:9999/k8s/clusters/1234/api/v1/services', + (req, res, ctx) => + res( + withLabels(req, ctx, { + items: [{ metadata: { name: 'service-name' } }], + }), + ), + ), + ); + + const result = await sut.fetchObjectsForService({ + serviceId: 'some-service', + clusterDetails: { + name: 'cluster1', + url: 'http://localhost:9999/k8s/clusters/1234', + authProvider: 'localKubectlProxy', + }, + objectTypesToFetch: new Set([ + { + group: '', + apiVersion: 'v1', + plural: 'services', + objectType: 'services', + }, + ]), + labelSelector: '', + customResources: [], + }); + + expect(result).toStrictEqual({ + errors: [], + responses: [ + { + type: 'services', + resources: [ + { + metadata: { + name: 'service-name', + labels: { 'backstage.io/kubernetes-id': 'some-service' }, + }, + }, + ], + }, + ], + }); + }); it('should return pods, services', async () => { worker.use( rest.get('http://localhost:9999/api/v1/pods', (req, res, ctx) => diff --git a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts index 6161c040d7..48bea3106b 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFetcher.ts @@ -191,7 +191,10 @@ export class KubernetesClientBasedFetcher implements KubernetesFetcher { let url: URL; let requestInit: RequestInit; - if (clusterDetails.serviceAccountToken) { + if ( + clusterDetails.serviceAccountToken || + clusterDetails.authProvider === 'localKubectlProxy' + ) { [url, requestInit] = this.fetchArgsFromClusterDetails(clusterDetails); } else if (fs.pathExistsSync(Config.SERVICEACCOUNT_TOKEN_PATH)) { [url, requestInit] = this.fetchArgsInCluster(); From 72cb9a0a40bb5d8342c820f61325d937182a82d6 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 29 Mar 2023 11:01:38 +0200 Subject: [PATCH 039/114] chore: fix yarn install Signed-off-by: blam --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0973be65e4..f7d49ff7ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3470,7 +3470,7 @@ __metadata: http-errors: ^2.0.0 lodash: ^4.17.21 logform: ^2.3.2 - minimatch: ^5.1.1 + minimatch: ^5.0.0 minimist: ^1.2.5 morgan: ^1.10.0 node-forge: ^1.3.1 @@ -3552,7 +3552,7 @@ __metadata: lodash: ^4.17.21 logform: ^2.3.2 luxon: ^3.0.0 - minimatch: ^5.1.1 + minimatch: ^5.0.0 minimist: ^1.2.5 mock-fs: ^5.1.0 morgan: ^1.10.0 @@ -4162,7 +4162,7 @@ __metadata: "@backstage/cli": "workspace:^" "@manypkg/get-packages": ^1.1.3 eslint: ^8.33.0 - minimatch: ^5.1.1 + minimatch: ^5.1.2 languageName: unknown linkType: soft @@ -4611,7 +4611,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.1.1 + minimatch: ^5.0.0 morgan: ^1.10.0 msw: ^1.0.0 node-cache: ^5.1.2 @@ -5100,7 +5100,7 @@ __metadata: git-url-parse: ^13.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.1.1 + minimatch: ^5.1.2 msw: ^1.0.0 node-fetch: ^2.6.7 uuid: ^8.0.0 @@ -5299,7 +5299,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - minimatch: ^5.1.1 + minimatch: ^5.0.0 msw: ^1.0.0 node-fetch: ^2.6.7 p-limit: ^3.0.2 @@ -30218,12 +30218,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0, minimatch@npm:^5.1.1": - version: 5.1.2 - resolution: "minimatch@npm:5.1.2" +"minimatch@npm:^5.0.0, minimatch@npm:^5.0.1, minimatch@npm:^5.1.0, minimatch@npm:^5.1.1, minimatch@npm:^5.1.2": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" dependencies: brace-expansion: ^2.0.1 - checksum: 32ffda25b9fb8270a1c1beafdb7489dc0e411af553495136509a945691f63c9b6b000eeeaaf8bffe3efa609c1d6d3bc0f5a106f6c3443b5c05da649100ded964 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 languageName: node linkType: hard From 2898b6c8d52b8d830f8fac82df8a3f151aac8f7f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 25 Mar 2023 15:30:22 +0100 Subject: [PATCH 040/114] fixes for TypeScript 5.0 Signed-off-by: Patrik Oldsberg --- .changeset/weak-oranges-give.md | 8 ++++++++ packages/cli/src/lib/new/FactoryRegistry.ts | 4 ++-- packages/cli/src/lib/new/types.ts | 6 ++++-- .../src/components/Table/Table.tsx | 2 +- .../src/analytics/AnalyticsContext.tsx | 6 +++--- .../core-plugin-api/src/apis/system/useApi.tsx | 10 +++++----- .../testUtils/apis/StorageApi/MockStorageApi.ts | 6 ++++-- .../test-utils/src/testUtils/appWrappers.tsx | 4 ++-- .../EntityAutocompletePicker.tsx | 3 ++- .../EntityRefLink/FetchedEntityRefLinks.tsx | 7 +++++-- .../src/hooks/useEntityListProvider.tsx | 5 +++-- .../src/charts/logic/daily-summary.ts | 12 ++++++++---- .../StarredRatingButtons.tsx | 2 +- .../GithubIssues/IssuesList/IssuesList.tsx | 2 +- plugins/playlist/src/hooks/usePlaylistList.tsx | 5 +++-- plugins/rollbar-backend/src/api/RollbarApi.ts | 4 ++-- .../tasks/NunjucksWorkflowRunner.test.ts | 2 +- .../src/actions/createTemplateAction.ts | 16 ++++++++++++---- plugins/scaffolder-node/src/actions/types.ts | 4 ++-- plugins/scaffolder-react/src/extensions/types.ts | 2 +- plugins/sonarqube/dev/index.tsx | 5 +---- .../src/home/StackOverflowQuestions/Content.tsx | 2 +- 22 files changed, 72 insertions(+), 45 deletions(-) create mode 100644 .changeset/weak-oranges-give.md diff --git a/.changeset/weak-oranges-give.md b/.changeset/weak-oranges-give.md new file mode 100644 index 0000000000..9e24244fcb --- /dev/null +++ b/.changeset/weak-oranges-give.md @@ -0,0 +1,8 @@ +--- +'@backstage/core-plugin-api': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-scaffolder-node': patch +'@backstage/plugin-catalog-react': patch +--- + +Minor type tweaks for TypeScript 5.0 diff --git a/packages/cli/src/lib/new/FactoryRegistry.ts b/packages/cli/src/lib/new/FactoryRegistry.ts index 9072d46c4c..d16aa0615a 100644 --- a/packages/cli/src/lib/new/FactoryRegistry.ts +++ b/packages/cli/src/lib/new/FactoryRegistry.ts @@ -15,12 +15,12 @@ */ import chalk from 'chalk'; -import inquirer from 'inquirer'; +import inquirer, { Answers } from 'inquirer'; import { AnyFactory, Prompt } from './types'; import * as factories from './factories'; import partition from 'lodash/partition'; -function applyPromptMessageTransforms( +function applyPromptMessageTransforms( prompt: Prompt, transforms: { message: (msg: string) => string; diff --git a/packages/cli/src/lib/new/types.ts b/packages/cli/src/lib/new/types.ts index 5a2460d0df..6a894bf9ef 100644 --- a/packages/cli/src/lib/new/types.ts +++ b/packages/cli/src/lib/new/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { DistinctQuestion } from 'inquirer'; +import { Answers, DistinctQuestion } from 'inquirer'; export interface CreateContext { /** The package scope to use for new packages */ @@ -37,7 +37,9 @@ export interface CreateContext { export type AnyOptions = Record; -export type Prompt = DistinctQuestion & { name: string }; +export type Prompt = DistinctQuestion & { + name: string; +}; export interface Factory { /** diff --git a/packages/core-components/src/components/Table/Table.tsx b/packages/core-components/src/components/Table/Table.tsx index c43345c9d2..848c85eb60 100644 --- a/packages/core-components/src/components/Table/Table.tsx +++ b/packages/core-components/src/components/Table/Table.tsx @@ -376,7 +376,7 @@ export function Table(props: TableProps) { const newData = (data as any[]).filter( el => !!Object.entries(selectedFilters) - .filter(([, value]) => !!value.length) + .filter(([, value]) => !!(value as { length?: number }).length) .every(([key, filterValue]) => { const fieldValue = extractValueByField( el, diff --git a/packages/core-plugin-api/src/analytics/AnalyticsContext.tsx b/packages/core-plugin-api/src/analytics/AnalyticsContext.tsx index f28444db46..105be8e2b5 100644 --- a/packages/core-plugin-api/src/analytics/AnalyticsContext.tsx +++ b/packages/core-plugin-api/src/analytics/AnalyticsContext.tsx @@ -91,11 +91,11 @@ export const AnalyticsContext = (options: { * @param values - Analytics context key/value pairs. * @internal */ -export function withAnalyticsContext

( - Component: React.ComponentType

, +export function withAnalyticsContext( + Component: React.ComponentType, values: AnalyticsContextValue, ) { - const ComponentWithAnalyticsContext = (props: P) => { + const ComponentWithAnalyticsContext = (props: TProps) => { return ( diff --git a/packages/core-plugin-api/src/apis/system/useApi.tsx b/packages/core-plugin-api/src/apis/system/useApi.tsx index 465a39cff4..03c4fa33ac 100644 --- a/packages/core-plugin-api/src/apis/system/useApi.tsx +++ b/packages/core-plugin-api/src/apis/system/useApi.tsx @@ -58,11 +58,11 @@ export function useApi(apiRef: ApiRef): T { * @param apis - APIs for the context. * @public */ -export function withApis(apis: TypesToApiRefs) { - return function withApisWrapper

( - WrappedComponent: React.ComponentType

, +export function withApis(apis: TypesToApiRefs) { + return function withApisWrapper( + WrappedComponent: React.ComponentType, ) { - const Hoc = (props: PropsWithChildren>) => { + const Hoc = (props: PropsWithChildren>) => { const apiHolder = useApiHolder(); const impls = {} as T; @@ -79,7 +79,7 @@ export function withApis(apis: TypesToApiRefs) { } } - return ; + return ; }; const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; diff --git a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts index 6ce91a4a31..30d523aed2 100644 --- a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts +++ b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts @@ -101,7 +101,9 @@ export class MockStorageApi implements StorageApi { }); } - observe$(key: string): Observable> { + observe$( + key: string, + ): Observable> { return this.observable.filter(({ key: messageKey }) => messageKey === key); } @@ -109,7 +111,7 @@ export class MockStorageApi implements StorageApi { return `${this.namespace}/${encodeURIComponent(key)}`; } - private notifyChanges(message: StorageValueSnapshot) { + private notifyChanges(message: StorageValueSnapshot) { for (const subscription of this.subscribers) { subscription.next(message); } diff --git a/packages/test-utils/src/testUtils/appWrappers.tsx b/packages/test-utils/src/testUtils/appWrappers.tsx index 6543f8b698..8b644ad2d1 100644 --- a/packages/test-utils/src/testUtils/appWrappers.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.tsx @@ -208,7 +208,7 @@ export function wrapInTestApp( let wrappedElement: React.ReactElement; if (Component instanceof Function) { - wrappedElement = ; + wrappedElement = React.createElement(Component as ComponentType); } else { wrappedElement = Component as React.ReactElement; } @@ -233,7 +233,7 @@ export async function renderInTestApp( ): Promise { let wrappedElement: React.ReactElement; if (Component instanceof Function) { - wrappedElement = ; + wrappedElement = React.createElement(Component as ComponentType); } else { wrappedElement = Component as React.ReactElement; } diff --git a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx index b81d681e6d..15e44baf20 100644 --- a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx +++ b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx @@ -114,8 +114,9 @@ export function EntityAutocompletePicker< } as Partial); }, [name, shouldAddFilter, selectedOptions, Filter, updateFilters]); + const filter = filters[name]; if ( - (filters[name] && !('values' in filters[name])) || + (filter && typeof filter === 'object' && !('values' in filter)) || !availableOptions.length ) { return null; diff --git a/plugins/catalog-react/src/components/EntityRefLink/FetchedEntityRefLinks.tsx b/plugins/catalog-react/src/components/EntityRefLink/FetchedEntityRefLinks.tsx index ea4a32b511..d8f013d50c 100644 --- a/plugins/catalog-react/src/components/EntityRefLink/FetchedEntityRefLinks.tsx +++ b/plugins/catalog-react/src/components/EntityRefLink/FetchedEntityRefLinks.tsx @@ -57,11 +57,14 @@ export function FetchedEntityRefLinks< error, } = useAsync(async () => { const refs = entityRefs.reduce((acc, current) => { - return 'metadata' in current ? acc : [...acc, parseEntityRef(current)]; + if (typeof current === 'object' && 'metadata' in current) { + return acc; + } + return [...acc, parseEntityRef(current)]; }, new Array()); const pureEntities = entityRefs.filter( - ref => 'metadata' in ref, + ref => typeof ref === 'object' && 'metadata' in ref, ) as Array; return refs.length > 0 diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx index a2b680c02e..4173724ef5 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx @@ -161,8 +161,9 @@ export const EntityListProvider = ( const queryParams = Object.keys(requestedFilters).reduce( (params, key) => { - const filter: EntityFilter | undefined = - requestedFilters[key as keyof EntityFilters]; + const filter = requestedFilters[key as keyof EntityFilters] as + | EntityFilter + | undefined; if (filter?.toQueryValue) { params[key] = filter.toQueryValue(); } diff --git a/plugins/cicd-statistics/src/charts/logic/daily-summary.ts b/plugins/cicd-statistics/src/charts/logic/daily-summary.ts index 93c7b07c34..f2ccf9d34c 100644 --- a/plugins/cicd-statistics/src/charts/logic/daily-summary.ts +++ b/plugins/cicd-statistics/src/charts/logic/daily-summary.ts @@ -70,10 +70,14 @@ function countTriggersPerDay(builds: ReadonlyArray) { const values = Object.entries(days).map(([epoch, buildsThisDay]) => { const datapoint = Object.fromEntries( triggerReasons - .map(reason => [ - reason, - buildsThisDay.filter(build => build.triggeredBy === reason).length, - ]) + .map( + reason => + [ + reason, + buildsThisDay.filter(build => build.triggeredBy === reason) + .length, + ] as const, + ) .filter(([_type, count]) => count > 0), ) as Omit; diff --git a/plugins/entity-feedback/src/components/StarredRatingButtons/StarredRatingButtons.tsx b/plugins/entity-feedback/src/components/StarredRatingButtons/StarredRatingButtons.tsx index 51f7da1099..75ad21a658 100644 --- a/plugins/entity-feedback/src/components/StarredRatingButtons/StarredRatingButtons.tsx +++ b/plugins/entity-feedback/src/components/StarredRatingButtons/StarredRatingButtons.tsx @@ -134,7 +134,7 @@ export const StarredRatingButtons = (props: StarredRatingButtonsProps) => { return ( <> {Object.values(FeedbackRatings) - .filter(o => typeof o === 'number') + .filter((o): o is number => typeof o === 'number') .map(starRating => ( issuesByRepository && activeFilter.length - ? activeFilter.reduce( + ? activeFilter.reduce( (acc, val) => ({ [val]: issuesByRepository[val], ...acc, diff --git a/plugins/playlist/src/hooks/usePlaylistList.tsx b/plugins/playlist/src/hooks/usePlaylistList.tsx index 69f712413b..b20f82bb5c 100644 --- a/plugins/playlist/src/hooks/usePlaylistList.tsx +++ b/plugins/playlist/src/hooks/usePlaylistList.tsx @@ -172,8 +172,9 @@ export const PlaylistListProvider = < const queryParams = Object.keys(requestedFilters).reduce( (params, key) => { - const filter: PlaylistFilter | undefined = - requestedFilters[key as keyof PlaylistFilters]; + const filter = requestedFilters[key as keyof PlaylistFilters] as + | PlaylistFilter + | undefined; if (filter?.toQueryValue) { params[key] = filter.toQueryValue(); } diff --git a/plugins/rollbar-backend/src/api/RollbarApi.ts b/plugins/rollbar-backend/src/api/RollbarApi.ts index 59394d7ad0..6bbf25eb8e 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.ts @@ -104,7 +104,7 @@ export class RollbarApi { ); } - private async get(url: string, accessToken?: string) { + private async get(url: string, accessToken?: string) { const fullUrl = buildUrl(url); if (this.logger) { @@ -119,7 +119,7 @@ export class RollbarApi { .then(json => camelcaseKeys(json?.result, { deep: true })); } - private async getForProject( + private async getForProject( url: string, projectName: string, useProjectToken = true, diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index e8698b62f5..b8c9edaae7 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -120,7 +120,7 @@ describe('DefaultWorkflowRunner', () => { foo: z.number(), }), }, - }) as TemplateAction, + }) as TemplateAction, ); actionRegistry.register({ diff --git a/plugins/scaffolder-node/src/actions/createTemplateAction.ts b/plugins/scaffolder-node/src/actions/createTemplateAction.ts index 25c0dead55..a667f91744 100644 --- a/plugins/scaffolder-node/src/actions/createTemplateAction.ts +++ b/plugins/scaffolder-node/src/actions/createTemplateAction.ts @@ -22,8 +22,8 @@ import { JsonObject } from '@backstage/types'; /** @public */ export type TemplateActionOptions< - TActionInput = {}, - TActionOutput = {}, + TActionInput extends JsonObject = {}, + TActionOutput extends JsonObject = {}, TInputSchema extends Schema | z.ZodType = {}, TOutputSchema extends Schema | z.ZodType = {}, > = { @@ -48,10 +48,18 @@ export const createTemplateAction = < TOutputParams extends JsonObject = JsonObject, TInputSchema extends Schema | z.ZodType = {}, TOutputSchema extends Schema | z.ZodType = {}, - TActionInput = TInputSchema extends z.ZodType + TActionInput extends JsonObject = TInputSchema extends z.ZodType< + any, + any, + infer IReturn + > ? IReturn : TInputParams, - TActionOutput = TOutputSchema extends z.ZodType + TActionOutput extends JsonObject = TOutputSchema extends z.ZodType< + any, + any, + infer IReturn + > ? IReturn : TOutputParams, >( diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts index 259773f1c0..e35f55aa67 100644 --- a/plugins/scaffolder-node/src/actions/types.ts +++ b/plugins/scaffolder-node/src/actions/types.ts @@ -75,8 +75,8 @@ export type ActionContext< /** @public */ export type TemplateAction< - TActionInput = unknown, - TActionOutput = JsonObject, + TActionInput extends JsonObject = JsonObject, + TActionOutput extends JsonObject = JsonObject, > = { id: string; description?: string; diff --git a/plugins/scaffolder-react/src/extensions/types.ts b/plugins/scaffolder-react/src/extensions/types.ts index a9ed854afa..5d560a20bc 100644 --- a/plugins/scaffolder-react/src/extensions/types.ts +++ b/plugins/scaffolder-react/src/extensions/types.ts @@ -64,7 +64,7 @@ export type FieldExtensionOptions< */ export interface FieldExtensionComponentProps< TFieldReturnValue, - TUiOptions extends {} = {}, + TUiOptions = unknown, > extends FieldProps { uiSchema: FieldProps['uiSchema'] & { 'ui:options'?: TUiOptions; diff --git a/plugins/sonarqube/dev/index.tsx b/plugins/sonarqube/dev/index.tsx index 8d38c7314a..33a36bcaef 100644 --- a/plugins/sonarqube/dev/index.tsx +++ b/plugins/sonarqube/dev/index.tsx @@ -66,9 +66,6 @@ createDevApp() - - - @@ -79,7 +76,7 @@ createDevApp() deps: {}, factory: () => ({ - getFindingSummary: async componentKey => { + getFindingSummary: async ({ componentKey }) => { switch (componentKey) { case 'error': throw new Error('Error!'); diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx index 8fce24bd22..8d8aeccb3b 100644 --- a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx @@ -59,7 +59,7 @@ export const Content = (props: StackOverflowQuestionsContentProps) => { return could not load questions; } - const getSecondaryText = (answer_count: Number) => + const getSecondaryText = (answer_count: number) => answer_count > 1 ? `${answer_count} answers` : `${answer_count} answer`; return ( From 2945923b1331afc4f88ec126c8ff6524db2271a5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 25 Mar 2023 15:33:14 +0100 Subject: [PATCH 041/114] create-app: bump typescript to 5.0 Signed-off-by: Patrik Oldsberg --- .changeset/itchy-ads-sit.md | 12 ++++++++++++ .../templates/default-app/package.json.hbs | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/itchy-ads-sit.md diff --git a/.changeset/itchy-ads-sit.md b/.changeset/itchy-ads-sit.md new file mode 100644 index 0000000000..d8201d1015 --- /dev/null +++ b/.changeset/itchy-ads-sit.md @@ -0,0 +1,12 @@ +--- +'@backstage/create-app': patch +--- + +Upgraded the TypeScript version to 5.0 + +To apply this change in your own project, switch the TypeScript version in your root `package.json`: + +```diff +- "typescript": "~4.6.4", ++ "typescript": "~5.0.0", +``` diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 734de5c6e4..0682114a35 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -35,7 +35,7 @@ "lerna": "^4.0.0", "node-gyp": "^9.0.0", "prettier": "^2.3.2", - "typescript": "~4.6.4" + "typescript": "~5.0.0" }, "resolutions": { "@types/react": "^17", From e480527a6dbcf5f293fdc197eab7bad9939c7d13 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 27 Mar 2023 13:20:25 +0200 Subject: [PATCH 042/114] cli: add explicit type-fest dev dep to fix lib check issues Signed-off-by: Patrik Oldsberg --- packages/cli/package.json | 3 ++- yarn.lock | 8 +------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index c2943d38d5..354321b934 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -161,7 +161,8 @@ "mock-fs": "^5.1.0", "msw": "^1.0.0", "nodemon": "^2.0.2", - "ts-node": "^10.0.0" + "ts-node": "^10.0.0", + "type-fest": "^2.19.0" }, "peerDependencies": { "@microsoft/api-extractor": "^7.21.2" diff --git a/yarn.lock b/yarn.lock index 06788a826e..a85947687d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3808,6 +3808,7 @@ __metadata: tar: ^6.1.12 terser-webpack-plugin: ^5.1.3 ts-node: ^10.0.0 + type-fest: ^2.19.0 util: ^0.12.3 webpack: ^5.70.0 webpack-dev-server: ^4.7.3 @@ -38684,13 +38685,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.2.1": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 - languageName: node - linkType: hard - "type-fest@npm:^2.19.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" From 66b6cfc57169fef31f708f55a05e07d1ce18559c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 27 Mar 2023 13:22:26 +0200 Subject: [PATCH 043/114] rollbar-backend: replace camelcase-keys Signed-off-by: Patrik Oldsberg --- .changeset/flat-ways-compete.md | 5 ++++ plugins/rollbar-backend/package.json | 2 +- plugins/rollbar-backend/src/api/RollbarApi.ts | 15 ++++++----- yarn.lock | 25 ++++++++----------- 4 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 .changeset/flat-ways-compete.md diff --git a/.changeset/flat-ways-compete.md b/.changeset/flat-ways-compete.md new file mode 100644 index 0000000000..75521ce4f6 --- /dev/null +++ b/.changeset/flat-ways-compete.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-rollbar-backend': patch +--- + +Replace `camelcase-keys` dependency with one with better compatibility. diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 6f3d5fd061..eb854f27ec 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -36,7 +36,7 @@ "@backstage/backend-common": "workspace:^", "@backstage/config": "workspace:^", "@types/express": "^4.17.6", - "camelcase-keys": "^7.0.1", + "camelize-ts": "^2.3.0", "compression": "^1.7.4", "cors": "^2.8.5", "express": "^4.17.1", diff --git a/plugins/rollbar-backend/src/api/RollbarApi.ts b/plugins/rollbar-backend/src/api/RollbarApi.ts index 6bbf25eb8e..da620fcafc 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.ts @@ -15,7 +15,7 @@ */ import { Logger } from 'winston'; -import camelcaseKeys from 'camelcase-keys'; +import camelize from 'camelize-ts'; import { buildQuery } from '../util'; import { RollbarItemCount, @@ -104,19 +104,22 @@ export class RollbarApi { ); } - private async get(url: string, accessToken?: string) { + private async get( + url: string, + accessToken?: string, + ): Promise { const fullUrl = buildUrl(url); if (this.logger) { this.logger.info(`Calling Rollbar REST API, ${fullUrl}`); } - return fetch( + const res = await fetch( fullUrl, getRequestHeaders(accessToken || this.accessToken || ''), - ) - .then(response => response.json()) - .then(json => camelcaseKeys(json?.result, { deep: true })); + ); + const data = await res.json(); + return camelize(data?.result) as T; } private async getForProject( diff --git a/yarn.lock b/yarn.lock index a85947687d..6797a1eed1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7825,7 +7825,7 @@ __metadata: "@backstage/config": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 - camelcase-keys: ^7.0.1 + camelize-ts: ^2.3.0 compression: ^1.7.4 cors: ^2.8.5 express: ^4.17.1 @@ -19232,18 +19232,6 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^7.0.1": - version: 7.0.2 - resolution: "camelcase-keys@npm:7.0.2" - dependencies: - camelcase: ^6.3.0 - map-obj: ^4.1.0 - quick-lru: ^5.1.1 - type-fest: ^1.2.1 - checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b - languageName: node - linkType: hard - "camelcase@npm:5.0.0": version: 5.0.0 resolution: "camelcase@npm:5.0.0" @@ -19265,13 +19253,20 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": +"camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard +"camelize-ts@npm:^2.3.0": + version: 2.3.0 + resolution: "camelize-ts@npm:2.3.0" + checksum: 0f33c65468cc0883128bb15df96f244b21b94aa80094b358bda5a07db28b1f6e79fddb96b5af57cd754c6c8e07dc40ad2cb0d73b79b2ad584683babc57675ea6 + languageName: node + linkType: hard + "camelize@npm:^1.0.0": version: 1.0.0 resolution: "camelize@npm:1.0.0" @@ -29710,7 +29705,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0, map-obj@npm:^4.1.0": +"map-obj@npm:^4.0.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e From 55a969fe574a7ac90fc952c9a93599c8984d9b91 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 27 Mar 2023 17:35:49 +0200 Subject: [PATCH 044/114] bump recharts to 2.5.0 Signed-off-by: Patrik Oldsberg --- .changeset/neat-pears-argue.md | 10 + plugins/bitrise/package.json | 2 +- plugins/cicd-statistics/package.json | 2 +- .../src/charts/status-chart.tsx | 3 +- .../cicd-statistics/src/components/utils.tsx | 6 +- plugins/code-coverage/package.json | 2 +- plugins/cost-insights/package.json | 2 +- plugins/git-release-manager/package.json | 2 +- plugins/xcmetrics/package.json | 2 +- yarn.lock | 270 ++++++++---------- 10 files changed, 141 insertions(+), 160 deletions(-) create mode 100644 .changeset/neat-pears-argue.md diff --git a/.changeset/neat-pears-argue.md b/.changeset/neat-pears-argue.md new file mode 100644 index 0000000000..b3105148fb --- /dev/null +++ b/.changeset/neat-pears-argue.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-git-release-manager': patch +'@backstage/plugin-cicd-statistics': patch +'@backstage/plugin-code-coverage': patch +'@backstage/plugin-cost-insights': patch +'@backstage/plugin-xcmetrics': patch +'@backstage/plugin-bitrise': patch +--- + +Bumped `recharts` dependency to `^2.5.0`. diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 62dc7216c5..d491d51969 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -36,7 +36,7 @@ "luxon": "^3.0.0", "qs": "^6.9.6", "react-use": "^17.2.4", - "recharts": "^2.0.0" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index b4443f2e08..0f2503304a 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -51,7 +51,7 @@ "luxon": "^3.0.0", "prop-types": "^15.7.2", "react-use": "^17.3.1", - "recharts": "^2.1.5" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", diff --git a/plugins/cicd-statistics/src/charts/status-chart.tsx b/plugins/cicd-statistics/src/charts/status-chart.tsx index 7f70d303d5..ffcdcef7dd 100644 --- a/plugins/cicd-statistics/src/charts/status-chart.tsx +++ b/plugins/cicd-statistics/src/charts/status-chart.tsx @@ -109,7 +109,7 @@ export function StatusChart(props: StatusChartProps) { const tooltipFormatter = useMemo(() => { const reasonSet = new Set(analysis.daily.triggerReasons); - return (percentOrCount: number, name: string) => { + return (percentOrCount: number, name: string): [any, any] => { const label = reasonSet.has(name) ? humanTriggerReason(name) : capitalize(name); @@ -118,6 +118,7 @@ export function StatusChart(props: StatusChartProps) { : percentOrCount; return [ + // TODO(Rugvip): Types don't allow returning elements, but it was here before so presumably works {label}: {valueText} , diff --git a/plugins/cicd-statistics/src/components/utils.tsx b/plugins/cicd-statistics/src/components/utils.tsx index e81c0495ad..05bd6bb100 100644 --- a/plugins/cicd-statistics/src/components/utils.tsx +++ b/plugins/cicd-statistics/src/components/utils.tsx @@ -95,8 +95,12 @@ export function tickFormatterY(duration: number) { .replace(/year.*/, 'y'); } -export function tooltipValueFormatter(durationOrCount: number, name: string) { +export function tooltipValueFormatter( + durationOrCount: number, + name: string, +): [any, any] { return [ + // TODO(Rugvip): Types don't allow returning elements, but it was here before so presumably works {capitalize(name)}:{' '} {name.endsWith(' count') diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 9f5e0d8c2a..7b535be4bc 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -37,7 +37,7 @@ "highlight.js": "^10.6.0", "luxon": "^3.0.0", "react-use": "^17.2.4", - "recharts": "^2.0.0" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 54fd43a0b0..6a552e8bd7 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -51,7 +51,7 @@ "pluralize": "^8.0.0", "qs": "^6.9.4", "react-use": "^17.2.4", - "recharts": "^2.0.0", + "recharts": "^2.5.0", "regression": "^2.0.1", "yup": "^0.32.9" }, diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 0ace6e297a..7f3da60f83 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -35,7 +35,7 @@ "luxon": "^3.0.0", "qs": "^6.10.1", "react-use": "^17.2.4", - "recharts": "^2.0.0" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index b9737318c6..cced2ca271 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -33,7 +33,7 @@ "lodash": "^4.17.21", "luxon": "^3.0.0", "react-use": "^17.2.4", - "recharts": "^2.0.0" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", diff --git a/yarn.lock b/yarn.lock index 6797a1eed1..03b0dc733d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4984,7 +4984,7 @@ __metadata: msw: ^1.0.0 qs: ^6.9.6 react-use: ^17.2.4 - recharts: ^2.0.0 + recharts: ^2.5.0 peerDependencies: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 @@ -5697,7 +5697,7 @@ __metadata: luxon: ^3.0.0 prop-types: ^15.7.2 react-use: ^17.3.1 - recharts: ^2.1.5 + recharts: ^2.5.0 peerDependencies: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 @@ -5870,7 +5870,7 @@ __metadata: luxon: ^3.0.0 msw: ^1.0.0 react-use: ^17.2.4 - recharts: ^2.0.0 + recharts: ^2.5.0 peerDependencies: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 @@ -5992,7 +5992,7 @@ __metadata: pluralize: ^8.0.0 qs: ^6.9.4 react-use: ^17.2.4 - recharts: ^2.0.0 + recharts: ^2.5.0 regression: ^2.0.1 yup: ^0.32.9 peerDependencies: @@ -6536,7 +6536,7 @@ __metadata: msw: ^1.0.0 qs: ^6.10.1 react-use: ^17.2.4 - recharts: ^2.0.0 + recharts: ^2.5.0 peerDependencies: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 @@ -9305,7 +9305,7 @@ __metadata: luxon: ^3.0.0 msw: ^1.0.0 react-use: ^17.2.4 - recharts: ^2.0.0 + recharts: ^2.5.0 peerDependencies: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 @@ -15267,6 +15267,13 @@ __metadata: languageName: node linkType: hard +"@types/d3-array@npm:^3.0.3": + version: 3.0.4 + resolution: "@types/d3-array@npm:3.0.4" + checksum: b0e398365fc1f638d48442e865e036d671c731b2b18f7a92e5172db1f60f5a38d4cd992693a29ad64b38e7ba981eb8c63a2aef95fbdcfbc4bf8926a9cb9ca978 + languageName: node + linkType: hard + "@types/d3-color@npm:*": version: 3.0.2 resolution: "@types/d3-color@npm:3.0.2" @@ -15274,10 +15281,10 @@ __metadata: languageName: node linkType: hard -"@types/d3-color@npm:^2": - version: 2.0.3 - resolution: "@types/d3-color@npm:2.0.3" - checksum: b4a963b15f4fe0e7e49b0898df3e51b46392d91c21038b7ec61aef0f13e04bd7bcfebf06c9fad9ee92317c9682a105e18942c9295a7e2715855622d4d6fc415a +"@types/d3-ease@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/d3-ease@npm:3.0.0" + checksum: 1be7c993643b5a08332e0ee146375a3845545d8deb423db5d152e0b061524385d2345ceccf968f75f605247b940dd3f9a144335fee2e7d935cddaf187afb7095 languageName: node linkType: hard @@ -15288,7 +15295,7 @@ __metadata: languageName: node linkType: hard -"@types/d3-interpolate@npm:*": +"@types/d3-interpolate@npm:*, @types/d3-interpolate@npm:^3.0.1": version: 3.0.1 resolution: "@types/d3-interpolate@npm:3.0.1" dependencies: @@ -15297,15 +15304,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-interpolate@npm:^2.0.0": - version: 2.0.2 - resolution: "@types/d3-interpolate@npm:2.0.2" - dependencies: - "@types/d3-color": ^2 - checksum: 78c47193da3c114a7d78580c6f8d9915f11df92ce78fe08d13052cf49fab91dcdca938895a778cdc6f9820ebf16df3e0e339c17491a8c2b1140cdd2e09553084 - languageName: node - linkType: hard - "@types/d3-path@npm:*": version: 3.0.0 resolution: "@types/d3-path@npm:3.0.0" @@ -15320,19 +15318,12 @@ __metadata: languageName: node linkType: hard -"@types/d3-path@npm:^2": - version: 2.0.1 - resolution: "@types/d3-path@npm:2.0.1" - checksum: 2fe04503ec56de47e2b8482e5a55e2eaf2940444f2cea00a5fb740d52d24bddfe13e900e392c1edebf2127b11557db09aeae6f5669f49a35caac4fe1a9d43b84 - languageName: node - linkType: hard - -"@types/d3-scale@npm:^3.0.0": - version: 3.3.2 - resolution: "@types/d3-scale@npm:3.3.2" +"@types/d3-scale@npm:^4.0.2": + version: 4.0.3 + resolution: "@types/d3-scale@npm:4.0.3" dependencies: - "@types/d3-time": ^2 - checksum: 65dbf85f07a4d6ac26396075b0faa1930cfebb96dc248629d4b82c22457c89161d0f070f9a5554adccee80b959e2c6d7c1ef6b7355743afe91050d71014fe3cf + "@types/d3-time": "*" + checksum: 76684da8519ab5f2210e647f74f96ece9c6816dea4ad5d76131121703a5268cc65687a8bc9ebbf4a44039482247336d98811ecc3fbfeb7f0122fdce4bb295547 languageName: node linkType: hard @@ -15352,16 +15343,7 @@ __metadata: languageName: node linkType: hard -"@types/d3-shape@npm:^2.0.0": - version: 2.1.3 - resolution: "@types/d3-shape@npm:2.1.3" - dependencies: - "@types/d3-path": ^2 - checksum: d0855a1e2c11a4ab23367c86ef0cc104e12bf216f2c007fa5955da7179b60b0426d0e9ddbbbdf93d4342e7dd24c7bcfc3a2bc6258744e03fc44ca460a063dcc3 - languageName: node - linkType: hard - -"@types/d3-shape@npm:^3.0.1": +"@types/d3-shape@npm:^3.0.1, @types/d3-shape@npm:^3.1.0": version: 3.1.1 resolution: "@types/d3-shape@npm:3.1.1" dependencies: @@ -15370,10 +15352,17 @@ __metadata: languageName: node linkType: hard -"@types/d3-time@npm:^2": - version: 2.1.1 - resolution: "@types/d3-time@npm:2.1.1" - checksum: 115048d0cd312a3172ef7c03615dfbdbd8b92a93fd7b6d9ca93c49c704fcdb9575f4c57955eb54eb757b9834acaaf47fc52eae103d06246c59ae120de4559cbc +"@types/d3-time@npm:*, @types/d3-time@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/d3-time@npm:3.0.0" + checksum: e76adb056daccf80107f4db190ac6deb77e8774f00362bb6c76f178e67f2f217422fe502b654edbc9ac6451f6619045b9f6f5fe0db1ec5520e2ada377af7c72e + languageName: node + linkType: hard + +"@types/d3-timer@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/d3-timer@npm:3.0.0" + checksum: 1ec86b3808de6ecfa93cfdf34254761069658af0cc1d9540e8353dbcba161cdf1296a0724187bd17433b2ff16563115fd20b85fc89d5e809ff28f9b1ab134b42 languageName: node linkType: hard @@ -16425,13 +16414,6 @@ __metadata: languageName: node linkType: hard -"@types/resize-observer-browser@npm:^0.1.6": - version: 0.1.7 - resolution: "@types/resize-observer-browser@npm:0.1.7" - checksum: 0377eaac8bb7a17b983b49a156006032380b459bfebefc54a5aa2f7f8a9786d2b60723e8837c61ef733330b478f4f26293e9edbdc8006238e4f80c878c56c988 - languageName: node - linkType: hard - "@types/resolve@npm:1.17.1": version: 1.17.1 resolution: "@types/resolve@npm:1.17.1" @@ -21081,19 +21063,12 @@ __metadata: languageName: node linkType: hard -"d3-array@npm:2, d3-array@npm:^2.3.0": - version: 2.12.1 - resolution: "d3-array@npm:2.12.1" +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6": + version: 3.2.3 + resolution: "d3-array@npm:3.2.3" dependencies: - internmap: ^1.0.0 - checksum: 97853b7b523aded17078f37c67742f45d81e88dda2107ae9994c31b9e36c5fa5556c4c4cf39650436f247813602dfe31bf7ad067ff80f127a16903827f10c6eb - languageName: node - linkType: hard - -"d3-color@npm:1 - 2": - version: 2.0.0 - resolution: "d3-color@npm:2.0.0" - checksum: b887354aa383937abd04fbffed3e26e5d6a788472cd3737fb10735930e427763e69fe93398663bccf88c0b53ee3e638ac6fcf0c02226b00ed9e4327c2dfbf3dc + internmap: 1 - 2 + checksum: 41d6a4989b73e0d2649a880b2f29a7e7cc059db0eba36cd29a79e0118ebdf6b78922a84cde0733cd54cb4072f3442ec44f3563902e00ea42892442d60e99f961 languageName: node linkType: hard @@ -21121,7 +21096,7 @@ __metadata: languageName: node linkType: hard -"d3-ease@npm:1 - 3": +"d3-ease@npm:1 - 3, d3-ease@npm:^3.0.1": version: 3.0.1 resolution: "d3-ease@npm:3.0.1" checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd @@ -21139,14 +21114,14 @@ __metadata: languageName: node linkType: hard -"d3-format@npm:1 - 2": - version: 2.0.0 - resolution: "d3-format@npm:2.0.0" - checksum: c4d3c8f9941d097d514d3986f54f21434e08e5876dc08d1d65226447e8e167600d5b9210235bb03fd45327225f04f32d6e365f08f76d2f4b8bff81594851aaf7 +"d3-format@npm:1 - 3": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 languageName: node linkType: hard -"d3-interpolate@npm:1 - 3": +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:^3.0.1": version: 3.0.1 resolution: "d3-interpolate@npm:3.0.1" dependencies: @@ -21155,22 +21130,6 @@ __metadata: languageName: node linkType: hard -"d3-interpolate@npm:1.2.0 - 2, d3-interpolate@npm:^2.0.0": - version: 2.0.1 - resolution: "d3-interpolate@npm:2.0.1" - dependencies: - d3-color: 1 - 2 - checksum: 4a2018ac34fbcc3e0e7241e117087ca1b2274b8b33673913658623efacc5db013b8d876586d167b23e3145bdb34ec8e441d301299b082e1a90985b2f18d4299c - languageName: node - linkType: hard - -"d3-path@npm:1 - 2": - version: 2.0.0 - resolution: "d3-path@npm:2.0.0" - checksum: e39e91dfb9abf9637962caede1f4ea4877f4b9e1c914868bdfc355688e9a637ba51bed0fb6180934eb596e50a4d0d1f001b5f2e98a4a3d23cc42558acfbd1f2c - languageName: node - linkType: hard - "d3-path@npm:^3.1.0": version: 3.1.0 resolution: "d3-path@npm:3.1.0" @@ -21185,16 +21144,16 @@ __metadata: languageName: node linkType: hard -"d3-scale@npm:^3.0.0": - version: 3.3.0 - resolution: "d3-scale@npm:3.3.0" +"d3-scale@npm:^4.0.2": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" dependencies: - d3-array: ^2.3.0 - d3-format: 1 - 2 - d3-interpolate: 1.2.0 - 2 - d3-time: ^2.1.1 - d3-time-format: 2 - 3 - checksum: f77e73f0fb422292211d0687914c30d26e29011a936ad2a535a868ae92f306c3545af1fe7ea5db1b3e67dbce7a6c6cd952e53d02d1d557543e7e5d30e30e52f2 + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e languageName: node linkType: hard @@ -21205,16 +21164,7 @@ __metadata: languageName: node linkType: hard -"d3-shape@npm:^2.0.0": - version: 2.1.0 - resolution: "d3-shape@npm:2.1.0" - dependencies: - d3-path: 1 - 2 - checksum: 4a82a83fbb15aadee3eb6661226a34bcd793cdbcd7aa5bf980a4724efc93eb94acc6c499f0ebedc9c3144c57c0f033867d137f41e86459acbd5d7181cb27b49c - languageName: node - linkType: hard - -"d3-shape@npm:^3.0.0": +"d3-shape@npm:^3.0.0, d3-shape@npm:^3.1.0": version: 3.2.0 resolution: "d3-shape@npm:3.2.0" dependencies: @@ -21223,25 +21173,25 @@ __metadata: languageName: node linkType: hard -"d3-time-format@npm:2 - 3": - version: 3.0.0 - resolution: "d3-time-format@npm:3.0.0" +"d3-time-format@npm:2 - 4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" dependencies: - d3-time: 1 - 2 - checksum: c20c1667dbea653f81d923e741f84c23e4b966002ba0d6ed94cbc70692105566e55e89d18d175404534a879383fd1123300bd12885a3c924fe924032bb0060db + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 languageName: node linkType: hard -"d3-time@npm:1 - 2, d3-time@npm:^2.1.1": - version: 2.1.1 - resolution: "d3-time@npm:2.1.1" +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:^3.0.0": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" dependencies: - d3-array: 2 - checksum: d1c7b9658c20646e46c3dd19e11c38e02dec098e8baa7d2cd868af8eb01953668f5da499fa33dc63541cf74a26e788786f8828c4381dbbf475a76b95972979a6 + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 languageName: node linkType: hard -"d3-timer@npm:1 - 3": +"d3-timer@npm:1 - 3, d3-timer@npm:^3.0.1": version: 3.0.1 resolution: "d3-timer@npm:3.0.1" checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 @@ -23866,10 +23816,10 @@ __metadata: languageName: node linkType: hard -"fast-equals@npm:^2.0.0": - version: 2.0.4 - resolution: "fast-equals@npm:2.0.4" - checksum: 1aac8a2e16b33e5e402bb5cd46be65f1ca331903c2c44e3bd75324e8472ee04f0acdbc6889e45fc28f9707ca3964f2a86789b32305d4d8b85dc97f61e446ef4b +"fast-equals@npm:^4.0.3": + version: 4.0.3 + resolution: "fast-equals@npm:4.0.3" + checksum: 3d5935b757f9f2993e59b5164a7a9eeda0de149760495375cde14a4ed725186a7e6c1c0d58f7d42d2f91deb97f3fce1e0aad5591916ef0984278199a85c87c87 languageName: node linkType: hard @@ -26310,10 +26260,10 @@ __metadata: languageName: node linkType: hard -"internmap@npm:^1.0.0": - version: 1.0.1 - resolution: "internmap@npm:1.0.1" - checksum: 9d00f8c0cf873a24a53a5a937120dab634c41f383105e066bb318a61864e6292d24eb9516e8e7dccfb4420ec42ca474a0f28ac9a6cc82536898fa09bbbe53813 +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 languageName: node linkType: hard @@ -34569,17 +34519,15 @@ __metadata: languageName: node linkType: hard -"react-resize-detector@npm:^6.6.3": - version: 6.7.8 - resolution: "react-resize-detector@npm:6.7.8" +"react-resize-detector@npm:^8.0.4": + version: 8.0.4 + resolution: "react-resize-detector@npm:8.0.4" dependencies: - "@types/resize-observer-browser": ^0.1.6 lodash: ^4.17.21 - resize-observer-polyfill: ^1.5.1 peerDependencies: - react: ^16.0.0 || ^17.0.0 - react-dom: ^16.0.0 || ^17.0.0 - checksum: dc8acbe216f70a60466d55d4f47c1468fecf074544a1e07234461b36eefed2b222f6e550c91e7ae02983e2842308d2a48ba8383029efb5d27ac749c48e3a09ae + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: f53a99cc5413844a6fc2a713b0b1094d23947897c14ab64481938632f4e77fadded52d91a6619055abf6240c7cacd6cc7dd492ea866639b302f81df680709d45 languageName: node linkType: hard @@ -34666,17 +34614,17 @@ __metadata: languageName: node linkType: hard -"react-smooth@npm:^2.0.0": - version: 2.0.1 - resolution: "react-smooth@npm:2.0.1" +"react-smooth@npm:^2.0.2": + version: 2.0.2 + resolution: "react-smooth@npm:2.0.2" dependencies: - fast-equals: ^2.0.0 + fast-equals: ^4.0.3 react-transition-group: 2.9.0 peerDependencies: prop-types: ^15.6.0 react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 65678491cbd506573f2dba82778ebf8259714d68dd227e0ee7c0e204bcbc7839cf97401620b4223814066581f1dce0493f97162a03dc2a68058b5a7ad2b41085 + checksum: 6b0a40a17314657ac6a187a3ad01fcdaa61d498979b6a07c424e20832110c99b4394c33209a0b39b897c13d113d8cb044e7a691b4965386a11b15bbfbacfba25 languageName: node linkType: hard @@ -35002,28 +34950,24 @@ __metadata: languageName: node linkType: hard -"recharts@npm:^2.0.0, recharts@npm:^2.1.5": - version: 2.1.9 - resolution: "recharts@npm:2.1.9" +"recharts@npm:^2.5.0": + version: 2.5.0 + resolution: "recharts@npm:2.5.0" dependencies: - "@types/d3-interpolate": ^2.0.0 - "@types/d3-scale": ^3.0.0 - "@types/d3-shape": ^2.0.0 classnames: ^2.2.5 - d3-interpolate: ^2.0.0 - d3-scale: ^3.0.0 - d3-shape: ^2.0.0 eventemitter3: ^4.0.1 lodash: ^4.17.19 react-is: ^16.10.2 - react-resize-detector: ^6.6.3 - react-smooth: ^2.0.0 + react-resize-detector: ^8.0.4 + react-smooth: ^2.0.2 recharts-scale: ^0.4.4 reduce-css-calc: ^2.1.8 + victory-vendor: ^36.6.8 peerDependencies: - react: ^16.0.0 || ^17.0.0 - react-dom: ^16.0.0 || ^17.0.0 - checksum: 5751ba78b08c9bf43b381750e302716df7ebc838a26bc8695892b1dd8293f858256d5b949defbb2d07395e7cf8873484b397ea804a60743e366e3211309c7433 + prop-types: ^15.6.0 + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: a40d1788589926fa8a5844868a338aae75a2077a2bc2ac57fc5d61ad21fb62660aed6f00ae8d8a94948b9143255c1760db0d386ecb257ed8290dd7f164b5bd5f languageName: node linkType: hard @@ -39472,6 +39416,28 @@ __metadata: languageName: node linkType: hard +"victory-vendor@npm:^36.6.8": + version: 36.6.8 + resolution: "victory-vendor@npm:36.6.8" + dependencies: + "@types/d3-array": ^3.0.3 + "@types/d3-ease": ^3.0.0 + "@types/d3-interpolate": ^3.0.1 + "@types/d3-scale": ^4.0.2 + "@types/d3-shape": ^3.1.0 + "@types/d3-time": ^3.0.0 + "@types/d3-timer": ^3.0.0 + d3-array: ^3.1.6 + d3-ease: ^3.0.1 + d3-interpolate: ^3.0.1 + d3-scale: ^4.0.2 + d3-shape: ^3.1.0 + d3-time: ^3.0.0 + d3-timer: ^3.0.1 + checksum: 6411f7c19a776cef3919946d429293cfe33c93a6e4dcfdfa2ba1edecad3a28ed2cd6b0d117169b8917ab6a7679e2bade5e7bfc1fed3fc8b464b842f21dac5f49 + languageName: node + linkType: hard + "vinyl-file@npm:^3.0.0": version: 3.0.0 resolution: "vinyl-file@npm:3.0.0" From c657d0a610e8904c7710412cbfea1eed5165b51d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 29 Mar 2023 09:41:19 +0200 Subject: [PATCH 045/114] techdocs-module-addons-contrib: bump photoswipe Signed-off-by: Patrik Oldsberg --- .changeset/clean-teachers-thank.md | 5 +++++ plugins/techdocs-module-addons-contrib/package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/clean-teachers-thank.md diff --git a/.changeset/clean-teachers-thank.md b/.changeset/clean-teachers-thank.md new file mode 100644 index 0000000000..043a718d79 --- /dev/null +++ b/.changeset/clean-teachers-thank.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs-module-addons-contrib': patch +--- + +Bump `photoswipe` dependency to `^5.3.7`. diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 4ca0eb6c3a..4ce37cd465 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -44,7 +44,7 @@ "@material-ui/lab": "4.0.0-alpha.61", "@react-hookz/web": "^20.0.0", "git-url-parse": "^13.0.0", - "photoswipe": "^5.3.5", + "photoswipe": "^5.3.7", "react-use": "^17.2.4" }, "peerDependencies": { diff --git a/yarn.lock b/yarn.lock index 03b0dc733d..2c2a2d2c40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8969,7 +8969,7 @@ __metadata: cross-fetch: ^3.1.5 git-url-parse: ^13.0.0 msw: ^1.0.0 - photoswipe: ^5.3.5 + photoswipe: ^5.3.7 react-use: ^17.2.4 peerDependencies: react: ^16.13.1 || ^17.0.0 @@ -32829,10 +32829,10 @@ __metadata: languageName: node linkType: hard -"photoswipe@npm:^5.3.5": - version: 5.3.6 - resolution: "photoswipe@npm:5.3.6" - checksum: 192004e33dbba7567744c96835b43f17a118653a24e099f9e31c2ddea9d7214ac7c28ff8994d4f7c20720c7f7fd00b62ad8ade5e3d59994f00a27390419ba11c +"photoswipe@npm:^5.3.7": + version: 5.3.7 + resolution: "photoswipe@npm:5.3.7" + checksum: adfbd76316b7aa140302ff2961fd128dfb23ad02ae1c0691b99a0c6a247f638218f1e6de77ae4d5191d0b5a6d4a1f3561ff1472166f2a636bc4525addee31a47 languageName: node linkType: hard From 63317d3e3fdcd2ec5c7d69af597d410bcde86c43 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 29 Mar 2023 10:27:57 +0200 Subject: [PATCH 046/114] update API reports for TypeScript 5.0 Signed-off-by: Patrik Oldsberg --- packages/core-app-api/api-report.md | 8 +-- packages/core-plugin-api/api-report.md | 8 +-- packages/test-utils/api-report.md | 4 +- plugins/catalog-backend/alpha-api-report.md | 4 +- plugins/permission-node/api-report.md | 13 ++--- plugins/playlist-backend/api-report.md | 5 +- plugins/rollbar-backend/api-report.md | 54 +++---------------- .../scaffolder-backend/alpha-api-report.md | 5 +- plugins/scaffolder-backend/api-report.md | 12 ++++- plugins/scaffolder-node/api-report.md | 20 ++++--- plugins/scaffolder-react/api-report.md | 4 +- 11 files changed, 52 insertions(+), 85 deletions(-) diff --git a/packages/core-app-api/api-report.md b/packages/core-app-api/api-report.md index d7e4a22873..5b6282eddd 100644 --- a/packages/core-app-api/api-report.md +++ b/packages/core-app-api/api-report.md @@ -116,9 +116,11 @@ export const ApiProvider: { (props: PropsWithChildren): JSX.Element; propTypes: { apis: PropTypes.Validator< - PropTypes.InferProps<{ - get: PropTypes.Validator<(...args: any[]) => any>; - }> + NonNullable< + PropTypes.InferProps<{ + get: PropTypes.Validator<(...args: any[]) => any>; + }> + > >; children: PropTypes.Requireable; }; diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md index eabd300fc6..52ee47f6bb 100644 --- a/packages/core-plugin-api/api-report.md +++ b/packages/core-plugin-api/api-report.md @@ -769,10 +769,12 @@ export function useRouteRefParams( ): Params; // @public -export function withApis(apis: TypesToApiRefs):

( - WrappedComponent: React_2.ComponentType

, +export function withApis( + apis: TypesToApiRefs, +): ( + WrappedComponent: React_2.ComponentType, ) => { - (props: React_2.PropsWithChildren>): JSX.Element; + (props: React_2.PropsWithChildren>): JSX.Element; displayName: string; }; ``` diff --git a/packages/test-utils/api-report.md b/packages/test-utils/api-report.md index 37650ff18a..01fc31c28f 100644 --- a/packages/test-utils/api-report.md +++ b/packages/test-utils/api-report.md @@ -173,7 +173,9 @@ export class MockStorageApi implements StorageApi { // (undocumented) forBucket(name: string): StorageApi; // (undocumented) - observe$(key: string): Observable>; + observe$( + key: string, + ): Observable>; // (undocumented) remove(key: string): Promise; // (undocumented) diff --git a/plugins/catalog-backend/alpha-api-report.md b/plugins/catalog-backend/alpha-api-report.md index df3e809ade..8fd0eb571f 100644 --- a/plugins/catalog-backend/alpha-api-report.md +++ b/plugins/catalog-backend/alpha-api-report.md @@ -79,9 +79,7 @@ export const catalogPlugin: () => BackendFeature; // @alpha export const createCatalogConditionalDecision: ( permission: ResourcePermission<'catalog-entity'>, - conditions: PermissionCriteria< - PermissionCondition<'catalog-entity', PermissionRuleParams> - >, + conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; // @alpha diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index b3d06efdc7..9d49fd3d01 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -75,17 +75,14 @@ export type ConditionTransformer = ( // @public export const createConditionAuthorizer: ( - rules: PermissionRule[], + rules: PermissionRule[], ) => (decision: PolicyDecision, resource: TResource | undefined) => boolean; // @public export const createConditionExports: < TResourceType extends string, TResource, - TRules extends Record< - string, - PermissionRule - >, + TRules extends Record>, >(options: { pluginId: string; resourceType: TResourceType; @@ -94,9 +91,7 @@ export const createConditionExports: < conditions: Conditions; createConditionalDecision: ( permission: ResourcePermission, - conditions: PermissionCriteria< - PermissionCondition - >, + conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; }; @@ -111,7 +106,7 @@ export const createConditionFactory: < // @public export const createConditionTransformer: < TQuery, - TRules extends PermissionRule[], + TRules extends PermissionRule[], >( permissionRules: [...TRules], ) => ConditionTransformer; diff --git a/plugins/playlist-backend/api-report.md b/plugins/playlist-backend/api-report.md index 6b51f316c4..b755347205 100644 --- a/plugins/playlist-backend/api-report.md +++ b/plugins/playlist-backend/api-report.md @@ -15,7 +15,6 @@ import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { PermissionPolicy } from '@backstage/plugin-permission-node'; import { PermissionRule } from '@backstage/plugin-permission-node'; -import { PermissionRuleParams } from '@backstage/plugin-permission-common'; import { PlaylistMetadata } from '@backstage/plugin-playlist-common'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; @@ -26,9 +25,7 @@ import { ResourcePermission } from '@backstage/plugin-permission-common'; // @public (undocumented) export const createPlaylistConditionalDecision: ( permission: ResourcePermission<'playlist-list'>, - conditions: PermissionCriteria< - PermissionCondition<'playlist-list', PermissionRuleParams> - >, + conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; // @public (undocumented) diff --git a/plugins/rollbar-backend/api-report.md b/plugins/rollbar-backend/api-report.md index 58a5fb0252..72499fbe58 100644 --- a/plugins/rollbar-backend/api-report.md +++ b/plugins/rollbar-backend/api-report.md @@ -27,21 +27,9 @@ export class RollbarApi { environment: string; item_id?: number; }, - ): Promise< - { - count: number; - timestamp: number; - }[] - >; + ): Promise; // (undocumented) - getAllProjects(): Promise< - { - id: number; - name: string; - status: string; - accountId: number; - }[] - >; + getAllProjects(): Promise; // (undocumented) getOccuranceCounts( projectName: string, @@ -49,25 +37,11 @@ export class RollbarApi { environment: string; item_id?: number; }, - ): Promise< - { - count: number; - timestamp: number; - }[] - >; + ): Promise; // (undocumented) - getProject(projectName: string): Promise<{ - id: number; - name: string; - status: string; - accountId: number; - }>; + getProject(projectName: string): Promise; // (undocumented) - getProjectItems(projectName: string): Promise<{ - page: number; - items: RollbarItem[]; - totalCount: number; - }>; + getProjectItems(projectName: string): Promise; // (undocumented) getTopActiveItems( projectName: string, @@ -75,23 +49,7 @@ export class RollbarApi { hours: number; environment: string; }, - ): Promise< - { - item: { - id: number; - counter: number; - environment: string; - framework: RollbarFrameworkId; - lastOccurrenceTimestamp: number; - level: number; - occurrences: number; - projectId: number; - title: string; - uniqueOccurrences: number; - }; - counts: number[]; - }[] - >; + ): Promise; } // @public (undocumented) diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index 2ecd2cc800..e762c2be4f 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -9,7 +9,6 @@ import { Conditions } from '@backstage/plugin-permission-node'; import { PermissionCondition } from '@backstage/plugin-permission-common'; import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PermissionRule } from '@backstage/plugin-permission-node'; -import { PermissionRuleParams } from '@backstage/plugin-permission-common'; import { ResourcePermission } from '@backstage/plugin-permission-common'; import { TaskBroker } from '@backstage/plugin-scaffolder-backend'; import { TemplateAction } from '@backstage/plugin-scaffolder-node'; @@ -24,9 +23,7 @@ export const catalogModuleTemplateKind: () => BackendFeature; // @alpha export const createScaffolderConditionalDecision: ( permission: ResourcePermission<'scaffolder-template'>, - conditions: PermissionCriteria< - PermissionCondition<'scaffolder-template', PermissionRuleParams> - >, + conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; // @alpha diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index f083db5102..aed8921cdc 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -614,10 +614,18 @@ export const createTemplateAction: < TOutputParams extends JsonObject = JsonObject, TInputSchema extends ZodType | Schema = {}, TOutputSchema extends ZodType | Schema = {}, - TActionInput = TInputSchema extends ZodType + TActionInput extends JsonObject = TInputSchema extends ZodType< + any, + any, + infer IReturn + > ? IReturn : TInputParams, - TActionOutput = TOutputSchema extends ZodType + TActionOutput extends JsonObject = TOutputSchema extends ZodType< + any, + any, + infer IReturn_1 + > ? IReturn_1 : TOutputParams, >( diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md index 51f2aab501..bea689dc70 100644 --- a/plugins/scaffolder-node/api-report.md +++ b/plugins/scaffolder-node/api-report.md @@ -44,10 +44,18 @@ export const createTemplateAction: < TOutputParams extends JsonObject = JsonObject, TInputSchema extends z.ZodType | Schema = {}, TOutputSchema extends z.ZodType | Schema = {}, - TActionInput = TInputSchema extends z.ZodType + TActionInput extends JsonObject = TInputSchema extends z.ZodType< + any, + any, + infer IReturn + > ? IReturn : TInputParams, - TActionOutput = TOutputSchema extends z.ZodType + TActionOutput extends JsonObject = TOutputSchema extends z.ZodType< + any, + any, + infer IReturn_1 + > ? IReturn_1 : TOutputParams, >( @@ -75,8 +83,8 @@ export type TaskSecrets = Record & { // @public (undocumented) export type TemplateAction< - TActionInput = unknown, - TActionOutput = JsonObject, + TActionInput extends JsonObject = JsonObject, + TActionOutput extends JsonObject = JsonObject, > = { id: string; description?: string; @@ -94,8 +102,8 @@ export type TemplateAction< // @public (undocumented) export type TemplateActionOptions< - TActionInput = {}, - TActionOutput = {}, + TActionInput extends JsonObject = {}, + TActionOutput extends JsonObject = {}, TInputSchema extends Schema | z.ZodType = {}, TOutputSchema extends Schema | z.ZodType = {}, > = { diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md index da8309d5ec..baf5afb312 100644 --- a/plugins/scaffolder-react/api-report.md +++ b/plugins/scaffolder-react/api-report.md @@ -71,7 +71,7 @@ export type FieldExtensionComponent<_TReturnValue, _TInputProps> = () => null; // @public export interface FieldExtensionComponentProps< TFieldReturnValue, - TUiOptions extends {} = {}, + TUiOptions = unknown, > extends FieldProps { // (undocumented) uiSchema: FieldProps['uiSchema'] & { @@ -316,7 +316,7 @@ export type TemplateParameterSchema = { // @public export const useCustomFieldExtensions: < - TComponentDataType = FieldExtensionOptions, + TComponentDataType = FieldExtensionOptions, >( outlet: React.ReactNode, ) => TComponentDataType[]; From d0c05512087c645e83a3bb4b048ce253b35e525a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 29 Mar 2023 10:53:31 +0200 Subject: [PATCH 047/114] scaffolder-backend: loosen schema for catalog write action input to match JsonObject constraint Signed-off-by: Patrik Oldsberg --- plugins/scaffolder-backend/api-report.md | 4 +--- .../src/scaffolder/actions/builtin/catalog/write.ts | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index aed8921cdc..2faaeca7cc 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -85,9 +85,7 @@ export function createCatalogRegisterAction(options: { // @public export function createCatalogWriteAction(): TemplateAction_2< { - entity: {} & { - [k: string]: unknown; - }; + entity: Record; filePath?: string | undefined; }, JsonObject 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 9e823d2574..81fdc73e71 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts @@ -69,8 +69,7 @@ export function createCatalogWriteAction() { .describe('Defaults to catalog-info.yaml'), // TODO: this should reference an zod entity validator if it existed. entity: z - .object({}) - .passthrough() + .record(z.any()) .describe( 'You can provide the same values used in the Entity schema.', ), From c48324543362931059bde013607186cdd19409b8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 29 Mar 2023 12:00:26 +0200 Subject: [PATCH 048/114] storybook: stay on TypeScript 4.7 Signed-off-by: Patrik Oldsberg --- storybook/package.json | 3 ++- storybook/yarn.lock | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/storybook/package.json b/storybook/package.json index d7cb2bda98..b256fcaf33 100644 --- a/storybook/package.json +++ b/storybook/package.json @@ -26,7 +26,8 @@ "@storybook/node-logger": "^6.5.9", "@storybook/react": "^6.5.9", "@storybook/testing-library": "^0.0.13", - "storybook-dark-mode": "^1.1.0" + "storybook-dark-mode": "^1.1.0", + "typescript": "~4.7.0" }, "resolutions": { "webpack": "^5.73.0" diff --git a/storybook/yarn.lock b/storybook/yarn.lock index d1b064f48c..4bb4a0a098 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -10662,6 +10662,7 @@ __metadata: react-hot-loader: ^4.13.0 storybook-dark-mode: ^1.1.0 swc-loader: ^0.2.3 + typescript: ~4.7.0 peerDependencies: "@backstage/core-app-api": "*" "@backstage/core-plugin-api": "*" @@ -11192,6 +11193,26 @@ __metadata: languageName: node linkType: hard +"typescript@npm:~4.7.0": + version: 4.7.4 + resolution: "typescript@npm:4.7.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 5750181b1cd7e6482c4195825547e70f944114fb47e58e4aa7553e62f11b3f3173766aef9c281783edfd881f7b8299cf35e3ca8caebe73d8464528c907a164df + languageName: node + linkType: hard + +"typescript@patch:typescript@~4.7.0#~builtin": + version: 4.7.4 + resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin::version=4.7.4&hash=a1c5e5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 9096d8f6c16cb80ef3bf96fcbbd055bf1c4a43bd14f3b7be45a9fbe7ada46ec977f604d5feed3263b4f2aa7d4c7477ce5f9cd87de0d6feedec69a983f3a4f93e + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.17.0 resolution: "uglify-js@npm:3.17.0" From 5986d833f57707c9ae08fef97cb10c5144331379 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Wed, 29 Mar 2023 14:58:16 +0100 Subject: [PATCH 049/114] fix reference to deprecated import Signed-off-by: Brian Fletcher --- packages/app/src/App.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 1ee6978a87..ea465e4ed8 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -60,12 +60,11 @@ import { HomepageCompositionRoot } from '@backstage/plugin-home'; import { LighthousePage } from '@backstage/plugin-lighthouse'; import { NewRelicPage } from '@backstage/plugin-newrelic'; import { NextScaffolderPage } from '@backstage/plugin-scaffolder/alpha'; +import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; import { - ScaffolderPage, - scaffolderPlugin, + ScaffolderFieldExtensions, ScaffolderLayouts, -} from '@backstage/plugin-scaffolder'; -import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder-react'; +} from '@backstage/plugin-scaffolder-react'; import { SearchPage } from '@backstage/plugin-search'; import { TechRadarPage } from '@backstage/plugin-tech-radar'; import { From 9a3c18fb2a81370511279ffce4888f06b6bca42e Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Wed, 29 Mar 2023 15:08:03 +0100 Subject: [PATCH 050/114] remove deprecated LocationSpecs Signed-off-by: Brian Fletcher --- .../src/processors/AzureDevOpsDiscoveryProcessor.test.ts | 2 +- .../src/processors/AzureDevOpsDiscoveryProcessor.ts | 2 +- .../src/providers/AzureDevOpsEntityProvider.ts | 2 +- .../src/modules/core/AnnotateLocationEntityProcessor.test.ts | 2 +- .../src/modules/core/AnnotateScmSlugEntityProcessor.test.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) 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 0a1ec1e3cf..4a8e1d4537 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-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; 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 fde59046ef..bad6067dc3 100644 --- a/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts +++ b/plugins/catalog-backend-module-azure/src/processors/AzureDevOpsDiscoveryProcessor.ts @@ -22,9 +22,9 @@ import { import { CatalogProcessor, CatalogProcessorEmit, - LocationSpec, processingResult, } from '@backstage/plugin-catalog-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; import { Logger } from 'winston'; 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 6ad4e9ae0b..5abd23ce00 100644 --- a/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts +++ b/plugins/catalog-backend-module-azure/src/providers/AzureDevOpsEntityProvider.ts @@ -20,9 +20,9 @@ import { AzureIntegration, ScmIntegrations } from '@backstage/integration'; import { EntityProvider, EntityProviderConnection, - LocationSpec, locationSpecToLocationEntity, } from '@backstage/plugin-catalog-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; import { readAzureDevOpsConfigs } from './config'; import { Logger } from 'winston'; import { AzureDevOpsConfig } from './types'; diff --git a/plugins/catalog-backend/src/modules/core/AnnotateLocationEntityProcessor.test.ts b/plugins/catalog-backend/src/modules/core/AnnotateLocationEntityProcessor.test.ts index 228429c647..66b6300df9 100644 --- a/plugins/catalog-backend/src/modules/core/AnnotateLocationEntityProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/AnnotateLocationEntityProcessor.test.ts @@ -17,7 +17,7 @@ import { Entity } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; import { ScmIntegrations } from '@backstage/integration'; -import { LocationSpec } from '@backstage/plugin-catalog-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; import { AnnotateLocationEntityProcessor } from './AnnotateLocationEntityProcessor'; describe('AnnotateLocationEntityProcessor', () => { diff --git a/plugins/catalog-backend/src/modules/core/AnnotateScmSlugEntityProcessor.test.ts b/plugins/catalog-backend/src/modules/core/AnnotateScmSlugEntityProcessor.test.ts index 6154d82330..bafac6e3ac 100644 --- a/plugins/catalog-backend/src/modules/core/AnnotateScmSlugEntityProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/AnnotateScmSlugEntityProcessor.test.ts @@ -16,7 +16,7 @@ import { Entity } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; import { AnnotateScmSlugEntityProcessor } from './AnnotateScmSlugEntityProcessor'; -import { LocationSpec } from '@backstage/plugin-catalog-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; describe('AnnotateScmSlugEntityProcessor', () => { describe('github', () => { From d00ed986d38de292b5e50879dd62f345e33fcc57 Mon Sep 17 00:00:00 2001 From: rsegovia Date: Wed, 29 Mar 2023 14:31:15 -0300 Subject: [PATCH 051/114] Vagner Guedes left the company Vagner Guedes left the company Signed-off-by: rsegovia --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index bb726efa28..885bd8b978 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -103,7 +103,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Stilingue](https://www.stilingue.com.br/) | [@stilingue-inteligencia-artificial](https://github.com/Stilingue-IA), [@bbviana](https://github.com/bbviana) | Developer portal, services catalog and centralization of metrics from Grafana, Sentry and GCP. Furthermore, centralization of documentation and infra details like DNS, Network services, SSL and so on. | | [TUI Group](https://www.tuigroup.com/) | [Simon Stamm](https://github.com/simonstamm), [Christian Rudolph](https://github.com/ChrisRu82) | Developer portal for all engineer to provide discoverability to all internal components, APIs, documentation and to scaffold templates with integrations to our internal tools extended by plugins from our community. | | [Alliander](https://www.alliander.com/) | [@leon-vg](https://github.com/leon-vg), [@gieljl](https://github.com/gieljl), [@niekteg](https://github.com/niekteg) | Developer portal - software catalog, technical documentation, software templates, tech radar and exploration of used tools/services | -| [VIA](https://www.via.com.br) | [@vagnerguedes](https://github.com/vagnerguedes) | Centralized Developer Experience portal - Software catalog and documentation platform, software templates, techdocs, scaffolding, self-service infrastructure | +| [VIA](https://www.via.com.br) | [Rogerio Segovia](https://github.com/rsegovia) | Centralized Developer Experience portal - Software catalog and documentation platform, software templates, techdocs, scaffolding, self-service infrastructure | | [Surevine](https://www.surevine.com/) | [@DJDANNY123](https://github.com/djdanny123) | Developer portal for software catalog, discovery and a view of the technologies we are using across the organisation, we are looking to explore how we can enrich our entities in Backstage by integrating a software bill of materials. | | [Bonial International GmbH](https://www.bonial.com/) | [@pjungermann](https://github.com/pjungermann) | Centralized developer portal with software catalog, tech docs, templates, and more. | | [Beez Innovation Labs Pvt. Ltd](https://www.beezlabs.com/) | [Karthikeyan Venkatesan](https://github.com/karthikeyan23) | Developer portal with software catalog, scaffolding, tech docs, templates, and infra. | From 8075b67e64c7903e9e328f7242d18600fac2020b Mon Sep 17 00:00:00 2001 From: Axel Hecht Date: Mon, 6 Mar 2023 16:55:32 +0100 Subject: [PATCH 052/114] Pass configs from build:backend to app builds. Fixes #15274 When using `build:backend` with `--config` options, they're not passed down to the packaging of the FE app. Thus, that's picking up the default configs, which includes the `app-config.local.yaml`, but it's also missing the production yaml, if requested. Pass the given `configPaths` around for the backend build like the frontend build already does. Signed-off-by: Axel Hecht --- .changeset/clever-lizards-whisper.md | 5 +++++ .../cli/src/commands/build/buildBackend.ts | 4 +++- packages/cli/src/commands/build/command.ts | 1 + packages/cli/src/lib/config.ts | 2 +- .../src/lib/packager/createDistWorkspace.ts | 21 +++++++++++++++---- 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .changeset/clever-lizards-whisper.md diff --git a/.changeset/clever-lizards-whisper.md b/.changeset/clever-lizards-whisper.md new file mode 100644 index 0000000000..5b5307af1f --- /dev/null +++ b/.changeset/clever-lizards-whisper.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Support building the frontend with the same set of configs as the backend. diff --git a/packages/cli/src/commands/build/buildBackend.ts b/packages/cli/src/commands/build/buildBackend.ts index 7e61f9ae85..5d42aa18d4 100644 --- a/packages/cli/src/commands/build/buildBackend.ts +++ b/packages/cli/src/commands/build/buildBackend.ts @@ -28,10 +28,11 @@ const SKELETON_FILE = 'skeleton.tar.gz'; interface BuildBackendOptions { targetDir: string; skipBuildDependencies: boolean; + configPaths?: string[]; } export async function buildBackend(options: BuildBackendOptions) { - const { targetDir, skipBuildDependencies } = options; + const { targetDir, skipBuildDependencies, configPaths } = options; const pkg = await fs.readJson(resolvePath(targetDir, 'package.json')); // We build the target package without generating type declarations. @@ -45,6 +46,7 @@ export async function buildBackend(options: BuildBackendOptions) { try { await createDistWorkspace([pkg.name], { targetDir: tmpDir, + configPaths, buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], parallelism: getEnvironmentParallelism(), diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index fcaf58e1ee..7330d9891f 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -34,6 +34,7 @@ export async function command(opts: OptionValues): Promise { if (role === 'backend') { return buildBackend({ targetDir: paths.targetDir, + configPaths: opts.config as string[], skipBuildDependencies: Boolean(opts.skipBuildDependencies), }); } diff --git a/packages/cli/src/lib/config.ts b/packages/cli/src/lib/config.ts index a76571c3f6..c813ce59fd 100644 --- a/packages/cli/src/lib/config.ts +++ b/packages/cli/src/lib/config.ts @@ -38,7 +38,7 @@ export async function loadCliConfig(options: Options) { const configTargets: ConfigTarget[] = []; options.args.forEach(arg => { if (!isValidUrl(arg)) { - configTargets.push({ path: paths.resolveTarget(arg) }); + configTargets.push({ path: paths.resolveTargetRoot(arg) }); } }); diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index 2d2967fc44..601f442a73 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -60,6 +60,11 @@ type Options = { */ targetDir?: string; + /** + * Configuration files to load during packaging. + */ + configPaths?: string[]; + /** * Files to copy into the target workspace. * @@ -127,13 +132,18 @@ export async function createDistWorkspace( if (options.buildDependencies) { const exclude = options.buildExcludes ?? []; + const configPaths = options.configPaths ?? []; const toBuild = new Set( targets.map(_ => _.name).filter(name => !exclude.includes(name)), ); const standardBuilds = new Array(); - const customBuild = new Array<{ dir: string; name: string }>(); + const customBuild = new Array<{ + dir: string; + name: string; + args?: string[]; + }>(); for (const pkg of packages) { if (!toBuild.has(pkg.packageJson.name)) { @@ -166,7 +176,10 @@ export async function createDistWorkspace( console.warn( `Building ${pkg.packageJson.name} separately because it is a bundled package`, ); - customBuild.push({ dir: pkg.dir, name: pkg.packageJson.name }); + const args = buildScript.includes('--config') + ? [] + : configPaths.map(p => ['--config', p]).flat(); + customBuild.push({ dir: pkg.dir, name: pkg.packageJson.name, args }); continue; } @@ -193,8 +206,8 @@ export async function createDistWorkspace( if (customBuild.length > 0) { await runParallelWorkers({ items: customBuild, - worker: async ({ name, dir }) => { - await run('yarn', ['run', 'build'], { + worker: async ({ name, dir, args }) => { + await run('yarn', ['run', 'build', ...(args || [])], { cwd: dir, stdoutLogFunc: prefixLogFunc(`${name}: `, 'stdout'), stderrLogFunc: prefixLogFunc(`${name}: `, 'stderr'), From 559af0f44fbf0628047cb67d51e37b3ff36043fb Mon Sep 17 00:00:00 2001 From: Axel Hecht Date: Tue, 7 Mar 2023 10:19:42 +0100 Subject: [PATCH 053/114] Update the docs to suggest passing in the right configs. Remove old note from docker docs Signed-off-by: Axel Hecht --- docs/deployment/docker.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index 88c22afb9b..f96204b413 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -37,10 +37,6 @@ The required steps in the host build are to install dependencies with `yarn install`, generate type definitions using `yarn tsc`, and build the backend package with `yarn build:backend`. -> NOTE: If you created your app prior to 2021-02-18, follow the -> [migration step](https://github.com/backstage/backstage/releases/tag/release-2021-02-18) -> to move from `backend:build` to `backend:bundle`. - In a CI workflow it might look something like this: ```bash @@ -50,7 +46,8 @@ yarn install --frozen-lockfile yarn tsc # Build the backend, which bundles it all up into the packages/backend/dist folder. -yarn build:backend +# The configuration files here should match the one you use inside the Dockerfile below. +yarn build:backend --config app-config.yaml ``` Once the host build is complete, we are ready to build our image. The following From 5896463fb225b6cf70d8f9e38ec25daf591f7604 Mon Sep 17 00:00:00 2001 From: Axel Hecht Date: Tue, 7 Mar 2023 10:49:42 +0100 Subject: [PATCH 054/114] Update .changeset/clever-lizards-whisper.md Co-authored-by: Patrik Oldsberg Signed-off-by: Axel Hecht --- .changeset/clever-lizards-whisper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/clever-lizards-whisper.md b/.changeset/clever-lizards-whisper.md index 5b5307af1f..4f2820c347 100644 --- a/.changeset/clever-lizards-whisper.md +++ b/.changeset/clever-lizards-whisper.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Support building the frontend with the same set of configs as the backend. +When building a backend package with dependencies any `--config ` options will now be forwarded to any dependent app package builds, unless the build script in the app package already contains a `--config` option. From e9e9c7962f76131f3bf5025682612fd4b1a800e3 Mon Sep 17 00:00:00 2001 From: Axel Hecht Date: Wed, 8 Mar 2023 20:09:31 +0100 Subject: [PATCH 055/114] Resolve --config options against both current directory and monorepo root. Signed-off-by: Axel Hecht --- .changeset/chilled-bobcats-repeat.md | 5 +++++ packages/cli/src/lib/config.ts | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/chilled-bobcats-repeat.md diff --git a/.changeset/chilled-bobcats-repeat.md b/.changeset/chilled-bobcats-repeat.md new file mode 100644 index 0000000000..572a82b589 --- /dev/null +++ b/.changeset/chilled-bobcats-repeat.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Resolve config options against both the current directory and the monorepo root directory. diff --git a/packages/cli/src/lib/config.ts b/packages/cli/src/lib/config.ts index c813ce59fd..9bb32fa481 100644 --- a/packages/cli/src/lib/config.ts +++ b/packages/cli/src/lib/config.ts @@ -24,6 +24,7 @@ import { paths } from './paths'; import { isValidUrl } from './urls'; import { getPackages } from '@manypkg/get-packages'; import { PackageGraph } from './monorepo'; +import { pathExistsSync } from 'fs-extra'; type Options = { args: string[]; @@ -38,7 +39,11 @@ export async function loadCliConfig(options: Options) { const configTargets: ConfigTarget[] = []; options.args.forEach(arg => { if (!isValidUrl(arg)) { - configTargets.push({ path: paths.resolveTargetRoot(arg) }); + let path = paths.resolveTarget(arg); + if (!pathExistsSync(path)) { + path = paths.resolveOwnRoot(arg); + } + configTargets.push({ path }); } }); From b68d3bac72a02162a4f53d5c20b8108919582f88 Mon Sep 17 00:00:00 2001 From: Tim Hansen Date: Wed, 29 Mar 2023 13:25:21 -0600 Subject: [PATCH 056/114] Mini grammar correction in docs Signed-off-by: Tim Hansen --- docs/backend-system/building-backends/08-migrating.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index b4005b41b4..539c52b9f6 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -121,7 +121,7 @@ given prefix. In the simple case, what we did above is sufficient, TypeScript is happy, and the backend runs with the new feature. If they do, feel free to skip this entire -section, and deleting `types.ts`. +section, and delete `types.ts`. Sometimes though, type errors can be reported on the newly added line, saying that parts of the `PluginEnvironment` type do not match. This happens when the From 074f6253889ff83fcec8d263fd6fa26831ade7fb Mon Sep 17 00:00:00 2001 From: Ruben Vallejo Date: Tue, 21 Feb 2023 15:40:14 -0500 Subject: [PATCH 057/114] renamed kubernetesAuthTranslatorGenerator class and changed it to take a translator map as a parameter to use when decorating cluster details Signed-off-by: Ruben Vallejo --- ...ispatchingKubernetesAuthTranslator.test.ts | 72 +++++++++++++++++++ .../DispatchingKubernetesAuthTranslator.ts | 56 +++++++++++++++ .../KubernetesAuthTranslatorGenerator.test.ts | 61 ---------------- .../KubernetesAuthTranslatorGenerator.ts | 66 ----------------- .../src/kubernetes-auth-translator/index.ts | 2 +- 5 files changed, 129 insertions(+), 128 deletions(-) create mode 100644 plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts create mode 100644 plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts delete mode 100644 plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.test.ts delete mode 100644 plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.ts diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts new file mode 100644 index 0000000000..02b60a031b --- /dev/null +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts @@ -0,0 +1,72 @@ +/* + * Copyright 2020 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 { DispatchingKubernetesAuthTranslator } from './DispatchingKubernetesAuthTranslator'; +import { ClusterDetails } from '../types'; +import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common'; +import { KubernetesAuthTranslator } from './types'; + +describe('decorateClusterDetailsWithAuth', () => { + let authTranslator: DispatchingKubernetesAuthTranslator; + let mockTranslator: jest.Mocked; + const authObject: KubernetesRequestAuth = {}; + + beforeEach(() => { + mockTranslator = { decorateClusterDetailsWithAuth: jest.fn() }; + authTranslator = new DispatchingKubernetesAuthTranslator({ + authTranslatorMap: { google: mockTranslator }, + }); + }); + + it('can decorate cluster details if the auth provider is in the translator map', () => { + const expectedClusterDetails: ClusterDetails = { + url: 'notanything.com', + name: 'randomName', + authProvider: 'google', + serviceAccountToken: 'added by mock translator', + }; + + mockTranslator.decorateClusterDetailsWithAuth.mockReturnValue( + expectedClusterDetails as unknown as Promise, + ); + + const returnedValue = authTranslator.decorateClusterDetailsWithAuth( + { name: 'googleCluster', url: 'anything.com', authProvider: 'google' }, + authObject, + ); + + expect(mockTranslator.decorateClusterDetailsWithAuth).toHaveBeenCalledWith( + { name: 'googleCluster', url: 'anything.com', authProvider: 'google' }, + authObject, + ); + expect(returnedValue).toBe(expectedClusterDetails); + }); + + it('throws an error when asked for an auth translator for an unsupported auth type', () => { + expect(() => + authTranslator.decorateClusterDetailsWithAuth( + { + name: 'test-cluster', + url: 'anything.com', + authProvider: 'linode', + }, + authObject, + ), + ).toThrow( + 'authProvider "linode" has no KubernetesAuthTranslator associated with it', + ); + }); +}); diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts new file mode 100644 index 0000000000..0290bc4c52 --- /dev/null +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts @@ -0,0 +1,56 @@ +/* + * Copyright 2020 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 { KubernetesAuthTranslator } from './types'; +import { ClusterDetails } from '../types'; +import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common'; + +/** + * + * @public + */ +export type KubernetesAuthTranslatorGeneratorOptions = { + authTranslatorMap: { + [key: string]: KubernetesAuthTranslator; + }; +}; +/** + * used to direct a KubernetesAuthProvider to its corresponding KubernetesAuthTranslator + * @public + */ +export class DispatchingKubernetesAuthTranslator + implements KubernetesAuthTranslator +{ + private readonly translatorMap: { [key: string]: KubernetesAuthTranslator }; + + constructor(options: KubernetesAuthTranslatorGeneratorOptions) { + this.translatorMap = options.authTranslatorMap; + } + + public decorateClusterDetailsWithAuth( + clusterDetails: ClusterDetails, + auth: KubernetesRequestAuth, + ) { + if (this.translatorMap[clusterDetails.authProvider]) { + return this.translatorMap[ + clusterDetails.authProvider + ].decorateClusterDetailsWithAuth(clusterDetails, auth); + } + throw new Error( + `authProvider "${clusterDetails.authProvider}" has no KubernetesAuthTranslator associated with it`, + ); + } +} diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.test.ts deleted file mode 100644 index f8abdde9cf..0000000000 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020 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 { KubernetesAuthTranslator } from './types'; -import { GoogleKubernetesAuthTranslator } from './GoogleKubernetesAuthTranslator'; -import { KubernetesAuthTranslatorGenerator } from './KubernetesAuthTranslatorGenerator'; -import { NoopKubernetesAuthTranslator } from './NoopKubernetesAuthTranslator'; -import { AwsIamKubernetesAuthTranslator } from './AwsIamKubernetesAuthTranslator'; -import { OidcKubernetesAuthTranslator } from './OidcKubernetesAuthTranslator'; -import { getVoidLogger } from '@backstage/backend-common'; - -const logger = getVoidLogger(); - -describe('getKubernetesAuthTranslatorInstance', () => { - const sut = KubernetesAuthTranslatorGenerator; - - it('can return an auth translator for google auth', () => { - const authTranslator: KubernetesAuthTranslator = - sut.getKubernetesAuthTranslatorInstance('google', { logger }); - expect(authTranslator instanceof GoogleKubernetesAuthTranslator).toBe(true); - }); - - it('can return an auth translator for aws auth', () => { - const authTranslator: KubernetesAuthTranslator = - sut.getKubernetesAuthTranslatorInstance('aws', { logger }); - expect(authTranslator instanceof AwsIamKubernetesAuthTranslator).toBe(true); - }); - - it('can return an auth translator for serviceAccount auth', () => { - const authTranslator: KubernetesAuthTranslator = - sut.getKubernetesAuthTranslatorInstance('serviceAccount', { logger }); - expect(authTranslator instanceof NoopKubernetesAuthTranslator).toBe(true); - }); - - it('can return an auth translator for oidc auth', () => { - const authTranslator: KubernetesAuthTranslator = - sut.getKubernetesAuthTranslatorInstance('oidc', { logger }); - expect(authTranslator instanceof OidcKubernetesAuthTranslator).toBe(true); - }); - - it('throws an error when asked for an auth translator for an unsupported auth type', () => { - expect(() => - sut.getKubernetesAuthTranslatorInstance('linode', { logger }), - ).toThrow( - 'authProvider "linode" has no KubernetesAuthTranslator associated with it', - ); - }); -}); diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.ts deleted file mode 100644 index f54e46efab..0000000000 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/KubernetesAuthTranslatorGenerator.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2020 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 { Logger } from 'winston'; -import { KubernetesAuthTranslator } from './types'; -import { GoogleKubernetesAuthTranslator } from './GoogleKubernetesAuthTranslator'; -import { NoopKubernetesAuthTranslator } from './NoopKubernetesAuthTranslator'; -import { AwsIamKubernetesAuthTranslator } from './AwsIamKubernetesAuthTranslator'; -import { GoogleServiceAccountAuthTranslator } from './GoogleServiceAccountAuthProvider'; -import { AzureIdentityKubernetesAuthTranslator } from './AzureIdentityKubernetesAuthTranslator'; -import { OidcKubernetesAuthTranslator } from './OidcKubernetesAuthTranslator'; - -/** - * - * @public - */ -export class KubernetesAuthTranslatorGenerator { - static getKubernetesAuthTranslatorInstance( - authProvider: string, - options: { - logger: Logger; - }, - ): KubernetesAuthTranslator { - switch (authProvider) { - case 'google': { - return new GoogleKubernetesAuthTranslator(); - } - case 'aws': { - return new AwsIamKubernetesAuthTranslator(); - } - case 'azure': { - return new AzureIdentityKubernetesAuthTranslator(options.logger); - } - case 'serviceAccount': { - return new NoopKubernetesAuthTranslator(); - } - case 'googleServiceAccount': { - return new GoogleServiceAccountAuthTranslator(); - } - case 'oidc': { - return new OidcKubernetesAuthTranslator(); - } - case 'localKubectlProxy': { - return new NoopKubernetesAuthTranslator(); - } - default: { - throw new Error( - `authProvider "${authProvider}" has no KubernetesAuthTranslator associated with it`, - ); - } - } - } -} diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/index.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/index.ts index 19f6dd80eb..4ee83b0da0 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/index.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/index.ts @@ -18,7 +18,7 @@ export * from './AwsIamKubernetesAuthTranslator'; export * from './AzureIdentityKubernetesAuthTranslator'; export * from './GoogleKubernetesAuthTranslator'; export * from './GoogleServiceAccountAuthProvider'; -export * from './KubernetesAuthTranslatorGenerator'; +export * from './DispatchingKubernetesAuthTranslator'; export * from './NoopKubernetesAuthTranslator'; export * from './OidcKubernetesAuthTranslator'; export * from './types'; From e6c7c85012946ade3f396385a4772c78ec698bd7 Mon Sep 17 00:00:00 2001 From: Ruben Vallejo Date: Tue, 21 Feb 2023 15:41:28 -0500 Subject: [PATCH 058/114] change decorateClusterDetailsWithAuth method to use the authTranslator provided by the KubernetesFanOutHandler constructor Signed-off-by: Ruben Vallejo --- .changeset/blue-walls-drop.md | 5 + plugins/kubernetes-backend/api-report.md | 54 ++++- ...ispatchingKubernetesAuthTranslator.test.ts | 8 +- .../DispatchingKubernetesAuthTranslator.ts | 4 +- .../src/service/KubernetesBuilder.ts | 58 ++++- .../service/KubernetesFanOutHandler.test.ts | 10 + .../src/service/KubernetesFanOutHandler.ts | 32 +-- .../src/service/KubernetesProxy.test.ts | 212 +++++++++++++++++- .../src/service/KubernetesProxy.ts | 46 ++-- .../kubernetes-backend/src/service/index.ts | 5 +- 10 files changed, 366 insertions(+), 68 deletions(-) create mode 100644 .changeset/blue-walls-drop.md diff --git a/.changeset/blue-walls-drop.md b/.changeset/blue-walls-drop.md new file mode 100644 index 0000000000..a8e9ea1d33 --- /dev/null +++ b/.changeset/blue-walls-drop.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': minor +--- + +Plugins that instantiate the `KubernetesProxy` must now provide a parameter of the type `KubernetesProxyOptions` which includes providing a `KubernetesAuthTranslator`. The `KubernetesBuilder` now builds its own `KubernetesAuthTranslatorMap` that it provides to the `KubernetesProxy`. The `DispatchingKubernetesAuthTranslator` expects a `KubernetesTranslatorMap` to be provided as a parameter. The `KubernetesBuilder` now has a method called `setAuthTranslatorMap` which allows integrators to bring their own `KubernetesAuthTranslator's` to the `KubernetesPlugin`. diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 449131a26e..bc51d504de 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -110,6 +110,25 @@ export interface CustomResourcesByEntity extends KubernetesObjectsByEntity { // @public (undocumented) export const DEFAULT_OBJECTS: ObjectToFetch[]; +// @public +export class DispatchingKubernetesAuthTranslator + implements KubernetesAuthTranslator +{ + constructor(options: DispatchingKubernetesAuthTranslatorOptions); + // (undocumented) + decorateClusterDetailsWithAuth( + clusterDetails: ClusterDetails, + auth: KubernetesRequestAuth, + ): Promise; +} + +// @public (undocumented) +export type DispatchingKubernetesAuthTranslatorOptions = { + authTranslatorMap: { + [key: string]: KubernetesAuthTranslator; + }; +}; + // @public (undocumented) export interface FetchResponseWrapper { // (undocumented) @@ -157,23 +176,16 @@ export interface KubernetesAuthTranslator { ): Promise; } -// @public (undocumented) -export class KubernetesAuthTranslatorGenerator { - // (undocumented) - static getKubernetesAuthTranslatorInstance( - authProvider: string, - options: { - logger: Logger; - }, - ): KubernetesAuthTranslator; -} - // @public (undocumented) export class KubernetesBuilder { constructor(env: KubernetesEnvironment); // (undocumented) build(): KubernetesBuilderReturn; // (undocumented) + protected buildAuthTranslatorMap(): { + [key: string]: KubernetesAuthTranslator; + }; + // (undocumented) protected buildClusterSupplier( refreshInterval: Duration, ): KubernetesClustersSupplier; @@ -220,6 +232,10 @@ export class KubernetesBuilder { clusterSupplier: KubernetesClustersSupplier, ): Promise; // (undocumented) + protected getAuthTranslatorMap(): { + [key: string]: KubernetesAuthTranslator; + }; + // (undocumented) protected getClusterSupplier(): KubernetesClustersSupplier; // (undocumented) protected getFetcher(): KubernetesFetcher; @@ -239,6 +255,10 @@ export class KubernetesBuilder { // (undocumented) protected getServiceLocatorMethod(): ServiceLocatorMethod; // (undocumented) + setAuthTranslatorMap(authTranslatorMap: { + [key: string]: KubernetesAuthTranslator; + }): void; + // (undocumented) setClusterSupplier(clusterSupplier?: KubernetesClustersSupplier): this; // (undocumented) setDefaultClusterRefreshInterval(refreshInterval: Duration): this; @@ -261,6 +281,9 @@ export type KubernetesBuilderReturn = Promise<{ proxy: KubernetesProxy; objectsProvider: KubernetesObjectsProvider; serviceLocator: KubernetesServiceLocator; + authTranslatorMap: { + [key: string]: KubernetesAuthTranslator; + }; }>; // @public @@ -345,7 +368,7 @@ export type KubernetesObjectTypes = // @public export class KubernetesProxy { - constructor(logger: Logger, clusterSupplier: KubernetesClustersSupplier); + constructor(options: KubernetesProxyOptions); // (undocumented) createRequestHandler( options: KubernetesProxyCreateRequestHandlerOptions, @@ -357,6 +380,13 @@ export type KubernetesProxyCreateRequestHandlerOptions = { permissionApi: PermissionEvaluator; }; +// @public +export type KubernetesProxyOptions = { + logger: Logger; + clusterSupplier: KubernetesClustersSupplier; + authTranslator: KubernetesAuthTranslator; +}; + // @public export interface KubernetesServiceLocator { // (undocumented) diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts index 02b60a031b..3132bdef76 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.test.ts @@ -31,7 +31,7 @@ describe('decorateClusterDetailsWithAuth', () => { }); }); - it('can decorate cluster details if the auth provider is in the translator map', () => { + it('can decorate cluster details if the auth provider is in the translator map', async () => { const expectedClusterDetails: ClusterDetails = { url: 'notanything.com', name: 'randomName', @@ -39,11 +39,11 @@ describe('decorateClusterDetailsWithAuth', () => { serviceAccountToken: 'added by mock translator', }; - mockTranslator.decorateClusterDetailsWithAuth.mockReturnValue( - expectedClusterDetails as unknown as Promise, + mockTranslator.decorateClusterDetailsWithAuth.mockResolvedValue( + expectedClusterDetails, ); - const returnedValue = authTranslator.decorateClusterDetailsWithAuth( + const returnedValue = await authTranslator.decorateClusterDetailsWithAuth( { name: 'googleCluster', url: 'anything.com', authProvider: 'google' }, authObject, ); diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts index 0290bc4c52..82d9538cac 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/DispatchingKubernetesAuthTranslator.ts @@ -22,7 +22,7 @@ import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common'; * * @public */ -export type KubernetesAuthTranslatorGeneratorOptions = { +export type DispatchingKubernetesAuthTranslatorOptions = { authTranslatorMap: { [key: string]: KubernetesAuthTranslator; }; @@ -36,7 +36,7 @@ export class DispatchingKubernetesAuthTranslator { private readonly translatorMap: { [key: string]: KubernetesAuthTranslator }; - constructor(options: KubernetesAuthTranslatorGeneratorOptions) { + constructor(options: DispatchingKubernetesAuthTranslatorOptions) { this.translatorMap = options.authTranslatorMap; } diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts index 367e5edef3..5e885512f7 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts @@ -24,6 +24,17 @@ import { Duration } from 'luxon'; import { Logger } from 'winston'; import { getCombinedClusterSupplier } from '../cluster-locator'; +import { + KubernetesAuthTranslator, + DispatchingKubernetesAuthTranslator, + GoogleKubernetesAuthTranslator, + NoopKubernetesAuthTranslator, + AwsIamKubernetesAuthTranslator, + GoogleServiceAccountAuthTranslator, + AzureIdentityKubernetesAuthTranslator, + OidcKubernetesAuthTranslator, +} from '../kubernetes-auth-translator'; + import { addResourceRoutesToRouter } from '../routes/resourcesRoutes'; import { MultiTenantServiceLocator } from '../service-locator/MultiTenantServiceLocator'; import { @@ -68,6 +79,7 @@ export type KubernetesBuilderReturn = Promise<{ proxy: KubernetesProxy; objectsProvider: KubernetesObjectsProvider; serviceLocator: KubernetesServiceLocator; + authTranslatorMap: { [key: string]: KubernetesAuthTranslator }; }>; /** @@ -83,6 +95,7 @@ export class KubernetesBuilder { private fetcher?: KubernetesFetcher; private serviceLocator?: KubernetesServiceLocator; private proxy?: KubernetesProxy; + private authTranslatorMap?: { [key: string]: KubernetesAuthTranslator }; static createBuilder(env: KubernetesEnvironment) { return new KubernetesBuilder(env); @@ -114,6 +127,8 @@ export class KubernetesBuilder { const clusterSupplier = this.getClusterSupplier(); + const authTranslatorMap = this.getAuthTranslatorMap(); + const proxy = this.getProxy(logger, clusterSupplier); const serviceLocator = this.getServiceLocator(); @@ -142,6 +157,7 @@ export class KubernetesBuilder { objectsProvider, router, serviceLocator, + authTranslatorMap, }; } @@ -175,6 +191,12 @@ export class KubernetesBuilder { return this; } + public setAuthTranslatorMap(authTranslatorMap: { + [key: string]: KubernetesAuthTranslator; + }) { + this.authTranslatorMap = authTranslatorMap; + } + protected buildCustomResources() { const customResources: CustomResource[] = ( this.env.config.getOptionalConfigArray('kubernetes.customResources') ?? [] @@ -210,7 +232,14 @@ export class KubernetesBuilder { protected buildObjectsProvider( options: KubernetesObjectsProviderOptions, ): KubernetesObjectsProvider { - this.objectsProvider = new KubernetesFanOutHandler(options); + const authTranslatorMap = this.getAuthTranslatorMap(); + this.objectsProvider = new KubernetesFanOutHandler({ + ...options, + authTranslator: new DispatchingKubernetesAuthTranslator({ + authTranslatorMap, + }), + }); + return this.objectsProvider; } @@ -259,7 +288,15 @@ export class KubernetesBuilder { logger: Logger, clusterSupplier: KubernetesClustersSupplier, ): KubernetesProxy { - this.proxy = new KubernetesProxy(logger, clusterSupplier); + const authTranslatorMap = this.getAuthTranslatorMap(); + const authTranslator = new DispatchingKubernetesAuthTranslator({ + authTranslatorMap, + }); + this.proxy = new KubernetesProxy({ + logger, + clusterSupplier, + authTranslator, + }); return this.proxy; } @@ -314,6 +351,19 @@ export class KubernetesBuilder { return router; } + protected buildAuthTranslatorMap() { + this.authTranslatorMap = { + google: new GoogleKubernetesAuthTranslator(), + aws: new AwsIamKubernetesAuthTranslator(), + azure: new AzureIdentityKubernetesAuthTranslator(this.env.logger), + serviceAccount: new NoopKubernetesAuthTranslator(), + googleServiceAccount: new GoogleServiceAccountAuthTranslator(), + oidc: new OidcKubernetesAuthTranslator(), + localKubectlProxy: new NoopKubernetesAuthTranslator(), + }; + return this.authTranslatorMap; + } + protected async fetchClusterDetails( clusterSupplier: KubernetesClustersSupplier, ) { @@ -393,4 +443,8 @@ export class KubernetesBuilder { ) { return this.proxy ?? this.buildProxy(logger, clusterSupplier); } + + protected getAuthTranslatorMap() { + return this.authTranslatorMap ?? this.buildAuthTranslatorMap(); + } } diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts index 53aaa1ad3a..de6035b48e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts @@ -166,6 +166,11 @@ function getKubernetesFanOutHandler(customResources: CustomResource[]) { getClustersByEntity, }, customResources: customResources, + authTranslator: { + decorateClusterDetailsWithAuth: async (clusterDetails, _) => { + return clusterDetails; + }, + }, }); } @@ -879,6 +884,11 @@ describe('getKubernetesObjectsByEntity', () => { objectType: 'services', }, ], + authTranslator: { + decorateClusterDetailsWithAuth: async (clusterDetails, _) => { + return clusterDetails; + }, + }, }); const result = await sut.getKubernetesObjectsByEntity({ diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index f71c6506bd..8441effabd 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -30,7 +30,6 @@ import { ServiceLocatorRequestContext, } from '../types/types'; import { KubernetesAuthTranslator } from '../kubernetes-auth-translator/types'; -import { KubernetesAuthTranslatorGenerator } from '../kubernetes-auth-translator/KubernetesAuthTranslatorGenerator'; import { ClientContainerStatus, ClientCurrentResourceUsage, @@ -137,7 +136,9 @@ export const DEFAULT_OBJECTS: ObjectToFetch[] = [ ]; export interface KubernetesFanOutHandlerOptions - extends KubernetesObjectsProviderOptions {} + extends KubernetesObjectsProviderOptions { + authTranslator: KubernetesAuthTranslator; +} export interface KubernetesRequestBody extends ObjectsByEntityRequest {} @@ -195,7 +196,7 @@ export class KubernetesFanOutHandler { private readonly serviceLocator: KubernetesServiceLocator; private readonly customResources: CustomResource[]; private readonly objectTypesToFetch: Set; - private readonly authTranslators: Record; + private readonly authTranslator: KubernetesAuthTranslator; constructor({ logger, @@ -203,13 +204,14 @@ export class KubernetesFanOutHandler { serviceLocator, customResources, objectTypesToFetch = DEFAULT_OBJECTS, + authTranslator, }: KubernetesFanOutHandlerOptions) { this.logger = logger; this.fetcher = fetcher; this.serviceLocator = serviceLocator; this.customResources = customResources; this.objectTypesToFetch = new Set(objectTypesToFetch); - this.authTranslators = {}; + this.authTranslator = authTranslator; } async getCustomResourcesByEntity({ @@ -313,12 +315,7 @@ export class KubernetesFanOutHandler { // Execute all of these async actions simultaneously/without blocking sequentially as no common object is modified by them const promiseResults = await Promise.allSettled( clusterDetails.map(cd => { - const kubernetesAuthTranslator: KubernetesAuthTranslator = - this.getAuthTranslator(cd.authProvider); - return kubernetesAuthTranslator.decorateClusterDetailsWithAuth( - cd, - auth, - ); + return this.authTranslator.decorateClusterDetailsWithAuth(cd, auth); }), ); @@ -393,19 +390,4 @@ export class KubernetesFanOutHandler { result.errors.push(...podMetrics.errors); return [result, podMetrics.responses as PodStatusFetchResponse[]]; } - - private getAuthTranslator(provider: string): KubernetesAuthTranslator { - if (this.authTranslators[provider]) { - return this.authTranslators[provider]; - } - - this.authTranslators[provider] = - KubernetesAuthTranslatorGenerator.getKubernetesAuthTranslatorInstance( - provider, - { - logger: this.logger, - }, - ); - return this.authTranslators[provider]; - } } diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts index d2404af839..57eb29f0a7 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts @@ -28,16 +28,19 @@ import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; import { APPLICATION_JSON, HEADER_KUBERNETES_CLUSTER, + HEADER_KUBERNETES_AUTH, KubernetesProxy, } from './KubernetesProxy'; import { AuthorizeResult, PermissionEvaluator, } from '@backstage/plugin-permission-common'; +import { KubernetesAuthTranslator } from '../kubernetes-auth-translator'; describe('KubernetesProxy', () => { let proxy: KubernetesProxy; const worker = setupServer(); + const logger = getVoidLogger(); setupRequestMockHandlers(worker); @@ -73,9 +76,13 @@ describe('KubernetesProxy', () => { authorizeConditional: jest.fn(), }; + const authTranslator: jest.Mocked = { + decorateClusterDetailsWithAuth: jest.fn(), + }; + beforeEach(() => { jest.resetAllMocks(); - proxy = new KubernetesProxy(getVoidLogger(), clusterSupplier); + proxy = new KubernetesProxy({ logger, clusterSupplier, authTranslator }); }); it('should return a ERROR_NOT_FOUND if no clusters are found', async () => { @@ -112,21 +119,30 @@ describe('KubernetesProxy', () => { authProvider: 'serviceAccount', }, ] as ClusterDetails[]); + + permissionApi.authorize.mockReturnValue( + Promise.resolve([{ result: AuthorizeResult.ALLOW }]), + ); + + authTranslator.decorateClusterDetailsWithAuth.mockResolvedValue({ + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: '', + authProvider: 'serviceAccount', + } as ClusterDetails); + const app = express().use( '/mountpath', proxy.createRequestHandler({ permissionApi }), ); - permissionApi.authorize.mockReturnValue( - Promise.resolve([{ result: AuthorizeResult.ALLOW }]), - ); const requestPromise = request(app) .get('/mountpath/api') .set(HEADER_KUBERNETES_CLUSTER, 'cluster1'); worker.use( - rest.get('https://localhost:9999/api', (_, res, ctx) => + rest.get('https://localhost:9999/api', (_: any, res: any, ctx: any) => res(ctx.status(299), ctx.json(apiResponse)), ), - rest.all(requestPromise.url, (req, _res, _ctx) => req.passthrough()), + rest.all(requestPromise.url, (req: any) => req.passthrough()), ); const response = await requestPromise; @@ -134,4 +150,188 @@ describe('KubernetesProxy', () => { expect(response.status).toEqual(299); expect(response.body).toStrictEqual(apiResponse); }); + + it('should default to using a provided authorization header', async () => { + worker.use( + rest.get( + 'https://localhost:9999/api/v1/namespaces', + (req: any, res: any, ctx: any) => { + if (!req.headers.get('Authorization')) { + return res(ctx.status(401)); + } + + if (req.headers.get('Authorization') !== 'my-token') { + return res(ctx.status(403)); + } + + return res( + ctx.status(200), + ctx.json({ + kind: 'NamespaceList', + apiVersion: 'v1', + items: [], + }), + ); + }, + ), + ); + + permissionApi.authorize.mockReturnValue( + Promise.resolve([{ result: AuthorizeResult.ALLOW }]), + ); + + clusterSupplier.getClusters.mockResolvedValue([ + { + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: '', + authProvider: 'serviceAccount', + }, + ] as ClusterDetails[]); + + authTranslator.decorateClusterDetailsWithAuth.mockResolvedValue({ + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'random-token', + authProvider: 'serviceAccount', + } as ClusterDetails); + + const app = express().use( + '/mountpath', + proxy.createRequestHandler({ permissionApi }), + ); + const requestPromise = request(app) + .get('/mountpath/api/v1/namespaces') + .set(HEADER_KUBERNETES_CLUSTER, 'cluster1') + .set('Authorization', 'my-token'); + + worker.use(rest.all(requestPromise.url, (req: any) => req.passthrough())); + + const response = await requestPromise; + + expect(response.status).toEqual(200); + }); + + it('should add a serviceAccountToken to the request headers if one isnt provided in request and one isnt set up in cluster details', async () => { + worker.use( + rest.get('https://localhost:9999/api/v1/namespaces', (req, res, ctx) => { + if (!req.headers.get('Authorization')) { + return res(ctx.status(401)); + } + + if (req.headers.get('Authorization') !== 'Bearer my-token') { + return res(ctx.status(403)); + } + + return res( + ctx.status(200), + ctx.json({ + kind: 'NamespaceList', + apiVersion: 'v1', + items: [], + }), + ); + }), + ); + + permissionApi.authorize.mockReturnValue( + Promise.resolve([{ result: AuthorizeResult.ALLOW }]), + ); + + clusterSupplier.getClusters.mockResolvedValue([ + { + name: 'cluster1', + url: 'https://localhost:9999', + authProvider: 'googleServiceAccount', + }, + ] as ClusterDetails[]); + + authTranslator.decorateClusterDetailsWithAuth.mockResolvedValue({ + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'my-token', + authProvider: 'googleServiceAccount', + } as ClusterDetails); + + const app = express().use( + '/mountpath', + proxy.createRequestHandler({ permissionApi }), + ); + const requestPromise = request(app) + .get('/mountpath/api/v1/namespaces') + .set(HEADER_KUBERNETES_CLUSTER, 'cluster1'); + + worker.use(rest.all(requestPromise.url, (req: any) => req.passthrough())); + + const response = await requestPromise; + + expect(response.status).toEqual(200); + expect(response.body).toStrictEqual({ + kind: 'NamespaceList', + apiVersion: 'v1', + items: [], + }); + }); + + it('should append the Backstage-Kubernetes-Auth field to the requests authorization header if one is provided', async () => { + worker.use( + rest.get('https://localhost:9999/api/v1/namespaces', (req, res, ctx) => { + if (!req.headers.get('Authorization')) { + return res(ctx.status(401)); + } + + if (req.headers.get('Authorization') !== 'tokenB') { + return res(ctx.status(403)); + } + + return res( + ctx.status(200), + ctx.json({ + kind: 'NamespaceList', + apiVersion: 'v1', + items: [], + }), + ); + }), + ); + + permissionApi.authorize.mockReturnValue( + Promise.resolve([{ result: AuthorizeResult.ALLOW }]), + ); + + clusterSupplier.getClusters.mockResolvedValue([ + { + name: 'cluster1', + url: 'https://localhost:9999', + authProvider: 'googleServiceAccount', + }, + ] as ClusterDetails[]); + + authTranslator.decorateClusterDetailsWithAuth.mockResolvedValue({ + name: 'cluster1', + url: 'https://localhost:9999', + serviceAccountToken: 'tokenA', + authProvider: 'googleServiceAccount', + } as ClusterDetails); + + const app = express().use( + '/mountpath', + proxy.createRequestHandler({ permissionApi }), + ); + const requestPromise = request(app) + .get('/mountpath/api/v1/namespaces') + .set(HEADER_KUBERNETES_CLUSTER, 'cluster1') + .set(HEADER_KUBERNETES_AUTH, 'tokenB'); + + worker.use(rest.all(requestPromise.url, (req: any) => req.passthrough())); + + const response = await requestPromise; + + expect(response.status).toEqual(200); + expect(response.body).toStrictEqual({ + kind: 'NamespaceList', + apiVersion: 'v1', + items: [], + }); + }); }); diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index 49a381b75a..eb6748ffba 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -32,6 +32,7 @@ import { bufferFromFileOrString } from '@kubernetes/client-node'; import type { Request, RequestHandler } from 'express'; import { createProxyMiddleware } from 'http-proxy-middleware'; import { Logger } from 'winston'; +import { KubernetesAuthTranslator } from '../kubernetes-auth-translator'; import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; export const APPLICATION_JSON: string = 'application/json'; @@ -60,6 +61,17 @@ export type KubernetesProxyCreateRequestHandlerOptions = { permissionApi: PermissionEvaluator; }; +/** + * Options accepted as a parameter by the KubernetesProxy + * + * @public + */ +export type KubernetesProxyOptions = { + logger: Logger; + clusterSupplier: KubernetesClustersSupplier; + authTranslator: KubernetesAuthTranslator; +}; + /** * A proxy that routes requests to the Kubernetes API. * @@ -67,11 +79,15 @@ export type KubernetesProxyCreateRequestHandlerOptions = { */ export class KubernetesProxy { private readonly middlewareForClusterName = new Map(); + private readonly logger: Logger; + private readonly clusterSupplier: KubernetesClustersSupplier; + private readonly authTranslator: KubernetesAuthTranslator; - constructor( - private readonly logger: Logger, - private readonly clusterSupplier: KubernetesClustersSupplier, - ) {} + constructor(options: KubernetesProxyOptions) { + this.logger = options.logger; + this.clusterSupplier = options.clusterSupplier; + this.authTranslator = options.authTranslator; + } public createRequestHandler( options: KubernetesProxyCreateRequestHandlerOptions, @@ -96,6 +112,12 @@ export class KubernetesProxy { return; } + const cluster = await this.getClusterForRequest(req).then(cd => + this.authTranslator.decorateClusterDetailsWithAuth(cd, {}), + ); + if (!req.headers.authorization) { + req.headers.authorization = `Bearer ${cluster.serviceAccountToken}`; + } const middleware = await this.getMiddleware(req); middleware(req, res, next); }; @@ -108,13 +130,6 @@ export class KubernetesProxy { const originalCluster = await this.getClusterForRequest(originalReq); let middleware = this.middlewareForClusterName.get(originalCluster.name); if (!middleware) { - // Probably too risky without permissions protecting this endpoint - // if (cluster.serviceAccountToken) { - // options.headers = { - // Authorization: `Bearer ${cluster.serviceAccountToken}`, - // }; - // } - const logger = this.logger.child({ cluster: originalCluster.name }); middleware = createProxyMiddleware({ logProvider: () => logger, @@ -146,19 +161,18 @@ export class KubernetesProxy { request: { method: req.method, url: req.originalUrl }, response: { statusCode: 500 }, }; - res.status(500).json(body); }, onProxyReq: (proxyReq, req) => { // the kubernetes proxy endpoint expects a header field labeled `Backstage-Kubernetes-Authorization` that will be used to authenticate with the Kubernetes Api. The token provided as a value should be an bearer token for the target cluster. - const token = req.header(HEADER_KUBERNETES_AUTH) ?? ''; - proxyReq.setHeader('Authorization', token); + if (req.header(HEADER_KUBERNETES_AUTH)) { + const token = req.header(HEADER_KUBERNETES_AUTH) ?? ''; + proxyReq.setHeader('Authorization', token); + } }, }); - this.middlewareForClusterName.set(originalCluster.name, middleware); } - return middleware; } diff --git a/plugins/kubernetes-backend/src/service/index.ts b/plugins/kubernetes-backend/src/service/index.ts index 2f3e907879..9c0911de37 100644 --- a/plugins/kubernetes-backend/src/service/index.ts +++ b/plugins/kubernetes-backend/src/service/index.ts @@ -21,5 +21,8 @@ export { KubernetesProxy, HEADER_KUBERNETES_AUTH, } from './KubernetesProxy'; -export type { KubernetesProxyCreateRequestHandlerOptions } from './KubernetesProxy'; +export type { + KubernetesProxyCreateRequestHandlerOptions, + KubernetesProxyOptions, +} from './KubernetesProxy'; export * from './router'; From a3439ddac518216d5a42c98957329c428cebf020 Mon Sep 17 00:00:00 2001 From: Ruben Vallejo Date: Mon, 20 Mar 2023 11:55:39 -0400 Subject: [PATCH 059/114] update proxy docs Signed-off-by: Ruben Vallejo --- docs/features/kubernetes/proxy.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/features/kubernetes/proxy.md b/docs/features/kubernetes/proxy.md index b53dfeb29d..7b6837dd7d 100644 --- a/docs/features/kubernetes/proxy.md +++ b/docs/features/kubernetes/proxy.md @@ -69,15 +69,9 @@ Overall, the only changes to each request are: - the endpoint's base URL prefix is stripped. - the `Backstage-Kubernetes-Authorization` header becomes the `Authorization` header that is used when forwarding the request. -## Authentication +The proxy expects a `KubernetesAuthTranslator` to be provided that is used to decorate all requests with `Auth` by default. It does this by supplying a `serviceAccountToken` field into `clusterDetails` using the defined `authProvider` in `clusterDetails`. -Until some security and permission decisions are made (see [this -conversation](https://github.com/backstage/backstage/pull/13026/files#r1029376939) -for context), contributors consuming the proxy endpoint in their plugin code are -responsible for negotiating their own bearer token out-of-band. This requires -knowing some auth details about the cluster being contacted -- in practice, only -clusters with [client side auth -providers](https://backstage.io/docs/features/kubernetes/authentication#client-side-providers) can reasonably be reached. +## Authentication The proxy has no provisions for mTLS, so it cannot be used to connect to clusters using the [x509 Client From 62a725e3a941a2d7da1b67110b45ef4eb505ade3 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Thu, 30 Mar 2023 08:39:17 +0100 Subject: [PATCH 060/114] api report and changesets Signed-off-by: Brian Fletcher --- .changeset/calm-otters-destroy.md | 6 ++++++ plugins/catalog-backend-module-azure/api-report.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/calm-otters-destroy.md diff --git a/.changeset/calm-otters-destroy.md b/.changeset/calm-otters-destroy.md new file mode 100644 index 0000000000..cf3792cf4c --- /dev/null +++ b/.changeset/calm-otters-destroy.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-backend-module-azure': patch +'@backstage/plugin-catalog-backend': patch +--- + +Use the `LocationSpec` type from the `catalog-common` package in place of the deprecated `LocationSpec` from the `catalog-node` package. diff --git a/plugins/catalog-backend-module-azure/api-report.md b/plugins/catalog-backend-module-azure/api-report.md index a1b9d706a9..596ebbf6cf 100644 --- a/plugins/catalog-backend-module-azure/api-report.md +++ b/plugins/catalog-backend-module-azure/api-report.md @@ -8,7 +8,7 @@ import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { EntityProviderConnection } from '@backstage/plugin-catalog-node'; -import { LocationSpec } from '@backstage/plugin-catalog-node'; +import { LocationSpec } from '@backstage/plugin-catalog-common'; import { Logger } from 'winston'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { ScmIntegrationRegistry } from '@backstage/integration'; From 4a2d0acce71c9151c1ec69037f1c9396fc17c326 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Thu, 30 Mar 2023 08:46:34 +0100 Subject: [PATCH 061/114] add missing dep Signed-off-by: Brian Fletcher --- plugins/catalog-backend-module-azure/package.json | 1 + yarn.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 0c1fd67dfa..292a4aa9da 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -52,6 +52,7 @@ "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/integration": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", "@backstage/types": "workspace:^", "lodash": "^4.17.21", diff --git a/yarn.lock b/yarn.lock index 419c2f48d2..0ba2abf1de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5037,6 +5037,7 @@ __metadata: "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" "@backstage/integration": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" "@backstage/plugin-catalog-node": "workspace:^" "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 From 0d09fec45294466edef8c37e77487a2542ba4d02 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 30 Mar 2023 17:05:56 +0200 Subject: [PATCH 062/114] Update .changeset/curly-steaks-mate.md Signed-off-by: Patrik Oldsberg --- .changeset/curly-steaks-mate.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/curly-steaks-mate.md b/.changeset/curly-steaks-mate.md index 1b41633659..93e53c4959 100644 --- a/.changeset/curly-steaks-mate.md +++ b/.changeset/curly-steaks-mate.md @@ -1,6 +1,6 @@ --- -'@backstage/backend-app-api': minor -'@backstage/backend-common': minor +'@backstage/backend-app-api': patch +'@backstage/backend-common': patch --- Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. From 81bee24c5de313904783dbaf567156380f1a8f46 Mon Sep 17 00:00:00 2001 From: Frederic Kayser Date: Thu, 30 Mar 2023 19:27:11 +0200 Subject: [PATCH 063/114] catalog: make text of picker clickable Signed-off-by: Frederic Kayser --- .changeset/forty-days-tell.md | 5 +++++ .../EntityLifecyclePicker.tsx | 19 ++++++++----------- .../EntityProcessingStatusPicker.tsx | 19 ++++++++----------- 3 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 .changeset/forty-days-tell.md diff --git a/.changeset/forty-days-tell.md b/.changeset/forty-days-tell.md new file mode 100644 index 0000000000..98aed740b8 --- /dev/null +++ b/.changeset/forty-days-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Fixed bug in catalog filters where you could not click on the text to select a value. diff --git a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx index 29002564ca..5d1ea0a96c 100644 --- a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx +++ b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx @@ -18,7 +18,6 @@ import { Entity } from '@backstage/catalog-model'; import { Box, Checkbox, - FormControlLabel, makeStyles, TextField, Typography, @@ -112,16 +111,14 @@ export const EntityLifecyclePicker = (props: { initialFilter?: string[] }) => { setSelectedLifecycles(value) } renderOption={(option, { selected }) => ( - - } - label={option} - /> +

+ + {option} +
)} size="small" popupIcon={} diff --git a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx index db48534bc0..234e86f2fd 100644 --- a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx +++ b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx @@ -18,7 +18,6 @@ import { EntityErrorFilter, EntityOrphanFilter } from '../../filters'; import { Box, Checkbox, - FormControlLabel, makeStyles, TextField, Typography, @@ -83,16 +82,14 @@ export const EntityProcessingStatusPicker = () => { errorChange(value.includes('Has Error')); }} renderOption={(option, { selected }) => ( - - } - label={option} - /> +
+ + {option} +
)} size="small" popupIcon={ From 193aef4c3141c281f75baed1f8c03b5c70eb27db Mon Sep 17 00:00:00 2001 From: Frederic Kayser Date: Thu, 30 Mar 2023 20:55:17 +0200 Subject: [PATCH 064/114] fixed tests Signed-off-by: Frederic Kayser --- .../EntityLifecyclePicker/EntityLifecyclePicker.test.tsx | 8 ++++++-- .../EntityLifecyclePicker/EntityLifecyclePicker.tsx | 3 ++- .../EntityProcessingStatusPicker.test.tsx | 5 ++++- .../EntityProcessingStatusPicker.tsx | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx index 3ee610ddaf..c67f5dcddb 100644 --- a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx @@ -154,9 +154,13 @@ describe('', () => { lifecycles: new EntityLifecycleFilter(['production']), }); fireEvent.click(screen.getByTestId('lifecycle-picker-expand')); - expect(screen.getByLabelText('production')).toBeChecked(); + expect( + screen + .getByTestId('lifecycle-checkbox-production') + .querySelector('input[type="checkbox"]'), + ).toBeChecked(); - fireEvent.click(screen.getByLabelText('production')); + fireEvent.click(screen.getByTestId('lifecycle-checkbox-label-production')); expect(updateFilters).toHaveBeenLastCalledWith({ lifecycles: undefined, }); diff --git a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx index 5d1ea0a96c..b1fba50ae8 100644 --- a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx +++ b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx @@ -111,11 +111,12 @@ export const EntityLifecyclePicker = (props: { initialFilter?: string[] }) => { setSelectedLifecycles(value) } renderOption={(option, { selected }) => ( -
+
{option}
diff --git a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx index 00d36e5e13..3970942ee1 100644 --- a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx @@ -123,7 +123,10 @@ describe('', () => { ); fireEvent.click(screen.getByTestId('processing-status-picker-expand')); - fireEvent.click(screen.getByText('Is Orphan')); + + fireEvent.click( + screen.getByTestId('processing-status-checkbox-label-Is Orphan'), + ); expect(updateFilters).toHaveBeenCalledWith({ orphan: undefined, }); diff --git a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx index 234e86f2fd..237e2d9544 100644 --- a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx +++ b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx @@ -82,7 +82,7 @@ export const EntityProcessingStatusPicker = () => { errorChange(value.includes('Has Error')); }} renderOption={(option, { selected }) => ( -
+
Date: Fri, 31 Mar 2023 09:03:00 +0000 Subject: [PATCH 065/114] chore(deps): update dependency typescript to v5.0.3 Signed-off-by: Renovate Bot --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 419c2f48d2..379dad5674 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38688,12 +38688,12 @@ __metadata: linkType: hard "typescript@npm:~5.0.0": - version: 5.0.2 - resolution: "typescript@npm:5.0.2" + version: 5.0.3 + resolution: "typescript@npm:5.0.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: bef1dcd166acfc6934b2ec4d72f93edb8961a5fab36b8dd2aaf6f4f4cd5c0210f2e0850aef4724f3b4913d5aef203a94a28ded731b370880c8bcff7e4ff91fc1 + checksum: 3cce0576d218cb4277ff8b6adfef1a706e9114a98b4261a38ad658a7642f1b274a8396394f6cbff8c0ba852996d7ed2e233e9b8431d5d55ac7c2f6fea645af02 languageName: node linkType: hard @@ -38708,12 +38708,12 @@ __metadata: linkType: hard "typescript@patch:typescript@~5.0.0#~builtin": - version: 5.0.2 - resolution: "typescript@patch:typescript@npm%3A5.0.2#~builtin::version=5.0.2&hash=a1c5e5" + version: 5.0.3 + resolution: "typescript@patch:typescript@npm%3A5.0.3#~builtin::version=5.0.3&hash=a1c5e5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: bdbf3d0aac0d6cf010fbe0536753dc19f278eb4aba88140dcd25487dfe1c56ca8b33abc0dcd42078790a939b08ebc4046f3e9bb961d77d3d2c3cfa9829da4d53 + checksum: 9ec0a8eed38d46cc2c8794555b7674e413604c56c159f71b8ff21ce7f17334a44127a68724cb2ef8221ff3b19369f8f05654e8a5266621d7d962aeed889bd630 languageName: node linkType: hard From 3944ead310fc5e3291f75a4bd707e1438fd8e704 Mon Sep 17 00:00:00 2001 From: Axel Hecht Date: Fri, 31 Mar 2023 15:00:53 +0200 Subject: [PATCH 066/114] Resolve config paths early for backend builds Signed-off-by: Axel Hecht --- .changeset/chilled-bobcats-repeat.md | 5 ----- packages/cli/src/commands/build/buildBackend.ts | 10 +++++++++- packages/cli/src/lib/config.ts | 7 +------ 3 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 .changeset/chilled-bobcats-repeat.md diff --git a/.changeset/chilled-bobcats-repeat.md b/.changeset/chilled-bobcats-repeat.md deleted file mode 100644 index 572a82b589..0000000000 --- a/.changeset/chilled-bobcats-repeat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Resolve config options against both the current directory and the monorepo root directory. diff --git a/packages/cli/src/commands/build/buildBackend.ts b/packages/cli/src/commands/build/buildBackend.ts index 5d42aa18d4..f82567de3c 100644 --- a/packages/cli/src/commands/build/buildBackend.ts +++ b/packages/cli/src/commands/build/buildBackend.ts @@ -18,6 +18,7 @@ import os from 'os'; import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import tar, { CreateOptions } from 'tar'; +import { paths } from '../../lib/paths'; import { createDistWorkspace } from '../../lib/packager'; import { getEnvironmentParallelism } from '../../lib/parallel'; import { buildPackage, Output } from '../../lib/builder'; @@ -42,11 +43,18 @@ export async function buildBackend(options: BuildBackendOptions) { outputs: new Set([Output.cjs]), }); + const resolvedConfigPaths = configPaths?.map(p => { + let path = paths.resolveTarget(p); + if (!fs.pathExistsSync(path)) { + path = paths.resolveOwnRoot(p); + } + return path; + }); const tmpDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-bundle')); try { await createDistWorkspace([pkg.name], { targetDir: tmpDir, - configPaths, + configPaths: resolvedConfigPaths, buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], parallelism: getEnvironmentParallelism(), diff --git a/packages/cli/src/lib/config.ts b/packages/cli/src/lib/config.ts index 9bb32fa481..a76571c3f6 100644 --- a/packages/cli/src/lib/config.ts +++ b/packages/cli/src/lib/config.ts @@ -24,7 +24,6 @@ import { paths } from './paths'; import { isValidUrl } from './urls'; import { getPackages } from '@manypkg/get-packages'; import { PackageGraph } from './monorepo'; -import { pathExistsSync } from 'fs-extra'; type Options = { args: string[]; @@ -39,11 +38,7 @@ export async function loadCliConfig(options: Options) { const configTargets: ConfigTarget[] = []; options.args.forEach(arg => { if (!isValidUrl(arg)) { - let path = paths.resolveTarget(arg); - if (!pathExistsSync(path)) { - path = paths.resolveOwnRoot(arg); - } - configTargets.push({ path }); + configTargets.push({ path: paths.resolveTarget(arg) }); } }); From 1b1aba3cbd36e55f0b10a1f0a1cfa2e739bea7de Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 31 Mar 2023 16:18:31 +0200 Subject: [PATCH 067/114] GOVERNANCE: update inactivity definition Signed-off-by: Patrik Oldsberg --- GOVERNANCE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 3314e40993..2367dab99c 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -208,12 +208,12 @@ In all cases in this document where voting is mentioned, the voting process is a It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a loss of trust in the project. -Inactivity is measured by periods of no contributions for longer than: +Inactivity is measured by periods of no contributions without explanation, for longer than: - Core Maintainer: 2 months - Project Area Maintainer: 4 months - Plugin Maintainer: 6 months -- Organization Member: 8 months +- Organization Member: 12 months Consequences of being inactive include: From bde3d6fd27e37d0098849c3b78ecd562c8f0c354 Mon Sep 17 00:00:00 2001 From: Ke Ma Date: Fri, 31 Mar 2023 18:17:36 +0200 Subject: [PATCH 068/114] fix: sortField is changed to orderField Signed-off-by: Ke Ma --- packages/catalog-client/src/CatalogClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index be4ae6289d..c388519e05 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -230,7 +230,7 @@ export class CatalogClient implements CatalogApi { } if (orderFields !== undefined) { (Array.isArray(orderFields) ? orderFields : [orderFields]).forEach( - ({ field, order }) => params.push(`sortField=${field},${order}`), + ({ field, order }) => params.push(`orderField=${field},${order}`), ); } if (fields.length) { From c1c4e080b797b487404cd4bd02b3aef243c82148 Mon Sep 17 00:00:00 2001 From: Ke Ma Date: Fri, 31 Mar 2023 18:23:46 +0200 Subject: [PATCH 069/114] add changelog Signed-off-by: Ke Ma --- .changeset/eight-trainers-smoke.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/eight-trainers-smoke.md diff --git a/.changeset/eight-trainers-smoke.md b/.changeset/eight-trainers-smoke.md new file mode 100644 index 0000000000..338df0d44e --- /dev/null +++ b/.changeset/eight-trainers-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-client': minor +--- + +Fixed bug in queryEntities of CatalogClient where the sortField is supposed to be changed to orderField. From 3c1203733093b31a2f736563136b06d20495179c Mon Sep 17 00:00:00 2001 From: Frederic Kayser Date: Fri, 31 Mar 2023 18:47:28 +0200 Subject: [PATCH 070/114] use FormControlLabel and prevent defaults Signed-off-by: Frederic Kayser --- .../EntityLifecyclePicker.test.tsx | 8 ++----- .../EntityLifecyclePicker.tsx | 21 +++++++++++-------- .../EntityProcessingStatusPicker.test.tsx | 5 +---- .../EntityProcessingStatusPicker.tsx | 20 +++++++++++------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx index c67f5dcddb..3ee610ddaf 100644 --- a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.test.tsx @@ -154,13 +154,9 @@ describe('', () => { lifecycles: new EntityLifecycleFilter(['production']), }); fireEvent.click(screen.getByTestId('lifecycle-picker-expand')); - expect( - screen - .getByTestId('lifecycle-checkbox-production') - .querySelector('input[type="checkbox"]'), - ).toBeChecked(); + expect(screen.getByLabelText('production')).toBeChecked(); - fireEvent.click(screen.getByTestId('lifecycle-checkbox-label-production')); + fireEvent.click(screen.getByLabelText('production')); expect(updateFilters).toHaveBeenLastCalledWith({ lifecycles: undefined, }); diff --git a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx index b1fba50ae8..dd107b2673 100644 --- a/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx +++ b/plugins/catalog-react/src/components/EntityLifecyclePicker/EntityLifecyclePicker.tsx @@ -18,6 +18,7 @@ import { Entity } from '@backstage/catalog-model'; import { Box, Checkbox, + FormControlLabel, makeStyles, TextField, Typography, @@ -111,15 +112,17 @@ export const EntityLifecyclePicker = (props: { initialFilter?: string[] }) => { setSelectedLifecycles(value) } renderOption={(option, { selected }) => ( -
- - {option} -
+ + } + onClick={event => event.preventDefault()} + label={option} + /> )} size="small" popupIcon={} diff --git a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx index 3970942ee1..00d36e5e13 100644 --- a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.test.tsx @@ -123,10 +123,7 @@ describe('', () => { ); fireEvent.click(screen.getByTestId('processing-status-picker-expand')); - - fireEvent.click( - screen.getByTestId('processing-status-checkbox-label-Is Orphan'), - ); + fireEvent.click(screen.getByText('Is Orphan')); expect(updateFilters).toHaveBeenCalledWith({ orphan: undefined, }); diff --git a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx index 237e2d9544..01a6e0188d 100644 --- a/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx +++ b/plugins/catalog-react/src/components/EntityProcessingStatusPicker/EntityProcessingStatusPicker.tsx @@ -18,6 +18,7 @@ import { EntityErrorFilter, EntityOrphanFilter } from '../../filters'; import { Box, Checkbox, + FormControlLabel, makeStyles, TextField, Typography, @@ -82,14 +83,17 @@ export const EntityProcessingStatusPicker = () => { errorChange(value.includes('Has Error')); }} renderOption={(option, { selected }) => ( -
- - {option} -
+ + } + onClick={event => event.preventDefault()} + label={option} + /> )} size="small" popupIcon={ From 3e8c94b4e2472b0a8fb563487b3b54b807e2156b Mon Sep 17 00:00:00 2001 From: Frederic Kayser Date: Fri, 31 Mar 2023 19:08:17 +0200 Subject: [PATCH 071/114] added property to EntityOwnerPicker Signed-off-by: Frederic Kayser --- .../src/components/EntityOwnerPicker/EntityOwnerPicker.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-react/src/components/EntityOwnerPicker/EntityOwnerPicker.tsx b/plugins/catalog-react/src/components/EntityOwnerPicker/EntityOwnerPicker.tsx index c8a6c64dd6..185de3535a 100644 --- a/plugins/catalog-react/src/components/EntityOwnerPicker/EntityOwnerPicker.tsx +++ b/plugins/catalog-react/src/components/EntityOwnerPicker/EntityOwnerPicker.tsx @@ -121,6 +121,7 @@ export const EntityOwnerPicker = () => { checked={selected} /> } + onClick={event => event.preventDefault()} label={option} /> )} From f26829e1529449479cc7de23fd77c0cda0f0d03d Mon Sep 17 00:00:00 2001 From: Frederic Kayser Date: Fri, 31 Mar 2023 19:10:16 +0200 Subject: [PATCH 072/114] added property to EntityAutocompletePickerOption Signed-off-by: Frederic Kayser --- .../EntityAutocompletePicker/EntityAutocompletePickerOption.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerOption.tsx b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerOption.tsx index 51b57257a9..8c218a352c 100644 --- a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerOption.tsx +++ b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerOption.tsx @@ -40,6 +40,7 @@ export const EntityAutocompletePickerOption = memo((props: Props) => { } label={label} + onClick={event => event.preventDefault()} /> ); }); From b649e39e728e28066c3a5aff26ab27dd3fa8c98c Mon Sep 17 00:00:00 2001 From: Alec Jacobs Date: Fri, 31 Mar 2023 16:28:43 -0700 Subject: [PATCH 073/114] fix(processing): stitch source entities that have new relations of different type Signed-off-by: Alec Jacobs --- .../DefaultCatalogProcessingEngine.test.ts | 243 ++++++++++++++++++ .../DefaultCatalogProcessingEngine.ts | 35 ++- 2 files changed, 265 insertions(+), 13 deletions(-) diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.test.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.test.ts index a358f1d07e..3002218d89 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.test.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.test.ts @@ -452,4 +452,247 @@ describe('DefaultCatalogProcessingEngine', () => { ); await engine.stop(); }); + + it('should not stitch sources entities when relations are the same', async () => { + const engine = new DefaultCatalogProcessingEngine( + getVoidLogger(), + db, + orchestrator, + stitcher, + () => hash, + 100, + ); + + db.transaction.mockImplementation(cb => cb((() => {}) as any)); + + const entity = { + apiVersion: '1', + kind: 'k', + metadata: { name: 'me', namespace: 'ns' }, + }; + const processableEntity = { + entityRef: 'foo', + id: '1', + unprocessedEntity: entity, + resultHash: '', + state: [] as any, + nextUpdateAt: DateTime.now(), + lastDiscoveryAt: DateTime.now(), + }; + + db.listParents.mockResolvedValue({ entityRefs: [] }); + db.getProcessableEntities.mockResolvedValueOnce({ + items: [processableEntity], + }); + db.updateProcessedEntity.mockImplementationOnce(async () => ({ + previous: { + relations: [ + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other1', + target_entity_ref: 'k:ns/me', + }, + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other2', + target_entity_ref: 'k:ns/me', + }, + ], + }, + })); + + orchestrator.process.mockResolvedValueOnce({ + ok: true, + completedEntity: entity, + relations: [ + { + type: 't', + source: { kind: 'k', namespace: 'ns', name: 'other1' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + { + type: 't', + source: { kind: 'k', namespace: 'ns', name: 'other2' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + ], + errors: [], + deferredEntities: [], + state: {}, + refreshKeys: [], + }); + + await engine.start(); + await waitForExpect(() => { + expect(stitcher.stitch).toHaveBeenCalledTimes(1); + }); + expect([...stitcher.stitch.mock.calls[0][0]]).toEqual( + expect.arrayContaining(['k:ns/me']), + ); + await engine.stop(); + }); + + it('should stitch sources entities when new relation of different type added', async () => { + const engine = new DefaultCatalogProcessingEngine( + getVoidLogger(), + db, + orchestrator, + stitcher, + () => hash, + 100, + ); + + db.transaction.mockImplementation(cb => cb((() => {}) as any)); + + const entity = { + apiVersion: '1', + kind: 'k', + metadata: { name: 'me', namespace: 'ns' }, + }; + const processableEntity = { + entityRef: 'foo', + id: '1', + unprocessedEntity: entity, + resultHash: '', + state: [] as any, + nextUpdateAt: DateTime.now(), + lastDiscoveryAt: DateTime.now(), + }; + + db.listParents.mockResolvedValue({ entityRefs: [] }); + db.getProcessableEntities.mockResolvedValueOnce({ + items: [processableEntity], + }); + db.updateProcessedEntity.mockImplementationOnce(async () => ({ + previous: { + relations: [ + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other1', + target_entity_ref: 'k:ns/me', + }, + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other2', + target_entity_ref: 'k:ns/me', + }, + ], + }, + })); + + orchestrator.process.mockResolvedValueOnce({ + ok: true, + completedEntity: entity, + relations: [ + { + type: 't', + source: { kind: 'k', namespace: 'ns', name: 'other1' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + { + type: 't', + source: { kind: 'k', namespace: 'ns', name: 'other2' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + { + type: 'u', + source: { kind: 'k', namespace: 'ns', name: 'other2' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + ], + errors: [], + deferredEntities: [], + state: {}, + refreshKeys: [], + }); + + await engine.start(); + await waitForExpect(() => { + expect(stitcher.stitch).toHaveBeenCalledTimes(1); + }); + expect([...stitcher.stitch.mock.calls[0][0]]).toEqual( + expect.arrayContaining(['k:ns/me', 'k:ns/other2']), + ); + await engine.stop(); + }); + + it('should stitch sources entities when relation is removed', async () => { + const engine = new DefaultCatalogProcessingEngine( + getVoidLogger(), + db, + orchestrator, + stitcher, + () => hash, + 100, + ); + + db.transaction.mockImplementation(cb => cb((() => {}) as any)); + + const entity = { + apiVersion: '1', + kind: 'k', + metadata: { name: 'me', namespace: 'ns' }, + }; + const processableEntity = { + entityRef: 'foo', + id: '1', + unprocessedEntity: entity, + resultHash: '', + state: [] as any, + nextUpdateAt: DateTime.now(), + lastDiscoveryAt: DateTime.now(), + }; + + db.listParents.mockResolvedValue({ entityRefs: [] }); + db.getProcessableEntities.mockResolvedValueOnce({ + items: [processableEntity], + }); + db.updateProcessedEntity.mockImplementationOnce(async () => ({ + previous: { + relations: [ + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other1', + target_entity_ref: 'k:ns/me', + }, + { + originating_entity_id: '', + type: 't', + source_entity_ref: 'k:ns/other2', + target_entity_ref: 'k:ns/me', + }, + ], + }, + })); + + orchestrator.process.mockResolvedValueOnce({ + ok: true, + completedEntity: entity, + relations: [ + { + type: 't', + source: { kind: 'k', namespace: 'ns', name: 'other1' }, + target: { kind: 'k', namespace: 'ns', name: 'me' }, + }, + ], + errors: [], + deferredEntities: [], + state: {}, + refreshKeys: [], + }); + + await engine.start(); + await waitForExpect(() => { + expect(stitcher.stitch).toHaveBeenCalledTimes(1); + }); + expect([...stitcher.stitch.mock.calls[0][0]]).toEqual( + expect.arrayContaining(['k:ns/me', 'k:ns/other2']), + ); + await engine.stop(); + }); }); diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts index c8f159b195..20dd325a71 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts @@ -199,7 +199,7 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { } result.completedEntity.metadata.uid = id; - let oldRelationSources: Set; + let oldRelationSources: Map; await this.processingDatabase.transaction(async tx => { const { previous } = await this.processingDatabase.updateProcessedEntity(tx, { @@ -212,28 +212,37 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { locationKey, refreshKeys: result.refreshKeys, }); - oldRelationSources = new Set( - previous.relations.map(r => r.source_entity_ref), + oldRelationSources = new Map( + previous.relations.map(r => [ + `${r.source_entity_ref}:${r.target_entity_ref}:${r.type}`, + r.source_entity_ref, + ]), ); }); - const newRelationSources = new Set( - result.relations.map(relation => - stringifyEntityRef(relation.source), - ), + const newRelationSources = new Map( + result.relations.map(relation => { + const sourceEntityRef = stringifyEntityRef(relation.source); + return [ + `${sourceEntityRef}:${stringifyEntityRef(relation.target)}:${ + relation.type + }`, + sourceEntityRef, + ]; + }), ); const setOfThingsToStitch = new Set([ stringifyEntityRef(result.completedEntity), ]); - newRelationSources.forEach(r => { - if (!oldRelationSources.has(r)) { - setOfThingsToStitch.add(r); + newRelationSources.forEach((sourceEntityRef, uniqueKey) => { + if (!oldRelationSources.has(uniqueKey)) { + setOfThingsToStitch.add(sourceEntityRef); } }); - oldRelationSources!.forEach(r => { - if (!newRelationSources.has(r)) { - setOfThingsToStitch.add(r); + oldRelationSources!.forEach((sourceEntityRef, uniqueKey) => { + if (!newRelationSources.has(uniqueKey)) { + setOfThingsToStitch.add(sourceEntityRef); } }); From c36b89f2af324fb2433ce8bb7a89534c92a4e27b Mon Sep 17 00:00:00 2001 From: Alec Jacobs Date: Fri, 31 Mar 2023 16:37:00 -0700 Subject: [PATCH 074/114] chore: generate changeset Signed-off-by: Alec Jacobs --- .changeset/six-jobs-hear.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/six-jobs-hear.md diff --git a/.changeset/six-jobs-hear.md b/.changeset/six-jobs-hear.md new file mode 100644 index 0000000000..3e9d10f0e9 --- /dev/null +++ b/.changeset/six-jobs-hear.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Fixed bug in the `DefaultCatalogProcessingEngine` where entities that contained multiple different types of relations for the same source entity would not properly trigger stitching for that source entity. From c546627cceb0214a17cf1cc27b8c9142822a87f9 Mon Sep 17 00:00:00 2001 From: Ke Ma Date: Sat, 1 Apr 2023 10:58:43 +0200 Subject: [PATCH 075/114] fix changeset Signed-off-by: Ke Ma --- .changeset/eight-trainers-smoke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/eight-trainers-smoke.md b/.changeset/eight-trainers-smoke.md index 338df0d44e..9e4aaf3c9e 100644 --- a/.changeset/eight-trainers-smoke.md +++ b/.changeset/eight-trainers-smoke.md @@ -2,4 +2,4 @@ '@backstage/catalog-client': minor --- -Fixed bug in queryEntities of CatalogClient where the sortField is supposed to be changed to orderField. +Fixed bug in `queryEntities` of `CatalogClient` where the `sortField` is supposed to be changed to `orderField`. From 199905a9144a75844428517db069439a24932c9b Mon Sep 17 00:00:00 2001 From: Ke Ma Date: Sat, 1 Apr 2023 12:59:22 +0200 Subject: [PATCH 076/114] fix test Signed-off-by: Ke Ma --- packages/catalog-client/src/CatalogClient.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts index 53bb55b95f..f5c221569d 100644 --- a/packages/catalog-client/src/CatalogClient.test.ts +++ b/packages/catalog-client/src/CatalogClient.test.ts @@ -352,7 +352,7 @@ describe('CatalogClient', () => { ], }); expect(mockedEndpoint.mock.calls[0][0].url.search).toBe( - '?limit=100&sortField=metadata.name,asc&sortField=metadata.uid,desc&fields=a,b&fullTextFilterTerm=query', + '?limit=100&orderField=metadata.name,asc&orderField=metadata.uid,desc&fields=a,b&fullTextFilterTerm=query', ); }); From eff37f3b397014875ba4ecdd78b9d07439640f74 Mon Sep 17 00:00:00 2001 From: tgroenbaek <129692070+tgroenbaek@users.noreply.github.com> Date: Sun, 2 Apr 2023 22:29:23 +0200 Subject: [PATCH 077/114] Update ADOPTERS.md Signed-off-by: tgroenbaek <129692070+tgroenbaek@users.noreply.github.com> --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 885bd8b978..ead6471782 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -236,4 +236,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [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. | | [Comcast](https://comcast.github.io/) | [Ryan Emerle](https://github.com/remerle) | Developer portal enabling discovery of products, services, and documentation throughout the enterprise to ultimately reduce friction and improve time-to-market. | | [Syntasso](https://www.syntasso.io/) | [@syntassodev](https://github.com/syntassodev) | Backstage is used as a optional UI for the [Kratix project](https://kratix.io), a framework for building platforms. - +| [Bankdata](https://www.bankdata.dk) | [Thomas Grønbæk](https://www.linkedin.com/in/thomas-grønbæk/) | We are assessing Backstage as our internal developer portal @Bankdata. Goal is to reduce cognitive load and friction for developers and thereby improving developer experience, onboarding and productivity. Expect use of Software Catalog for discoverability and ownership, Tech Docs and Software Templates to integrate tooling and best practices. From f6059785f6e0c8dfa0b32120ac10dc28b291950f Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 3 Apr 2023 08:59:51 +0200 Subject: [PATCH 078/114] docs: update backend system guide Co-authored-by: Emma Indal Signed-off-by: Camila Belo --- docs/features/search/how-to-guides.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/features/search/how-to-guides.md b/docs/features/search/how-to-guides.md index abb29ab4eb..7de37cb624 100644 --- a/docs/features/search/how-to-guides.md +++ b/docs/features/search/how-to-guides.md @@ -376,7 +376,7 @@ There are other more specific search results layout components that also accept Recently, the Backstage maintainers [announced the new Backend System](https://backstage.io/blog/2023/02/15/backend-system-alpha). The search plugins are now migrated to support the new backend system. In this guide you will learn how to update your backend set up. -In packages/backend-next/index.ts +In "packages/backend-next/index.ts", install the search plugin [1], the search engine [2], and the search collators/decorators modules [3]: ```ts import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; @@ -386,14 +386,27 @@ import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-m import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; const backend = createBackend(); -// adding the search plugin to the backend +// [1] adding the search plugin to the backend backend.add(searchPlugin()); -// (optional) the default search engine is Lunr, if you want to extend the search backend with another search engine. +// [2] (optional) the default search engine is Lunr, if you want to extend the search backend with another search engine. backend.add(searchModuleElasticsearchEngine()); -// extending search with collator modules to start index documents, take in optional schedule parameters. +// [3] extending search with collator modules to start index documents, take in optional schedule parameters. backend.add(searchModuleCatalogCollator()); backend.add(searchModuleTechDocsCollator()); backend.add(searchModuleExploreCollator()); backend.start(); ``` + +To create your own collators/decorators modules, please use the [searchModuleCatalogCollator](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-catalog/src/alpha.ts#L49) as an example, we recommend that modules are separated by plugin packages (e.g. `search-backend-module-`). You can also find the available search engines and collator/decorator modules documentation in the Alpha API reports: + +**Search engine modules** + +- Postgres [module](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-pg/alpha-api-report.md); +- Elasticsearch [module](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-elasticsearch/alpha-api-report.md). + +**Search collator/decorator modules** + +- Catalog [module](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-catalog/alpha-api-report.md); +- Explore [module](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-explore/alpha-api-report.md); +- TechDocs [module](https://github.com/backstage/backstage/blob/d7f955f300893f50c4882ea8f5c09aa42dfaacfd/plugins/search-backend-module-techdocs/alpha-api-report.md). From 9649834db584917886e1b92353d894868f227202 Mon Sep 17 00:00:00 2001 From: Andy Ladjadj Date: Mon, 3 Apr 2023 10:23:42 +0200 Subject: [PATCH 079/114] docs(adopters): update leboncoin status Signed-off-by: Andy Ladjadj --- ADOPTERS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 885bd8b978..1e165be598 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -119,7 +119,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Marks & Spencer](https://www.marksandspencer.com/) | [Kamal Cheriyath](https://github.com/kcheriyath) | Centralised discovery, adoption and devops automation hub for Engineering & Architecture. | | [McKesson](https://www.mckesson.com/) | [Agnel Antony](https://github.com/aantony2) | Internal Developer Platform for developer gated CI/CD templates, technical documentation, cloud automation service catalog, etc. | | [World Fuel Services](https://www.wfscorp.com/) | [Anirudh Kurapathi](https://github.com/anirudhkurapati), [Alex Kwon](https://github.com/alexkwon), [Lester Hernandez](https://github.com/lhernandez-wfscorp), [Avi Boru](https://github.com/aviboru), [Vardhan Annapureddy](https://github.com/harshaaws) | Internal Developer Portal, service catalog product, API's, Software Templates, tech docs and more. | -| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. Core features (catalog,api,docs,scafolder) are good to start the adoption. status: internal beta. | +| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. | | [Contentful](https://www.contentful.com) | [James Bourne](https://github.com/jamesmbourne) | Centralized documentation of service ownership, APIs, and documentation, and new service creation with a custom scaffolder - [full case study with Roadie](https://roadie.io/case-studies/maintaining-velocity-through-hypergrowth-contentful/). | | [Back Market](https://www.backmarket.com) | [Sami Farhat](https://github.com/skfarhat) | Internal Developer Portal featuring catalog, tech-radar, ownership management, component creation (scaffolder) and centralized infrastructure management -- probably more to come. | | [Avalia Systems](https://avalia.io) | [Olivier Liechti](https://github.com/wasadigi), [Fabio Velloso](https://github.com/fabiovelloso) | Innersource, software analytics, knowledge base for 360 software assessments, collaborative applications, hub for tracking and sharing IP assets. | @@ -227,7 +227,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Booking.com](https://www.linkedin.com/company/booking.com/) | [Mesut Yilmazyildirim](https://www.linkedin.com/in/myilmazyildirim) | We are adopting Backstage as the new reliability platform inside the company. We are migrating UIs of our internal developer tools to Backstage for a better user experience. | [Swissquote Bank](https://swissquote.com/company/jobs/open-positions) | [Bruno Rocha](https://www.linkedin.com/in/bruno-rocha1/) | Integrating Backstage as the visualization layer & tactical overview of our services and teams. | [XP Inc.](https://www.linkedin.com/company/xpinc/) | [Gabriel Santos](https://www.linkedin.com/in/gabriel-santos-6bb740a/) | Developer Portal Catalog (components, APIs, resources, users, groups) and organization relations. -| [OVO Energy](https://www.ovoenergy.com/) | [Michael Wizner](https://github.com/mwz), [Dan Laird](https://github.com/dlaird-ovo), [Samantha Betts](https://github.com/sammbetts) | Developer Experience Tool with an aim to to improve processes, boost productivity, finding of information/docs and building tech engagement throughout the business. +| [OVO Energy](https://www.ovoenergy.com/) | [Michael Wizner](https://github.com/mwz), [Dan Laird](https://github.com/dlaird-ovo), [Samantha Betts](https://github.com/sammbetts) | Developer Experience Tool with an aim to to improve processes, boost productivity, finding of information/docs and building tech engagement throughout the business. | [MusicTribe](https://careers.musictribe.com/) | [Alex Ford](mailto:alex.j.ford@gmail.com), [Tiago Barbosa](https://github.com/t1agob) | We are starting to use Backstage as a developer portal to share API specifications and documentation, to quickly onboard new projects with the software templates, and to help developers discover software through the catalog. | [Cazoo](https://www.cazoo.co.uk/) | [Abz Mungul](https://www.linkedin.com/in/abzmungul/), [Scott Edwards](https://www.linkedin.com/in/scott-edwards-tech/) | We're assessing Backstage as our developer platform at Cazoo with a focus on reducing cognitive load for our engineers. We're currently aiming for 3 outcomes: creating visibility into service ownership across teams, improving the discoverability of event schemas and relationships, and improving the discoverability of technical documentation and best practices. | | [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. | From 070ca41f0f5ac7a846570877a66b763e6d7bfcf9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Apr 2023 10:28:58 +0200 Subject: [PATCH 080/114] rollbar-backend: remove camelize-ts dep Signed-off-by: Patrik Oldsberg --- plugins/rollbar-backend/package.json | 1 - .../src/api/RollbarApi.test.ts | 24 +++++++++++++++---- plugins/rollbar-backend/src/api/RollbarApi.ts | 17 ++++++++++++- yarn.lock | 8 ------- 4 files changed, 35 insertions(+), 15 deletions(-) diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index eb854f27ec..4ba138d6ca 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -36,7 +36,6 @@ "@backstage/backend-common": "workspace:^", "@backstage/config": "workspace:^", "@types/express": "^4.17.6", - "camelize-ts": "^2.3.0", "compression": "^1.7.4", "cors": "^2.8.5", "express": "^4.17.1", diff --git a/plugins/rollbar-backend/src/api/RollbarApi.test.ts b/plugins/rollbar-backend/src/api/RollbarApi.test.ts index 430fc205c9..dce53a9687 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.test.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.test.ts @@ -19,7 +19,6 @@ import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { getVoidLogger } from '@backstage/backend-common'; -import { RollbarProject } from './types'; describe('RollbarApi', () => { describe('getRequestHeaders', () => { @@ -38,9 +37,15 @@ describe('RollbarApi', () => { const mockBaseUrl = 'https://api.rollbar.com/api/1'; - const mockProjects: RollbarProject[] = [ - { id: 123, name: 'abc', accountId: 1, status: 'enabled' }, - { id: 456, name: 'xyz', accountId: 1, status: 'enabled' }, + const mockProjects = [ + { id: 123, name: 'abc', account_id: 1, status: 'enabled' }, + { + id: 456, + name: 'xyz', + account_id: 1, + status: 'enabled', + extra_nested: { nested_value: [{ value_here: 1 }] }, + }, ]; const setupHandlers = () => { @@ -55,7 +60,16 @@ describe('RollbarApi', () => { setupHandlers(); const api = new RollbarApi('my-access-token', getVoidLogger()); const projects = await api.getAllProjects(); - expect(projects).toEqual(mockProjects); + expect(projects).toEqual([ + { id: 123, name: 'abc', accountId: 1, status: 'enabled' }, + { + id: 456, + name: 'xyz', + accountId: 1, + status: 'enabled', + extraNested: { nestedValue: [{ valueHere: 1 }] }, + }, + ]); }); }); }); diff --git a/plugins/rollbar-backend/src/api/RollbarApi.ts b/plugins/rollbar-backend/src/api/RollbarApi.ts index da620fcafc..3d94b8bb66 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.ts @@ -15,7 +15,7 @@ */ import { Logger } from 'winston'; -import camelize from 'camelize-ts'; +import { camelCase } from 'lodash'; import { buildQuery } from '../util'; import { RollbarItemCount, @@ -30,6 +30,21 @@ const baseUrl = 'https://api.rollbar.com/api/1'; const buildUrl = (url: string) => `${baseUrl}${url}`; +function camelize(val: T): T { + if (typeof val === 'string') { + return camelCase(val) as T; + } + if (Array.isArray(val)) { + return val.map(camelize) as T; + } + if (val && typeof val === 'object') { + return Object.fromEntries( + Object.entries(val).map(([k, v]) => [camelize(k), camelize(v)]), + ) as T; + } + return val; +} + /** @public */ export class RollbarApi { private projectMap: ProjectMetadataMap | undefined; diff --git a/yarn.lock b/yarn.lock index 379dad5674..d4c9cfe9f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7825,7 +7825,6 @@ __metadata: "@backstage/config": "workspace:^" "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 - camelize-ts: ^2.3.0 compression: ^1.7.4 cors: ^2.8.5 express: ^4.17.1 @@ -19242,13 +19241,6 @@ __metadata: languageName: node linkType: hard -"camelize-ts@npm:^2.3.0": - version: 2.3.0 - resolution: "camelize-ts@npm:2.3.0" - checksum: 0f33c65468cc0883128bb15df96f244b21b94aa80094b358bda5a07db28b1f6e79fddb96b5af57cd754c6c8e07dc40ad2cb0d73b79b2ad584683babc57675ea6 - languageName: node - linkType: hard - "camelize@npm:^1.0.0": version: 1.0.0 resolution: "camelize@npm:1.0.0" From ff5a5cddab75780569af2a5aca88ec51e36615a2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Apr 2023 11:00:08 +0200 Subject: [PATCH 081/114] rollbar-backend: fix camelize fix Signed-off-by: Patrik Oldsberg --- plugins/rollbar-backend/src/api/RollbarApi.test.ts | 4 ++-- plugins/rollbar-backend/src/api/RollbarApi.ts | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/plugins/rollbar-backend/src/api/RollbarApi.test.ts b/plugins/rollbar-backend/src/api/RollbarApi.test.ts index dce53a9687..25bd931af6 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.test.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.test.ts @@ -44,7 +44,7 @@ describe('RollbarApi', () => { name: 'xyz', account_id: 1, status: 'enabled', - extra_nested: { nested_value: [{ value_here: 1 }] }, + extra_nested: { nested_value: [{ value_here: 'hello_world' }] }, }, ]; @@ -67,7 +67,7 @@ describe('RollbarApi', () => { name: 'xyz', accountId: 1, status: 'enabled', - extraNested: { nestedValue: [{ valueHere: 1 }] }, + extraNested: { nestedValue: [{ valueHere: 'hello_world' }] }, }, ]); }); diff --git a/plugins/rollbar-backend/src/api/RollbarApi.ts b/plugins/rollbar-backend/src/api/RollbarApi.ts index 3d94b8bb66..98dbc19119 100644 --- a/plugins/rollbar-backend/src/api/RollbarApi.ts +++ b/plugins/rollbar-backend/src/api/RollbarApi.ts @@ -31,15 +31,12 @@ const baseUrl = 'https://api.rollbar.com/api/1'; const buildUrl = (url: string) => `${baseUrl}${url}`; function camelize(val: T): T { - if (typeof val === 'string') { - return camelCase(val) as T; - } if (Array.isArray(val)) { return val.map(camelize) as T; } if (val && typeof val === 'object') { return Object.fromEntries( - Object.entries(val).map(([k, v]) => [camelize(k), camelize(v)]), + Object.entries(val).map(([k, v]) => [camelCase(k), camelize(v)]), ) as T; } return val; From 7e60bee2deaa57e93657650d1a1a2d44bc493a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 3 Apr 2023 11:05:31 +0200 Subject: [PATCH 082/114] Split out the width as the only prop-using class for the Bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/stale-paws-sparkle.md | 5 +++++ packages/core-components/src/layout/Sidebar/Bar.tsx | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .changeset/stale-paws-sparkle.md diff --git a/.changeset/stale-paws-sparkle.md b/.changeset/stale-paws-sparkle.md new file mode 100644 index 0000000000..ec4284d44f --- /dev/null +++ b/.changeset/stale-paws-sparkle.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Split the `BackstageSidebar` style `drawer` class, such that the `width` property is in a separate `drawerWidth` class instead. This makes it such that you can style the `drawer` class in your theme again. diff --git a/packages/core-components/src/layout/Sidebar/Bar.tsx b/packages/core-components/src/layout/Sidebar/Bar.tsx index 69b77dd5e1..815d6bc0d6 100644 --- a/packages/core-components/src/layout/Sidebar/Bar.tsx +++ b/packages/core-components/src/layout/Sidebar/Bar.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { BackstageTheme } from '@backstage/theme'; import Box from '@material-ui/core/Box'; import Button from '@material-ui/core/Button'; @@ -39,7 +40,7 @@ import { useSidebarPinState } from './SidebarPinStateContext'; export type SidebarClassKey = 'drawer' | 'drawerOpen'; const useStyles = makeStyles( theme => ({ - drawer: props => ({ + drawer: { display: 'flex', flexFlow: 'column nowrap', alignItems: 'flex-start', @@ -52,7 +53,6 @@ const useStyles = makeStyles( overflowX: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none', - width: props.sidebarConfig.drawerWidthClosed, transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.shortest, @@ -63,6 +63,9 @@ const useStyles = makeStyles( '&::-webkit-scrollbar': { display: 'none', }, + }, + drawerWidth: props => ({ + width: props.sidebarConfig.drawerWidthClosed, }), drawerOpen: props => ({ width: props.sidebarConfig.drawerWidthOpen, @@ -174,7 +177,7 @@ const DesktopSidebar = (props: DesktopSidebarProps) => { const isOpen = (state === State.Open && !isSmallScreen) || isPinned; /** - * Close/Open Sidebar directily without delays. Also toggles `SidebarPinState` to avoid hidden content behind Sidebar. + * Close/Open Sidebar directly without delays. Also toggles `SidebarPinState` to avoid hidden content behind Sidebar. */ const setOpen = (open: boolean) => { if (open) { @@ -199,7 +202,7 @@ const DesktopSidebar = (props: DesktopSidebarProps) => { onBlur={disableExpandOnHover ? () => {} : handleClose} > From aa17f094bf9e9fecdd2f5dd30062258c0dfa975b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 09:08:53 +0000 Subject: [PATCH 083/114] chore(deps): update dependency @types/dockerode to v3.3.16 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d4c9cfe9f4..a70bcecc97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15409,12 +15409,12 @@ __metadata: linkType: hard "@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.8": - version: 3.3.15 - resolution: "@types/dockerode@npm:3.3.15" + version: 3.3.16 + resolution: "@types/dockerode@npm:3.3.16" dependencies: "@types/docker-modem": "*" "@types/node": "*" - checksum: b8fa13f86c761175a5813eb41fbd1e46d0646f008e5c84738b51c1aa82ce4f3758502efe8c3c583463e7cb7dc77e2faadfff91f4e6274e844e68a0ebf9deeae5 + checksum: ef316e330f8a1a137962d6000cac53bb25b5ba4300e38dd5842f32a6c58bec420278d61526c68865351c48c7e843c9aa45bcbca332737630a0c251e09390bf5b languageName: node linkType: hard From 29f7a6a1f92c82c3ad4331cb50609c3a2923d5db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 09:16:34 +0000 Subject: [PATCH 084/114] fix(deps): update dependency react-virtualized-auto-sizer to v1.0.11 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d4c9cfe9f4..4a002f936c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34739,12 +34739,12 @@ __metadata: linkType: hard "react-virtualized-auto-sizer@npm:^1.0.6": - version: 1.0.7 - resolution: "react-virtualized-auto-sizer@npm:1.0.7" + version: 1.0.11 + resolution: "react-virtualized-auto-sizer@npm:1.0.11" peerDependencies: react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc - checksum: 7f2f013c422771828c6613c7890f792aa90a033ea2b41c489c67ca2c6793eefa94d25232c1050fdf69cdd626fad9e3821c5003d45fa6fc831184cd09232023c2 + checksum: 2bde1b9b44aa33d1aa6fe10fbfacb8365d0423bd24a83524cca0f152ef24278669fc7a691018e3a534b3b7d6714b3cdd1466f28c857045f5570f6642cf9081eb languageName: node linkType: hard From 31271e2b7cf7f54b4b1811a7ed3d075bfe12138b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 09:46:45 +0000 Subject: [PATCH 085/114] chore(deps): update dependency @types/node-forge to v1.3.2 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a70bcecc97..92d9f7bd17 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16030,11 +16030,11 @@ __metadata: linkType: hard "@types/node-forge@npm:^1.3.0": - version: 1.3.1 - resolution: "@types/node-forge@npm:1.3.1" + version: 1.3.2 + resolution: "@types/node-forge@npm:1.3.2" dependencies: "@types/node": "*" - checksum: 88d1f85b5e2edfbb475d34c4a47b964edab408b20cec508dc4443b36258971062c2fef760d1eeb3f544fdb5321c710a4e5e2cd8a1a5923e81c53ca1cf6f3a722 + checksum: f532326a616e946e5f6733d1461e7b8d31911bbdfbc480a6337c422053d79c1e22a0776d114a325439e26ae382a640f939d0abf156e24a3c3ca5079d04aa73f6 languageName: node linkType: hard From c85cddd899b98a50d04328338fa6918aceb1352a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Apr 2023 12:04:03 +0200 Subject: [PATCH 086/114] eslint-plugin: fix auto install yarn add flag Signed-off-by: Patrik Oldsberg --- packages/eslint-plugin/rules/no-undeclared-imports.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin/rules/no-undeclared-imports.js b/packages/eslint-plugin/rules/no-undeclared-imports.js index 06f0afed46..05a10fb9f9 100644 --- a/packages/eslint-plugin/rules/no-undeclared-imports.js +++ b/packages/eslint-plugin/rules/no-undeclared-imports.js @@ -180,7 +180,7 @@ module.exports = { // 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], { + execFileSync('yarn', ['add', ...([flag] || []), ...names], { cwd: localPkg.dir, stdio: 'inherit', }); From 9dbdcccd200eabe3a8f5237443c6850ea28779d4 Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Wed, 21 Dec 2022 14:56:19 +0100 Subject: [PATCH 087/114] feature(SearchModal): Auto close the search modal upon route change Signed-off-by: Renan Mendes Carvalho --- .../app/src/components/search/SearchModal.tsx | 2 +- .../components/SearchModal/SearchModal.tsx | 7 ++-- .../components/SearchModal/useSearchModal.tsx | 42 +++++++++++++++---- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/packages/app/src/components/search/SearchModal.tsx b/packages/app/src/components/search/SearchModal.tsx index ea5a156c55..fea80f9952 100644 --- a/packages/app/src/components/search/SearchModal.tsx +++ b/packages/app/src/components/search/SearchModal.tsx @@ -186,7 +186,7 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => { - + } /> } /> } /> diff --git a/plugins/search/src/components/SearchModal/SearchModal.tsx b/plugins/search/src/components/SearchModal/SearchModal.tsx index c32c9a5cc3..8035484333 100644 --- a/plugins/search/src/components/SearchModal/SearchModal.tsx +++ b/plugins/search/src/components/SearchModal/SearchModal.tsx @@ -92,7 +92,7 @@ const useStyles = makeStyles(theme => ({ viewResultsLink: { verticalAlign: '0.5em' }, })); -export const Modal = ({ toggleModal }: SearchModalProps) => { +export const Modal = () => { const classes = useStyles(); const navigate = useNavigate(); const { transitions } = useTheme(); @@ -107,9 +107,8 @@ export const Modal = ({ toggleModal }: SearchModalProps) => { }); const handleSearchResultClick = useCallback(() => { - toggleModal(); setTimeout(focusContent, transitions.duration.leavingScreen); - }, [toggleModal, focusContent, transitions]); + }, [focusContent, transitions]); const handleSearchBarKeyDown = useCallback( (e: KeyboardEvent) => { @@ -188,7 +187,7 @@ export const SearchModal = (props: SearchModalProps) => { {open && ( {(children && children({ toggleModal })) ?? ( - + )} )} diff --git a/plugins/search/src/components/SearchModal/useSearchModal.tsx b/plugins/search/src/components/SearchModal/useSearchModal.tsx index db01765f0e..91a2c38bfa 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.tsx @@ -14,7 +14,14 @@ * limitations under the License. */ -import React, { ReactNode, useCallback, useContext, useState } from 'react'; +import React, { + ReactNode, + useCallback, + useContext, + useState, + useEffect, +} from 'react'; +import { useLocation } from 'react-router-dom'; import { createVersionedContext, createVersionedValueMap, @@ -96,7 +103,8 @@ export const SearchModalProvider = (props: SearchModalProviderProps) => { /** * Use this hook to manage the state of {@link SearchModal} - * and change its visibility. + * and change its visibility. Monitors route changes setting the hidden state + * to avoid having to call toggleModal on every result click. * * @public * @@ -105,10 +113,6 @@ export const SearchModalProvider = (props: SearchModalProviderProps) => { * functions for changing the visibility of the modal. */ export function useSearchModal(initialState = false) { - // Check for any existing parent context. - const parentContext = useContext(SearchModalContext); - const parentContextValue = parentContext?.atVersion(1); - const [state, setState] = useState({ hidden: !initialState, open: initialState, @@ -132,8 +136,32 @@ export function useSearchModal(initialState = false) { [], ); + // Check for any existing parent context. + const parentContext = useContext(SearchModalContext); + const parentContextValue = parentContext?.atVersion(1); + const isParentContextPresent = !!parentContextValue?.state; + + // Monitor route pathname changes to automatically hide the modal. + const { pathname } = useLocation(); + const [openedPathname, setOpenedPathname] = useState(null); + const { open, hidden } = state; + const isModalOpened = !isParentContextPresent && open && !hidden; + useEffect(() => { + if (isModalOpened) { + setOpenedPathname(pathname); + } + }, [isModalOpened, pathname]); + useEffect(() => { + if (isModalOpened && openedPathname && openedPathname !== pathname) { + setState(prevState => ({ + open: prevState.open, + hidden: true, + })); + } + }, [isModalOpened, openedPathname, pathname]); + // Inherit from parent context, if set. - return parentContextValue?.state + return isParentContextPresent ? parentContextValue : { state, toggleModal, setOpen }; } From 4c916d51875ad2522470fdb7a2b669ec5ff8b7a2 Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Thu, 9 Mar 2023 16:21:59 +0100 Subject: [PATCH 088/114] feature(SearchModal): Simplify solution Co-authored-by: Harry Hogg Signed-off-by: Renan Mendes Carvalho --- .../SearchModal/useSearchModal.test.tsx | 17 ++++++++++---- .../components/SearchModal/useSearchModal.tsx | 23 ++++++------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/plugins/search/src/components/SearchModal/useSearchModal.test.tsx b/plugins/search/src/components/SearchModal/useSearchModal.test.tsx index 424dffff76..26c40d87b9 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.test.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.test.tsx @@ -16,6 +16,7 @@ import { act, renderHook } from '@testing-library/react-hooks'; import { useSearchModal } from './useSearchModal'; +import { BrowserRouter } from 'react-router-dom'; describe('useSearchModal', () => { it.each([ @@ -24,14 +25,18 @@ describe('useSearchModal', () => { ])( 'should return the correct state when initial state is %s', (initialState, result) => { - const rendered = renderHook(() => useSearchModal(initialState)); + const rendered = renderHook(() => useSearchModal(initialState), { + wrapper: BrowserRouter, + }); expect(rendered.result.current.state).toEqual(result); }, ); it('should keep open forever to true once modal is toggled', () => { - const rendered = renderHook(() => useSearchModal()); + const rendered = renderHook(() => useSearchModal(), { + wrapper: BrowserRouter, + }); act(() => rendered.result.current.toggleModal()); expect(rendered.result.current.state).toEqual({ @@ -47,7 +52,9 @@ describe('useSearchModal', () => { }); it('should keep open to false if setOpen(false) is invoked on an initially closed modal', () => { - const rendered = renderHook(() => useSearchModal()); + const rendered = renderHook(() => useSearchModal(), { + wrapper: BrowserRouter, + }); act(() => rendered.result.current.setOpen(false)); expect(rendered.result.current.state).toEqual({ open: false, @@ -56,7 +63,9 @@ describe('useSearchModal', () => { }); it('should keep open forever to true even when the modal transition from opened to closed', () => { - const rendered = renderHook(() => useSearchModal()); + const rendered = renderHook(() => useSearchModal(), { + wrapper: BrowserRouter, + }); act(() => rendered.result.current.setOpen(true)); expect(rendered.result.current.state).toEqual({ diff --git a/plugins/search/src/components/SearchModal/useSearchModal.tsx b/plugins/search/src/components/SearchModal/useSearchModal.tsx index 91a2c38bfa..5298768700 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.tsx @@ -26,6 +26,7 @@ import { createVersionedContext, createVersionedValueMap, } from '@backstage/version-bridge'; +import { useUpdateEffect } from 'react-use'; /** * The state of the search modal, as well as functions for changing the modal's @@ -143,22 +144,12 @@ export function useSearchModal(initialState = false) { // Monitor route pathname changes to automatically hide the modal. const { pathname } = useLocation(); - const [openedPathname, setOpenedPathname] = useState(null); - const { open, hidden } = state; - const isModalOpened = !isParentContextPresent && open && !hidden; - useEffect(() => { - if (isModalOpened) { - setOpenedPathname(pathname); - } - }, [isModalOpened, pathname]); - useEffect(() => { - if (isModalOpened && openedPathname && openedPathname !== pathname) { - setState(prevState => ({ - open: prevState.open, - hidden: true, - })); - } - }, [isModalOpened, openedPathname, pathname]); + useUpdateEffect(() => { + setState(prevState => ({ + open: prevState.open, + hidden: true, + })); + }, [pathname]); // Inherit from parent context, if set. return isParentContextPresent From 3b9e96c536d3640f72d1f3779bfa89c6cecfcf0e Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Thu, 9 Mar 2023 16:30:19 +0100 Subject: [PATCH 089/114] feature(SearchModal): Reverting Modal component toggleModal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Renan Mendes Carvalho --- plugins/search/src/components/SearchModal/SearchModal.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/search/src/components/SearchModal/SearchModal.tsx b/plugins/search/src/components/SearchModal/SearchModal.tsx index 8035484333..3513eec65d 100644 --- a/plugins/search/src/components/SearchModal/SearchModal.tsx +++ b/plugins/search/src/components/SearchModal/SearchModal.tsx @@ -186,9 +186,7 @@ export const SearchModal = (props: SearchModalProps) => { > {open && ( - {(children && children({ toggleModal })) ?? ( - - )} + {(children && children({ toggleModal })) ?? } )}
From 430b9f28901eef2c3152f7ad185a363980acc636 Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Fri, 10 Mar 2023 16:23:54 +0100 Subject: [PATCH 090/114] test(useSearchModal): Add new test case for location change Signed-off-by: Renan Mendes Carvalho --- .../SearchModal/useSearchModal.test.tsx | 22 +++++++++++++++++-- .../components/SearchModal/useSearchModal.tsx | 8 +------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/plugins/search/src/components/SearchModal/useSearchModal.test.tsx b/plugins/search/src/components/SearchModal/useSearchModal.test.tsx index 26c40d87b9..0de41e3589 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.test.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.test.tsx @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +import React from 'react'; import { act, renderHook } from '@testing-library/react-hooks'; import { useSearchModal } from './useSearchModal'; -import { BrowserRouter } from 'react-router-dom'; +import { BrowserRouter, Router } from 'react-router-dom'; +import { createMemoryHistory } from 'history'; describe('useSearchModal', () => { it.each([ @@ -79,4 +80,21 @@ describe('useSearchModal', () => { hidden: true, }); }); + + it('should hide when location changes', () => { + const history = createMemoryHistory({ initialEntries: ['/'] }); + + const rendered = renderHook(() => useSearchModal(true), { + wrapper: ({ children }) => ( + + {children} + + ), + }); + + expect(rendered.result.current.state.hidden).toBe(false); + act(() => history.push('/new/path')); + rendered.rerender(); + expect(rendered.result.current.state.hidden).toBe(true); + }); }); diff --git a/plugins/search/src/components/SearchModal/useSearchModal.tsx b/plugins/search/src/components/SearchModal/useSearchModal.tsx index 5298768700..0700898c0b 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.tsx @@ -14,13 +14,7 @@ * limitations under the License. */ -import React, { - ReactNode, - useCallback, - useContext, - useState, - useEffect, -} from 'react'; +import React, { ReactNode, useCallback, useContext, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { createVersionedContext, From d6b73b0380da35ce09e79ec28663a5654e048d44 Mon Sep 17 00:00:00 2001 From: Renan Mendes Carvalho Date: Fri, 10 Mar 2023 16:39:38 +0100 Subject: [PATCH 091/114] changeset(plugin-search): Search modal auto closes on location change Signed-off-by: Renan Mendes Carvalho --- .changeset/unlucky-snakes-smile.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/unlucky-snakes-smile.md diff --git a/.changeset/unlucky-snakes-smile.md b/.changeset/unlucky-snakes-smile.md new file mode 100644 index 0000000000..ec0f9bf947 --- /dev/null +++ b/.changeset/unlucky-snakes-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search': minor +--- + +Search modal auto closes on location change From 68fcb7a675a0633b8f89b4b541d2a6c5d7b48b84 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 3 Apr 2023 12:14:49 +0200 Subject: [PATCH 092/114] Update packages/eslint-plugin/rules/no-undeclared-imports.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Patrik Oldsberg --- packages/eslint-plugin/rules/no-undeclared-imports.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin/rules/no-undeclared-imports.js b/packages/eslint-plugin/rules/no-undeclared-imports.js index 05a10fb9f9..c986b52c65 100644 --- a/packages/eslint-plugin/rules/no-undeclared-imports.js +++ b/packages/eslint-plugin/rules/no-undeclared-imports.js @@ -180,7 +180,7 @@ module.exports = { // 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], { + execFileSync('yarn', ['add', ...(flag ? [flag] : []), ...names], { cwd: localPkg.dir, stdio: 'inherit', }); From 24e3daa6dcf9c7fb2fbe1c0938c753878040ffbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 3 Apr 2023 12:10:44 +0200 Subject: [PATCH 093/114] fixup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- plugins/search/package.json | 1 + .../search/src/components/SearchModal/useSearchModal.tsx | 9 +++++---- yarn.lock | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/search/package.json b/plugins/search/package.json index d4367778b7..7616a03ffd 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -67,6 +67,7 @@ "@testing-library/user-event": "^14.0.0", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", + "history": "^5.0.0", "msw": "^1.0.0" }, "files": [ diff --git a/plugins/search/src/components/SearchModal/useSearchModal.tsx b/plugins/search/src/components/SearchModal/useSearchModal.tsx index 0700898c0b..279484bd47 100644 --- a/plugins/search/src/components/SearchModal/useSearchModal.tsx +++ b/plugins/search/src/components/SearchModal/useSearchModal.tsx @@ -20,7 +20,7 @@ import { createVersionedContext, createVersionedValueMap, } from '@backstage/version-bridge'; -import { useUpdateEffect } from 'react-use'; +import useUpdateEffect from 'react-use/lib/useUpdateEffect'; /** * The state of the search modal, as well as functions for changing the modal's @@ -136,14 +136,15 @@ export function useSearchModal(initialState = false) { const parentContextValue = parentContext?.atVersion(1); const isParentContextPresent = !!parentContextValue?.state; - // Monitor route pathname changes to automatically hide the modal. - const { pathname } = useLocation(); + // Monitor route changes to automatically hide the modal. + const location = useLocation(); + const locationKey = `${location.pathname}${location.search}${location.hash}`; useUpdateEffect(() => { setState(prevState => ({ open: prevState.open, hidden: true, })); - }, [pathname]); + }, [locationKey]); // Inherit from parent context, if set. return isParentContextPresent diff --git a/yarn.lock b/yarn.lock index a70bcecc97..beb214edda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8450,6 +8450,7 @@ __metadata: "@types/node": ^16.11.26 "@types/react": ^16.13.1 || ^17.0.0 cross-fetch: ^3.1.5 + history: ^5.0.0 msw: ^1.0.0 qs: ^6.9.4 react-use: ^17.2.4 From 242a185c7bbee00795128ddb8ecbceab978d5d92 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 14:01:27 +0000 Subject: [PATCH 094/114] chore(deps): update dependency canvas to v2.11.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a70bcecc97..ac3149a893 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19268,14 +19268,14 @@ __metadata: linkType: hard "canvas@npm:^2.10.2": - version: 2.11.0 - resolution: "canvas@npm:2.11.0" + version: 2.11.2 + resolution: "canvas@npm:2.11.2" dependencies: "@mapbox/node-pre-gyp": ^1.0.0 nan: ^2.17.0 node-gyp: latest simple-get: ^3.0.3 - checksum: a69a6e0c90014a1b02e52c4c38a627d1a01ffe9539047bec84105cb3554907a947cf39b4a333be43fc1583dd142b641bb5480a4e23f59c6098618c33bf78f67f + checksum: 61e554aef80022841dc836964534082ec21435928498032562089dfb7736215f039c7d99ee546b0cf10780232d9bf310950f8b4d489dc394e0fb6f6adfc97994 languageName: node linkType: hard From 67140d9f96f7c03474569707884ce3747d6b5d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 3 Apr 2023 16:08:42 +0200 Subject: [PATCH 095/114] fixup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/fast-gorillas-approve.md | 5 +++++ packages/core-components/package.json | 2 +- .../src/components/LogViewer/RealLogViewer.tsx | 4 ++-- yarn.lock | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .changeset/fast-gorillas-approve.md diff --git a/.changeset/fast-gorillas-approve.md b/.changeset/fast-gorillas-approve.md new file mode 100644 index 0000000000..e162a2cbb0 --- /dev/null +++ b/.changeset/fast-gorillas-approve.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Upgrade `react-virtualized-auto-sizer´ to version `^1.0.11` diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 7f818e089b..76c53a7809 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -66,7 +66,7 @@ "react-syntax-highlighter": "^15.4.5", "react-text-truncate": "^0.19.0", "react-use": "^17.3.2", - "react-virtualized-auto-sizer": "^1.0.6", + "react-virtualized-auto-sizer": "^1.0.11", "react-window": "^1.8.6", "remark-gfm": "^3.0.1", "zen-observable": "^0.10.0", diff --git a/packages/core-components/src/components/LogViewer/RealLogViewer.tsx b/packages/core-components/src/components/LogViewer/RealLogViewer.tsx index 59e0bea44b..adb9eeb760 100644 --- a/packages/core-components/src/components/LogViewer/RealLogViewer.tsx +++ b/packages/core-components/src/components/LogViewer/RealLogViewer.tsx @@ -77,8 +77,8 @@ export function RealLogViewer(props: RealLogViewerProps) { Date: Mon, 3 Apr 2023 15:09:17 +0000 Subject: [PATCH 096/114] chore(deps): update dependency esbuild to v0.17.15 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 182 +++++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/yarn.lock b/yarn.lock index 40d006519f..f166f76fd3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10008,9 +10008,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/android-arm64@npm:0.17.14" +"@esbuild/android-arm64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/android-arm64@npm:0.17.15" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -10029,9 +10029,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/android-arm@npm:0.17.14" +"@esbuild/android-arm@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/android-arm@npm:0.17.15" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -10043,9 +10043,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/android-x64@npm:0.17.14" +"@esbuild/android-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/android-x64@npm:0.17.15" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -10057,9 +10057,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/darwin-arm64@npm:0.17.14" +"@esbuild/darwin-arm64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/darwin-arm64@npm:0.17.15" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -10071,9 +10071,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/darwin-x64@npm:0.17.14" +"@esbuild/darwin-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/darwin-x64@npm:0.17.15" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -10085,9 +10085,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/freebsd-arm64@npm:0.17.14" +"@esbuild/freebsd-arm64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/freebsd-arm64@npm:0.17.15" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -10099,9 +10099,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/freebsd-x64@npm:0.17.14" +"@esbuild/freebsd-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/freebsd-x64@npm:0.17.15" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -10113,9 +10113,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-arm64@npm:0.17.14" +"@esbuild/linux-arm64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-arm64@npm:0.17.15" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -10127,9 +10127,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-arm@npm:0.17.14" +"@esbuild/linux-arm@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-arm@npm:0.17.15" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -10141,9 +10141,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-ia32@npm:0.17.14" +"@esbuild/linux-ia32@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-ia32@npm:0.17.15" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -10162,9 +10162,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-loong64@npm:0.17.14" +"@esbuild/linux-loong64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-loong64@npm:0.17.15" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -10176,9 +10176,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-mips64el@npm:0.17.14" +"@esbuild/linux-mips64el@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-mips64el@npm:0.17.15" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -10190,9 +10190,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-ppc64@npm:0.17.14" +"@esbuild/linux-ppc64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-ppc64@npm:0.17.15" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -10204,9 +10204,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-riscv64@npm:0.17.14" +"@esbuild/linux-riscv64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-riscv64@npm:0.17.15" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -10218,9 +10218,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-s390x@npm:0.17.14" +"@esbuild/linux-s390x@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-s390x@npm:0.17.15" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -10232,9 +10232,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/linux-x64@npm:0.17.14" +"@esbuild/linux-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/linux-x64@npm:0.17.15" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -10246,9 +10246,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/netbsd-x64@npm:0.17.14" +"@esbuild/netbsd-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/netbsd-x64@npm:0.17.15" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -10260,9 +10260,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/openbsd-x64@npm:0.17.14" +"@esbuild/openbsd-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/openbsd-x64@npm:0.17.15" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -10274,9 +10274,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/sunos-x64@npm:0.17.14" +"@esbuild/sunos-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/sunos-x64@npm:0.17.15" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -10288,9 +10288,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/win32-arm64@npm:0.17.14" +"@esbuild/win32-arm64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/win32-arm64@npm:0.17.15" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -10302,9 +10302,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/win32-ia32@npm:0.17.14" +"@esbuild/win32-ia32@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/win32-ia32@npm:0.17.15" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -10316,9 +10316,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.14": - version: 0.17.14 - resolution: "@esbuild/win32-x64@npm:0.17.14" +"@esbuild/win32-x64@npm:0.17.15": + version: 0.17.15 + resolution: "@esbuild/win32-x64@npm:0.17.15" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -22608,31 +22608,31 @@ __metadata: linkType: hard "esbuild@npm:^0.17.0": - version: 0.17.14 - resolution: "esbuild@npm:0.17.14" + version: 0.17.15 + resolution: "esbuild@npm:0.17.15" dependencies: - "@esbuild/android-arm": 0.17.14 - "@esbuild/android-arm64": 0.17.14 - "@esbuild/android-x64": 0.17.14 - "@esbuild/darwin-arm64": 0.17.14 - "@esbuild/darwin-x64": 0.17.14 - "@esbuild/freebsd-arm64": 0.17.14 - "@esbuild/freebsd-x64": 0.17.14 - "@esbuild/linux-arm": 0.17.14 - "@esbuild/linux-arm64": 0.17.14 - "@esbuild/linux-ia32": 0.17.14 - "@esbuild/linux-loong64": 0.17.14 - "@esbuild/linux-mips64el": 0.17.14 - "@esbuild/linux-ppc64": 0.17.14 - "@esbuild/linux-riscv64": 0.17.14 - "@esbuild/linux-s390x": 0.17.14 - "@esbuild/linux-x64": 0.17.14 - "@esbuild/netbsd-x64": 0.17.14 - "@esbuild/openbsd-x64": 0.17.14 - "@esbuild/sunos-x64": 0.17.14 - "@esbuild/win32-arm64": 0.17.14 - "@esbuild/win32-ia32": 0.17.14 - "@esbuild/win32-x64": 0.17.14 + "@esbuild/android-arm": 0.17.15 + "@esbuild/android-arm64": 0.17.15 + "@esbuild/android-x64": 0.17.15 + "@esbuild/darwin-arm64": 0.17.15 + "@esbuild/darwin-x64": 0.17.15 + "@esbuild/freebsd-arm64": 0.17.15 + "@esbuild/freebsd-x64": 0.17.15 + "@esbuild/linux-arm": 0.17.15 + "@esbuild/linux-arm64": 0.17.15 + "@esbuild/linux-ia32": 0.17.15 + "@esbuild/linux-loong64": 0.17.15 + "@esbuild/linux-mips64el": 0.17.15 + "@esbuild/linux-ppc64": 0.17.15 + "@esbuild/linux-riscv64": 0.17.15 + "@esbuild/linux-s390x": 0.17.15 + "@esbuild/linux-x64": 0.17.15 + "@esbuild/netbsd-x64": 0.17.15 + "@esbuild/openbsd-x64": 0.17.15 + "@esbuild/sunos-x64": 0.17.15 + "@esbuild/win32-arm64": 0.17.15 + "@esbuild/win32-ia32": 0.17.15 + "@esbuild/win32-x64": 0.17.15 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -22680,7 +22680,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 8f4c05f5d3da04f05c48d65f60f3c6422253f406cd56a7ab7a898f0971b0366c454635a6340172874950771dc005a9928dd999b732a6d4caa504b537bfcbf2ff + checksum: 4e3640d7bc8f6edb3465c076eb519ccb7684382714a1b883e000a7a592f8e285501ec7e82cb68441dfec8f7be7f70f40b00129ceb05057f6fa87f95d2187370a languageName: node linkType: hard From 032b94ea90e5c56d12e8a887ab8aeeb7bbea6a25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 15:09:47 +0000 Subject: [PATCH 097/114] chore(deps): update dependency swr to v2.1.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 40d006519f..691dca2352 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37726,13 +37726,13 @@ __metadata: linkType: hard "swr@npm:^2.0.0": - version: 2.1.1 - resolution: "swr@npm:2.1.1" + version: 2.1.2 + resolution: "swr@npm:2.1.2" dependencies: use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 - checksum: 77a7854f87c2a3244b4047eca5d88a0f5db6cb47f783fd13b8a38f5a611940142645c943e105fbfa64aac51e642361180366107ade0454744a80d6dedbe350db + checksum: 90010a1a1ba3ecd699f64ef5e3de9a40c291e220803e811c46fabb858d908fd74039f4a2c668cf8fd21dbb3f9d9b3d8300915292ed9933d0e4bdac1193ba8fb8 languageName: node linkType: hard From f25bc5cc030d33cb3946d78ed485e45b44e54b12 Mon Sep 17 00:00:00 2001 From: Alec Jacobs Date: Mon, 3 Apr 2023 08:14:18 -0700 Subject: [PATCH 098/114] refactor(processing): remove unnecessary target entity ref in unique key Signed-off-by: Alec Jacobs --- .../src/processing/DefaultCatalogProcessingEngine.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts index 20dd325a71..8457381ccd 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts @@ -214,7 +214,7 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { }); oldRelationSources = new Map( previous.relations.map(r => [ - `${r.source_entity_ref}:${r.target_entity_ref}:${r.type}`, + `${r.source_entity_ref}:${r.type}`, r.source_entity_ref, ]), ); @@ -223,12 +223,7 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { const newRelationSources = new Map( result.relations.map(relation => { const sourceEntityRef = stringifyEntityRef(relation.source); - return [ - `${sourceEntityRef}:${stringifyEntityRef(relation.target)}:${ - relation.type - }`, - sourceEntityRef, - ]; + return [`${sourceEntityRef}:${relation.type}`, sourceEntityRef]; }), ); From ef63b7b207974bb3b7b9ea5b45a51674e621a267 Mon Sep 17 00:00:00 2001 From: Claire Casey Date: Mon, 3 Apr 2023 11:31:30 -0400 Subject: [PATCH 099/114] remove zod version from docs Signed-off-by: Claire Casey --- .../plugin-authors/03-adding-a-resource-permission-check.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md index 103e463cda..e714301ded 100644 --- a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md +++ b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md @@ -91,7 +91,7 @@ This enables decisions based on characteristics of the resource, but it's import Install the missing module: ```bash -$ yarn workspace @internal/plugin-todo-list-backend add @backstage/plugin-permission-node zod@~3.18.0 +$ yarn workspace @internal/plugin-todo-list-backend add @backstage/plugin-permission-node zod ``` Create a new `plugins/todo-list-backend/src/service/rules.ts` file and append the following code: From 84946a580c460ca01a81d25895052cce6a51d6e5 Mon Sep 17 00:00:00 2001 From: eipc16 Date: Mon, 3 Apr 2023 20:36:35 +0200 Subject: [PATCH 100/114] expose the permission plugin using the new backend system Signed-off-by: eipc16 --- .changeset/famous-beds-repair.md | 5 ++ packages/backend-next/package.json | 4 ++ .../src/ExamplePermissionPolicy.ts | 35 ++++++++++ packages/backend-next/src/index.ts | 6 ++ .../permission-backend/alpha-api-report.md | 20 ++++++ plugins/permission-backend/package.json | 16 +++++ plugins/permission-backend/src/alpha.ts | 17 +++++ plugins/permission-backend/src/plugin.ts | 66 +++++++++++++++++++ yarn.lock | 5 ++ 9 files changed, 174 insertions(+) create mode 100644 .changeset/famous-beds-repair.md create mode 100644 packages/backend-next/src/ExamplePermissionPolicy.ts create mode 100644 plugins/permission-backend/alpha-api-report.md create mode 100644 plugins/permission-backend/src/alpha.ts create mode 100644 plugins/permission-backend/src/plugin.ts diff --git a/.changeset/famous-beds-repair.md b/.changeset/famous-beds-repair.md new file mode 100644 index 0000000000..54adce96b5 --- /dev/null +++ b/.changeset/famous-beds-repair.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-backend': minor +--- + +Introduced alpha export of the `permissionPlugin` using the new backend system diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 2fccf12a85..48b4cd10a6 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -27,8 +27,12 @@ "dependencies": { "@backstage/backend-defaults": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", + "@backstage/plugin-permission-backend": "workspace:^", + "@backstage/plugin-permission-common": "workspace:^", + "@backstage/plugin-permission-node": "workspace:^", "@backstage/plugin-scaffolder-backend": "workspace:^", "@backstage/plugin-search-backend": "workspace:^", "@backstage/plugin-search-backend-module-catalog": "workspace:^", diff --git a/packages/backend-next/src/ExamplePermissionPolicy.ts b/packages/backend-next/src/ExamplePermissionPolicy.ts new file mode 100644 index 0000000000..cf7c024e01 --- /dev/null +++ b/packages/backend-next/src/ExamplePermissionPolicy.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; +import { + AuthorizeResult, + PolicyDecision, +} from '@backstage/plugin-permission-common'; +import { + PermissionPolicy, + PolicyQuery, +} from '@backstage/plugin-permission-node'; + +export class ExamplePermissionPolicy implements PermissionPolicy { + async handle( + _request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + return { + result: AuthorizeResult.ALLOW, + }; + } +} diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 1ce63a8d51..12437c8ab5 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -25,6 +25,8 @@ import { searchModuleCatalogCollator } from '@backstage/plugin-search-backend-mo import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-module-techdocs/alpha'; import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; import { kubernetesPlugin } from '@backstage/plugin-kubernetes-backend/alpha'; +import { permissionPlugin } from '@backstage/plugin-permission-backend/alpha'; +import { ExamplePermissionPolicy } from './ExamplePermissionPolicy'; const backend = createBackend(); @@ -48,4 +50,8 @@ backend.add(searchModuleExploreCollator()); // Kubernetes backend.add(kubernetesPlugin()); + +// Permissions +backend.add(permissionPlugin({ policy: new ExamplePermissionPolicy() })); + backend.start(); diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md new file mode 100644 index 0000000000..a86d8903ad --- /dev/null +++ b/plugins/permission-backend/alpha-api-report.md @@ -0,0 +1,20 @@ +## API Report File for "@backstage/plugin-permission-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'; +import { PermissionPolicy } from '@backstage/plugin-permission-node'; + +// @alpha +export const permissionPlugin: ( + options: PermissionPluginOptions, +) => BackendFeature; + +// @alpha +export type PermissionPluginOptions = { + policy: PermissionPolicy; +}; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 2fcee7ee19..0d2c0a840e 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -9,6 +9,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" }, @@ -23,6 +38,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", diff --git a/plugins/permission-backend/src/alpha.ts b/plugins/permission-backend/src/alpha.ts new file mode 100644 index 0000000000..a03fa0cee6 --- /dev/null +++ b/plugins/permission-backend/src/alpha.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 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 { permissionPlugin, type PermissionPluginOptions } from './plugin'; diff --git a/plugins/permission-backend/src/plugin.ts b/plugins/permission-backend/src/plugin.ts new file mode 100644 index 0000000000..9a6e5a13af --- /dev/null +++ b/plugins/permission-backend/src/plugin.ts @@ -0,0 +1,66 @@ +/* + * 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 { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { PermissionPolicy } from '@backstage/plugin-permission-node'; +import { createRouter } from './service'; + +/** + * Permission plugin options + * + * @alpha + */ +export type PermissionPluginOptions = { + policy: PermissionPolicy; +}; + +/** + * Permission plugin + * + * @alpha + */ +export const permissionPlugin = createBackendPlugin( + (options: PermissionPluginOptions) => ({ + pluginId: 'permission', + register(env) { + env.registerInit({ + deps: { + http: coreServices.httpRouter, + config: coreServices.config, + logger: coreServices.logger, + discovery: coreServices.discovery, + identity: coreServices.identity, + }, + async init({ http, config, logger, discovery, identity }) { + const winstonLogger = loggerToWinstonLogger(logger); + http.use( + await createRouter({ + config, + discovery, + identity, + logger: winstonLogger, + policy: options.policy, + }), + ); + }, + }); + }, + }), +); diff --git a/yarn.lock b/yarn.lock index 7b0ba7f3e5..87fc76a056 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7593,6 +7593,7 @@ __metadata: resolution: "@backstage/plugin-permission-backend@workspace:plugins/permission-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" @@ -23441,8 +23442,12 @@ __metadata: "@backstage/backend-defaults": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/plugin-app-backend": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" "@backstage/plugin-catalog-backend": "workspace:^" "@backstage/plugin-kubernetes-backend": "workspace:^" + "@backstage/plugin-permission-backend": "workspace:^" + "@backstage/plugin-permission-common": "workspace:^" + "@backstage/plugin-permission-node": "workspace:^" "@backstage/plugin-scaffolder-backend": "workspace:^" "@backstage/plugin-search-backend": "workspace:^" "@backstage/plugin-search-backend-module-catalog": "workspace:^" From dfa38ced03f729153d3389908f213155666525b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 19:35:07 +0000 Subject: [PATCH 101/114] fix(deps): update apollo graphql packages Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7b0ba7f3e5..ced693f6c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,8 +43,8 @@ __metadata: linkType: hard "@apollo/client@npm:^3.0.0": - version: 3.7.10 - resolution: "@apollo/client@npm:3.7.10" + version: 3.7.11 + resolution: "@apollo/client@npm:3.7.11" dependencies: "@graphql-typed-document-node/core": ^3.1.1 "@wry/context": ^0.7.0 @@ -52,7 +52,7 @@ __metadata: "@wry/trie": ^0.3.0 graphql-tag: ^2.12.6 hoist-non-react-statics: ^3.3.2 - optimism: ^0.16.1 + optimism: ^0.16.2 prop-types: ^15.7.2 response-iterator: ^0.2.6 symbol-observable: ^4.0.0 @@ -74,7 +74,7 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: d74a68f8042e76e3a81990c79a89aefc07c8899d354f3b469591356508001005106bba0fa953652c3ec19756d44bdec6730ac98f62fa836bd76acbcb7eff42ce + checksum: 56fa501dc27b68b01c054ffd5642fcfedb16ee4653e819fb92d1b6cae834160f1274a961f335812f4781bbbbdf3bb6f851f07a7351f95d8945740cc79fa2d58f languageName: node linkType: hard @@ -140,8 +140,8 @@ __metadata: linkType: hard "@apollo/server@npm:^4.0.0": - version: 4.5.0 - resolution: "@apollo/server@npm:4.5.0" + version: 4.6.0 + resolution: "@apollo/server@npm:4.6.0" dependencies: "@apollo/cache-control-types": ^1.0.2 "@apollo/server-gateway-interface": ^1.1.0 @@ -171,7 +171,7 @@ __metadata: whatwg-mimetype: ^3.0.0 peerDependencies: graphql: ^16.6.0 - checksum: 193b5f6913c945aafb8fc6b5b75fcfff250e5b84dc2727f6a0472b304da08a6cd90a21ae45591e6408e9413e8bee323bbf4c9586b511a4f426b562da5328e4d0 + checksum: 309d22df0caa73671d856c31f53d0eb8a5505a6dd0c1691223891e0fa2931667c7ccd680e418a678e1d2570f54596bcc514775854cbc16bfff9009c7cfe9febe languageName: node linkType: hard @@ -31885,7 +31885,7 @@ __metadata: languageName: node linkType: hard -"optimism@npm:^0.16.1": +"optimism@npm:^0.16.2": version: 0.16.2 resolution: "optimism@npm:0.16.2" dependencies: From 2c629159adfdff8eccb54ef9017a1b2ea4f68733 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 19:36:34 +0000 Subject: [PATCH 102/114] fix(deps): update dependency @google-cloud/storage to v6.9.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7b0ba7f3e5..56f05d2a96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10526,8 +10526,8 @@ __metadata: linkType: hard "@google-cloud/storage@npm:^6.0.0": - version: 6.9.4 - resolution: "@google-cloud/storage@npm:6.9.4" + version: 6.9.5 + resolution: "@google-cloud/storage@npm:6.9.5" dependencies: "@google-cloud/paginator": ^3.0.7 "@google-cloud/projectify": ^3.0.0 @@ -10546,7 +10546,7 @@ __metadata: retry-request: ^5.0.0 teeny-request: ^8.0.0 uuid: ^8.0.0 - checksum: d8ee110843e22d7141a9a93fae01590f5b15946e389544eda858d78abf3aaae2ab353548c15f219f53cac9af63ef52bd565540b638f8c7866ade5da414efc5ce + checksum: eff663cc44ee553fbd2f62b67ef422783f29210c67f55c86c13e63a40c36f3c9b78e076b2a08bb6a74a9fdc452de9240aac91e0fa11c3a4f782416a230d88b74 languageName: node linkType: hard From 000861ce81e461a06d4cbf2f230db1d3ffa6bd2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 20:11:56 +0000 Subject: [PATCH 103/114] fix(deps): update dependency @keyv/memcache to v1.3.7 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index ced693f6c3..190d9eb362 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11890,12 +11890,12 @@ __metadata: linkType: hard "@keyv/memcache@npm:^1.3.5": - version: 1.3.6 - resolution: "@keyv/memcache@npm:1.3.6" + version: 1.3.7 + resolution: "@keyv/memcache@npm:1.3.7" dependencies: json-buffer: ^3.0.1 - memjs: ^1.3.0 - checksum: 3360055b6e22d1be7a77341dc99bafb5434d3288dace94067f3307f6d9498f984dcb0d8452a5b2d97ddca8f8c973caf7cc1332e0ffada1c6dbfb0b2a2d42451a + memjs: ^1.3.1 + checksum: 61c836c1b0c264c35281a38dbc380a102b2899eab46226a0e31614d3d7c4708ecdb06d8858f711893212ae5b357a79213c7a7b7a81b6196e56dd889dd1ca498b languageName: node linkType: hard @@ -29973,10 +29973,10 @@ __metadata: languageName: node linkType: hard -"memjs@npm:^1.3.0": - version: 1.3.0 - resolution: "memjs@npm:1.3.0" - checksum: 5c7679c649ab18a7b29c8bf8795bd591df480e7ca96eec5958f56c5c3c87d919530a7b61c80ddf73f05975c929d88153d41df28e11ff680d2c6c4bb6dd668d2d +"memjs@npm:^1.3.1": + version: 1.3.1 + resolution: "memjs@npm:1.3.1" + checksum: cb70879055151f15292e95ab57765e745c84d2fedd363b453afc3e2f48bf185e3771eecf9544f95009a3a374e810e34c1e18948134e814d791c2f0f35359ddeb languageName: node linkType: hard From f90c1c45dfec720fb705b32f3579975e6b429dd0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 20:12:22 +0000 Subject: [PATCH 104/114] fix(deps): update dependency @keyv/redis to v2.5.7 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ced693f6c3..1589f33410 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11900,11 +11900,11 @@ __metadata: linkType: hard "@keyv/redis@npm:^2.5.3": - version: 2.5.6 - resolution: "@keyv/redis@npm:2.5.6" + version: 2.5.7 + resolution: "@keyv/redis@npm:2.5.7" dependencies: ioredis: ^5.3.1 - checksum: ccd19ed1f3e9b0a820b5b537d978dadd2bae19988cbb136312a38cb8cc3d3b2d88a53d20aefdd96e85ce9f341ee3ab29f371379627bd27bd587cd3926d3115a3 + checksum: e0ed1b6602afcc339bb2bf014d8801e6b7a3b6392d0f8e4ccfc59d919f59229b8787c50c48fc51636625ffdf55cf1ef6c450425a73bd88f9b866e74f1b3e25f8 languageName: node linkType: hard From 2fc848923bd3f9a716584c763d413e253ab4fb38 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 4 Apr 2023 09:43:12 +0200 Subject: [PATCH 105/114] chore: bump dependencies Signed-off-by: blam --- plugins/scaffolder-react/package.json | 8 ++--- plugins/scaffolder/package.json | 4 +-- yarn.lock | 48 +++++++++++++-------------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 5546b827f7..50a060985c 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -60,11 +60,11 @@ "@material-ui/lab": "4.0.0-alpha.61", "@react-hookz/web": "^20.0.0", "@rjsf/core": "^3.2.1", - "@rjsf/core-v5": "npm:@rjsf/core@5.3.1", + "@rjsf/core-v5": "npm:@rjsf/core@5.5.0", "@rjsf/material-ui": "^3.2.1", - "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.3.1", - "@rjsf/utils": "5.3.1", - "@rjsf/validator-ajv8": "5.3.1", + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.5.0", + "@rjsf/utils": "5.5.0", + "@rjsf/validator-ajv8": "5.5.0", "@types/json-schema": "^7.0.9", "@types/react": "^16.13.1 || ^17.0.0", "classnames": "^2.2.6", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 7c397d6761..0e0ffdafda 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -69,8 +69,8 @@ "@react-hookz/web": "^20.0.0", "@rjsf/core": "^3.2.1", "@rjsf/material-ui": "^3.2.1", - "@rjsf/utils": "5.3.1", - "@rjsf/validator-ajv8": "5.3.1", + "@rjsf/utils": "5.5.0", + "@rjsf/validator-ajv8": "5.5.0", "@types/react": "^16.13.1 || ^17.0.0", "@uiw/react-codemirror": "^4.9.3", "classnames": "^2.2.6", diff --git a/yarn.lock b/yarn.lock index 6490641711..67ac01cada 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8109,11 +8109,11 @@ __metadata: "@material-ui/lab": 4.0.0-alpha.61 "@react-hookz/web": ^20.0.0 "@rjsf/core": ^3.2.1 - "@rjsf/core-v5": "npm:@rjsf/core@5.3.1" + "@rjsf/core-v5": "npm:@rjsf/core@5.5.0" "@rjsf/material-ui": ^3.2.1 - "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.3.1" - "@rjsf/utils": 5.3.1 - "@rjsf/validator-ajv8": 5.3.1 + "@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.5.0" + "@rjsf/utils": 5.5.0 + "@rjsf/validator-ajv8": 5.5.0 "@testing-library/dom": ^8.0.0 "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 @@ -8176,8 +8176,8 @@ __metadata: "@react-hookz/web": ^20.0.0 "@rjsf/core": ^3.2.1 "@rjsf/material-ui": ^3.2.1 - "@rjsf/utils": 5.3.1 - "@rjsf/validator-ajv8": 5.3.1 + "@rjsf/utils": 5.5.0 + "@rjsf/validator-ajv8": 5.5.0 "@testing-library/dom": ^8.0.0 "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 @@ -13525,19 +13525,19 @@ __metadata: languageName: node linkType: hard -"@rjsf/core-v5@npm:@rjsf/core@5.3.1": - version: 5.3.1 - resolution: "@rjsf/core@npm:5.3.1" +"@rjsf/core-v5@npm:@rjsf/core@5.5.0": + version: 5.5.0 + resolution: "@rjsf/core@npm:5.5.0" dependencies: lodash: ^4.17.15 lodash-es: ^4.17.15 - markdown-to-jsx: ^7.1.9 + markdown-to-jsx: ^7.2.0 nanoid: ^3.3.4 prop-types: ^15.7.2 peerDependencies: "@rjsf/utils": ^5.0.0 react: ^16.14.0 || >=17 - checksum: e7f5c05a594db0549c5289f1dc570977fa37c9ca0f1fed47ec17fa49dd4b6b85ffc3844c9c11d36455a66ff17f898469b6a2dca159223de348f84bdadd28ae32 + checksum: fc8f9de851526aaa61c800a2b2d181d6d51fee69c25be62e9e2a4af9f4b047369316a3a10c1e64444af22ca5cc96e8a024e6d376c774378e1b5f914337002736 languageName: node linkType: hard @@ -13560,16 +13560,16 @@ __metadata: languageName: node linkType: hard -"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.3.1": - version: 5.3.1 - resolution: "@rjsf/material-ui@npm:5.3.1" +"@rjsf/material-ui-v5@npm:@rjsf/material-ui@5.5.0": + version: 5.5.0 + resolution: "@rjsf/material-ui@npm:5.5.0" peerDependencies: "@material-ui/core": ^4.12.3 "@material-ui/icons": ^4.11.2 "@rjsf/core": ^5.0.0 "@rjsf/utils": ^5.0.0 react: ^16.14.0 || >=17 - checksum: 169d78e3983742b38008de95ab320cdc1f52995dabf2e75d44052c09fb0b734ecb45c58fbdf51dea18bf8bd45130aec01dc0b4b75a2635e82ef5c489d1d35af1 + checksum: ef247264f040ae1aec0e7f71225d8aba6f733dc0ef70e111ac69cb83801fa02c55582d8f33b68f5df09d051fb1ddbf41ae50179b0d43292bef88661e72163d36 languageName: node linkType: hard @@ -13585,9 +13585,9 @@ __metadata: languageName: node linkType: hard -"@rjsf/utils@npm:5.3.1": - version: 5.3.1 - resolution: "@rjsf/utils@npm:5.3.1" +"@rjsf/utils@npm:5.5.0": + version: 5.5.0 + resolution: "@rjsf/utils@npm:5.5.0" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -13596,13 +13596,13 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: 400a17bf99a043557adbd4e0dc3651b9d1b47ab61a40acb8756c5b986d044a329bd26bf45263a667eb963acf51084d612c043c9409aeaac4e4c6ab66af0bb700 + checksum: cf777657867a0ac58b12194a1a024bb6d9da21781bfb18183cd3c0658308c129db69417ffd067218f0bef9c465825a53a4fa2ddfc7f977dd47f3d5a0cca55d52 languageName: node linkType: hard -"@rjsf/validator-ajv8@npm:5.3.1": - version: 5.3.1 - resolution: "@rjsf/validator-ajv8@npm:5.3.1" +"@rjsf/validator-ajv8@npm:5.5.0": + version: 5.5.0 + resolution: "@rjsf/validator-ajv8@npm:5.5.0" dependencies: ajv: ^8.12.0 ajv-formats: ^2.1.1 @@ -13610,7 +13610,7 @@ __metadata: lodash-es: ^4.17.15 peerDependencies: "@rjsf/utils": ^5.0.0 - checksum: b99e0d2df6b6431438ea81c2e31636aa5a1939d054153236851e5d8e8b06f8a1958c8c16887dd2babfd1608e18aa1ce3f1c0a778b3b3198028b92f0553e0383e + checksum: 7f2cd3f4e3f2df2d487ab0f93011cfb11fd7d2173a6cdf322a6fd7978817b37d031ca049fe02f433268d5df2afc59f21c7a06238ed45d3aac0be17898e54a85e languageName: node linkType: hard @@ -29693,7 +29693,7 @@ __metadata: languageName: node linkType: hard -"markdown-to-jsx@npm:^7.1.9": +"markdown-to-jsx@npm:^7.2.0": version: 7.2.0 resolution: "markdown-to-jsx@npm:7.2.0" peerDependencies: From 34dab7ee7f89343952a17a810a6480f172fff49e Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 4 Apr 2023 09:44:11 +0200 Subject: [PATCH 106/114] chore: added changeset Signed-off-by: blam --- .changeset/stupid-laws-play.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/stupid-laws-play.md diff --git a/.changeset/stupid-laws-play.md b/.changeset/stupid-laws-play.md new file mode 100644 index 0000000000..837fd08f40 --- /dev/null +++ b/.changeset/stupid-laws-play.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-scaffolder': patch +--- + +`scaffolder/next`: bump `rjsf` dependencies to `5.5.0` From b319cc0bef4320ed52853e9487079603efa957dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 07:58:16 +0000 Subject: [PATCH 107/114] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.5.6 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6490641711..91dc465634 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13667,8 +13667,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-pull-requests@npm:^2.2.7": - version: 2.5.5 - resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.5" + version: 2.5.6 + resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.6" dependencies: "@backstage/catalog-model": ^1.2.1 "@backstage/core-components": ^0.12.5 @@ -13691,7 +13691,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 3a17a21665c397b3bd94c277e31b9f1005387b458a14b1c4c3bd28f6ef1400289fcf24e44bb8c54e07b99b59af49fe608c587f49e27d15cf01ef4d539cc25354 + checksum: 063a6a5802ec927e75c9616bac11b87721d66e168b59be57b860ce79f23c42714ef1b43cadcc530d2b4b98335deb2d074c27a8d004dce55c8eba787c479d83f2 languageName: node linkType: hard From 6dfe695b09e29b1a4c356dd239a25d5e51167e41 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 4 Apr 2023 10:04:26 +0200 Subject: [PATCH 108/114] Update .changeset/eight-trainers-smoke.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Mark --- .changeset/eight-trainers-smoke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/eight-trainers-smoke.md b/.changeset/eight-trainers-smoke.md index 9e4aaf3c9e..4c3cd33fbb 100644 --- a/.changeset/eight-trainers-smoke.md +++ b/.changeset/eight-trainers-smoke.md @@ -1,5 +1,5 @@ --- -'@backstage/catalog-client': minor +'@backstage/catalog-client': patch --- Fixed bug in `queryEntities` of `CatalogClient` where the `sortField` is supposed to be changed to `orderField`. From a64eae0d31149056573f6f5415346c68a35d487f Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Tue, 4 Apr 2023 10:07:13 +0100 Subject: [PATCH 109/114] fix: Flip templateFilter to match Array.filter Signed-off-by: Jack Palmer --- .../next/components/TemplateGroups/TemplateGroups.test.tsx | 2 +- .../src/next/components/TemplateGroups/TemplateGroups.tsx | 2 +- .../src/components/TemplateList/TemplateList.test.tsx | 4 ++-- .../scaffolder/src/components/TemplateList/TemplateList.tsx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.test.tsx b/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.test.tsx index c03af41f99..894c6ea4d0 100644 --- a/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.test.tsx +++ b/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.test.tsx @@ -214,7 +214,7 @@ describe('TemplateGroups', () => { expect(TemplateGroup).toHaveBeenCalledWith( expect.objectContaining({ - templates: [expect.objectContaining({ template: mockEntities[1] })], + templates: [expect.objectContaining({ template: mockEntities[0] })], }), {}, ); diff --git a/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.tsx b/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.tsx index 50be7a4bdf..f0f06b3410 100644 --- a/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.tsx +++ b/plugins/scaffolder-react/src/next/components/TemplateGroups/TemplateGroups.tsx @@ -91,7 +91,7 @@ export const TemplateGroups = (props: TemplateGroupsProps) => { {groups.map(({ title, filter }, index) => { const templates = entities .filter(isTemplateEntityV1beta3) - .filter(e => (templateFilter ? !templateFilter(e) : true)) + .filter(e => (templateFilter ? templateFilter(e) : true)) .filter(filter) .map(template => { const additionalLinks = diff --git a/plugins/scaffolder/src/components/TemplateList/TemplateList.test.tsx b/plugins/scaffolder/src/components/TemplateList/TemplateList.test.tsx index 2ea417ad68..c65613d2f5 100644 --- a/plugins/scaffolder/src/components/TemplateList/TemplateList.test.tsx +++ b/plugins/scaffolder/src/components/TemplateList/TemplateList.test.tsx @@ -77,7 +77,7 @@ describe('TemplateList', () => { { mountedRoutes: { '/': rootRouteRef } }, ); - expect(() => screen.getByTestId('t1')).toThrow(); - expect(screen.getByTestId('t2')).toBeDefined(); + expect(() => screen.getByTestId('t2')).toThrow(); + expect(screen.getByTestId('t1')).toBeDefined(); }); }); diff --git a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx index 9a88050d74..c925cdf6ef 100644 --- a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx +++ b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx @@ -59,7 +59,7 @@ export const TemplateList = ({ const templateEntities = entities.filter(isTemplateEntityV1beta3); const maybeFilteredEntities = ( group ? templateEntities.filter(group.filter) : templateEntities - ).filter(e => (templateFilter ? !templateFilter(e) : true)); + ).filter(e => (templateFilter ? templateFilter(e) : true)); const titleComponent: React.ReactNode = (() => { if (group && group.title) { From 90dda42cfd22515aa83ff2f511baefb45dcc13da Mon Sep 17 00:00:00 2001 From: Jack Palmer Date: Tue, 4 Apr 2023 10:10:05 +0100 Subject: [PATCH 110/114] chore: Changeset Signed-off-by: Jack Palmer --- .changeset/modern-snakes-check.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/modern-snakes-check.md diff --git a/.changeset/modern-snakes-check.md b/.changeset/modern-snakes-check.md new file mode 100644 index 0000000000..29510ad712 --- /dev/null +++ b/.changeset/modern-snakes-check.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-scaffolder': patch +--- + +bug: Invert `templateFilter` predicate to align with `Array.filter` From 788f0f5a1524573738b6797b31ea9a3eb9edecfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 4 Apr 2023 11:45:36 +0200 Subject: [PATCH 111/114] set permission backend policies using an extension point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Johan Haals Signed-off-by: Fredrik Adelöw --- .changeset/famous-beds-break.md | 5 + .changeset/famous-beds-repair.md | 4 +- packages/backend-next/src/index.ts | 23 ++-- .../permission-backend/alpha-api-report.md | 9 +- plugins/permission-backend/src/alpha.ts | 2 +- plugins/permission-backend/src/plugin.ts | 116 +++++++++++++----- plugins/permission-node/alpha-api-report.md | 18 +++ plugins/permission-node/package.json | 16 +++ .../permission-node/src/alpha.ts | 20 +-- plugins/permission-node/src/plugin.ts | 36 ++++++ yarn.lock | 1 + 11 files changed, 179 insertions(+), 71 deletions(-) create mode 100644 .changeset/famous-beds-break.md create mode 100644 plugins/permission-node/alpha-api-report.md rename packages/backend-next/src/ExamplePermissionPolicy.ts => plugins/permission-node/src/alpha.ts (54%) create mode 100644 plugins/permission-node/src/plugin.ts diff --git a/.changeset/famous-beds-break.md b/.changeset/famous-beds-break.md new file mode 100644 index 0000000000..a3d2e929a8 --- /dev/null +++ b/.changeset/famous-beds-break.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-node': patch +--- + +Introduced alpha export of the `policyExtensionPoint` for use in the new backend system. diff --git a/.changeset/famous-beds-repair.md b/.changeset/famous-beds-repair.md index 54adce96b5..f08506b130 100644 --- a/.changeset/famous-beds-repair.md +++ b/.changeset/famous-beds-repair.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-permission-backend': minor +'@backstage/plugin-permission-backend': patch --- -Introduced alpha export of the `permissionPlugin` using the new backend system +Introduced alpha export of the `permissionPlugin` for use in the new backend system, along with a `permissionModuleAllowAllPolicy` that can be used to allow all requests. diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 12437c8ab5..fc936b1b0f 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -16,17 +16,19 @@ 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/alpha'; import { catalogPlugin } from '@backstage/plugin-catalog-backend/alpha'; -import { catalogModuleTemplateKind } from '@backstage/plugin-scaffolder-backend/alpha'; -import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; -import { searchModuleCatalogCollator } from '@backstage/plugin-search-backend-module-catalog/alpha'; -import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-module-techdocs/alpha'; -import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; import { kubernetesPlugin } from '@backstage/plugin-kubernetes-backend/alpha'; -import { permissionPlugin } from '@backstage/plugin-permission-backend/alpha'; -import { ExamplePermissionPolicy } from './ExamplePermissionPolicy'; +import { + permissionModuleAllowAllPolicy, + permissionPlugin, +} from '@backstage/plugin-permission-backend/alpha'; +import { catalogModuleTemplateKind } from '@backstage/plugin-scaffolder-backend/alpha'; +import { searchModuleCatalogCollator } from '@backstage/plugin-search-backend-module-catalog/alpha'; +import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; +import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-module-techdocs/alpha'; +import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; +import { techdocsPlugin } from '@backstage/plugin-techdocs-backend/alpha'; +import { todoPlugin } from '@backstage/plugin-todo-backend'; const backend = createBackend(); @@ -52,6 +54,7 @@ backend.add(searchModuleExploreCollator()); backend.add(kubernetesPlugin()); // Permissions -backend.add(permissionPlugin({ policy: new ExamplePermissionPolicy() })); +backend.add(permissionPlugin()); +backend.add(permissionModuleAllowAllPolicy()); backend.start(); diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md index a86d8903ad..926691930b 100644 --- a/plugins/permission-backend/alpha-api-report.md +++ b/plugins/permission-backend/alpha-api-report.md @@ -4,17 +4,12 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { PermissionPolicy } from '@backstage/plugin-permission-node'; // @alpha -export const permissionPlugin: ( - options: PermissionPluginOptions, -) => BackendFeature; +export const permissionModuleAllowAllPolicy: () => BackendFeature; // @alpha -export type PermissionPluginOptions = { - policy: PermissionPolicy; -}; +export const permissionPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/permission-backend/src/alpha.ts b/plugins/permission-backend/src/alpha.ts index a03fa0cee6..f6a2bb4f09 100644 --- a/plugins/permission-backend/src/alpha.ts +++ b/plugins/permission-backend/src/alpha.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { permissionPlugin, type PermissionPluginOptions } from './plugin'; +export { permissionPlugin, permissionModuleAllowAllPolicy } from './plugin'; diff --git a/plugins/permission-backend/src/plugin.ts b/plugins/permission-backend/src/plugin.ts index 9a6e5a13af..5c0a9a87a0 100644 --- a/plugins/permission-backend/src/plugin.ts +++ b/plugins/permission-backend/src/plugin.ts @@ -17,50 +17,102 @@ import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, + createBackendModule, createBackendPlugin, } from '@backstage/backend-plugin-api'; -import { PermissionPolicy } from '@backstage/plugin-permission-node'; +import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; +import { + AuthorizeResult, + PolicyDecision, +} from '@backstage/plugin-permission-common'; +import { + PermissionPolicy, + PolicyQuery, +} from '@backstage/plugin-permission-node'; +import { + policyExtensionPoint, + PolicyExtensionPoint, +} from '@backstage/plugin-permission-node/alpha'; import { createRouter } from './service'; +class PolicyExtensionPointImpl implements PolicyExtensionPoint { + public policy: PermissionPolicy | undefined; + + setPolicy(policy: PermissionPolicy): void { + if (this.policy) { + throw new Error('Policy already set'); + } + this.policy = policy; + } +} + /** - * Permission plugin options + * A permission policy module that allows all requests. * * @alpha */ -export type PermissionPluginOptions = { - policy: PermissionPolicy; -}; +export const permissionModuleAllowAllPolicy = createBackendModule({ + moduleId: 'allowAllPolicy', + pluginId: 'permission', + register(reg) { + class AllowAllPermissionPolicy implements PermissionPolicy { + async handle( + _request: PolicyQuery, + _user?: BackstageIdentityResponse, + ): Promise { + return { + result: AuthorizeResult.ALLOW, + }; + } + } + + reg.registerInit({ + deps: { policy: policyExtensionPoint }, + async init({ policy }) { + policy.setPolicy(new AllowAllPermissionPolicy()); + }, + }); + }, +}); /** * Permission plugin * * @alpha */ -export const permissionPlugin = createBackendPlugin( - (options: PermissionPluginOptions) => ({ - pluginId: 'permission', - register(env) { - env.registerInit({ - deps: { - http: coreServices.httpRouter, - config: coreServices.config, - logger: coreServices.logger, - discovery: coreServices.discovery, - identity: coreServices.identity, - }, - async init({ http, config, logger, discovery, identity }) { - const winstonLogger = loggerToWinstonLogger(logger); - http.use( - await createRouter({ - config, - discovery, - identity, - logger: winstonLogger, - policy: options.policy, - }), +export const permissionPlugin = createBackendPlugin(() => ({ + pluginId: 'permission', + register(env) { + const policies = new PolicyExtensionPointImpl(); + + env.registerExtensionPoint(policyExtensionPoint, policies); + + env.registerInit({ + deps: { + http: coreServices.httpRouter, + config: coreServices.config, + logger: coreServices.logger, + discovery: coreServices.discovery, + identity: coreServices.identity, + }, + async init({ http, config, logger, discovery, identity }) { + const winstonLogger = loggerToWinstonLogger(logger); + if (!policies.policy) { + throw new Error( + 'No policy module installed! Please install a policy module. If you want to allow all requests, use permissionModuleAllowAllPolicy', ); - }, - }); - }, - }), -); + } + + http.use( + await createRouter({ + config, + discovery, + identity, + logger: winstonLogger, + policy: policies.policy, + }), + ); + }, + }); + }, +})); diff --git a/plugins/permission-node/alpha-api-report.md b/plugins/permission-node/alpha-api-report.md new file mode 100644 index 0000000000..1be8e77035 --- /dev/null +++ b/plugins/permission-node/alpha-api-report.md @@ -0,0 +1,18 @@ +## API Report File for "@backstage/plugin-permission-node" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { ExtensionPoint } from '@backstage/backend-plugin-api'; +import { PermissionPolicy } from '@backstage/plugin-permission-node'; + +// @alpha +export type PolicyExtensionPoint = { + setPolicy(policy: PermissionPolicy): void; +}; + +// @alpha +export const policyExtensionPoint: ExtensionPoint; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index d8adbc08e7..308bd05ee2 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/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": "node-library" }, @@ -34,6 +49,7 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", diff --git a/packages/backend-next/src/ExamplePermissionPolicy.ts b/plugins/permission-node/src/alpha.ts similarity index 54% rename from packages/backend-next/src/ExamplePermissionPolicy.ts rename to plugins/permission-node/src/alpha.ts index cf7c024e01..1031dc4fe9 100644 --- a/packages/backend-next/src/ExamplePermissionPolicy.ts +++ b/plugins/permission-node/src/alpha.ts @@ -13,23 +13,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; -import { - AuthorizeResult, - PolicyDecision, -} from '@backstage/plugin-permission-common'; -import { - PermissionPolicy, - PolicyQuery, -} from '@backstage/plugin-permission-node'; -export class ExamplePermissionPolicy implements PermissionPolicy { - async handle( - _request: PolicyQuery, - _user?: BackstageIdentityResponse, - ): Promise { - return { - result: AuthorizeResult.ALLOW, - }; - } -} +export { type PolicyExtensionPoint, policyExtensionPoint } from './plugin'; diff --git a/plugins/permission-node/src/plugin.ts b/plugins/permission-node/src/plugin.ts new file mode 100644 index 0000000000..646223a3ee --- /dev/null +++ b/plugins/permission-node/src/plugin.ts @@ -0,0 +1,36 @@ +/* + * 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 { createExtensionPoint } from '@backstage/backend-plugin-api'; +import { PermissionPolicy } from '@backstage/plugin-permission-node'; + +/** + * Allows supplying policies to the permissions backend + * + * @alpha + */ +export type PolicyExtensionPoint = { + setPolicy(policy: PermissionPolicy): void; +}; + +/** + * Allows supplying policies to the permissions backend + * + * @alpha + */ +export const policyExtensionPoint = createExtensionPoint({ + id: 'permission.policy', +}); diff --git a/yarn.lock b/yarn.lock index 80c89a35d6..02e38e1b33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7650,6 +7650,7 @@ __metadata: resolution: "@backstage/plugin-permission-node@workspace:plugins/permission-node" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" From 22d8703a264849a996c1b8c31dd43431c86d8d61 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 4 Apr 2023 11:51:51 +0200 Subject: [PATCH 112/114] cli: resolve config paths upfront Signed-off-by: Patrik Oldsberg --- .../cli/src/commands/build/buildBackend.ts | 10 +----- packages/cli/src/commands/build/command.ts | 33 ++++++++++++------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/packages/cli/src/commands/build/buildBackend.ts b/packages/cli/src/commands/build/buildBackend.ts index f82567de3c..5d42aa18d4 100644 --- a/packages/cli/src/commands/build/buildBackend.ts +++ b/packages/cli/src/commands/build/buildBackend.ts @@ -18,7 +18,6 @@ import os from 'os'; import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; import tar, { CreateOptions } from 'tar'; -import { paths } from '../../lib/paths'; import { createDistWorkspace } from '../../lib/packager'; import { getEnvironmentParallelism } from '../../lib/parallel'; import { buildPackage, Output } from '../../lib/builder'; @@ -43,18 +42,11 @@ export async function buildBackend(options: BuildBackendOptions) { outputs: new Set([Output.cjs]), }); - const resolvedConfigPaths = configPaths?.map(p => { - let path = paths.resolveTarget(p); - if (!fs.pathExistsSync(path)) { - path = paths.resolveOwnRoot(p); - } - return path; - }); const tmpDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-bundle')); try { await createDistWorkspace([pkg.name], { targetDir: tmpDir, - configPaths: resolvedConfigPaths, + configPaths, buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], parallelism: getEnvironmentParallelism(), diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index 7330d9891f..dcbf65331d 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -20,23 +20,32 @@ import { findRoleFromCommand, getRoleInfo } from '../../lib/role'; import { paths } from '../../lib/paths'; import { buildFrontend } from './buildFrontend'; import { buildBackend } from './buildBackend'; +import { isValidUrl } from '../../lib/urls'; export async function command(opts: OptionValues): Promise { const role = await findRoleFromCommand(opts); - if (role === 'frontend') { - return buildFrontend({ - targetDir: paths.targetDir, - configPaths: opts.config as string[], - writeStats: Boolean(opts.stats), - }); - } - if (role === 'backend') { - return buildBackend({ - targetDir: paths.targetDir, - configPaths: opts.config as string[], - skipBuildDependencies: Boolean(opts.skipBuildDependencies), + if (role === 'frontend' || role === 'backend') { + const configPaths = (opts.config as string[]).map(arg => { + if (isValidUrl(arg)) { + return arg; + } + return paths.resolveTarget(arg); }); + + if (role === 'frontend') { + return buildFrontend({ + targetDir: paths.targetDir, + configPaths, + writeStats: Boolean(opts.stats), + }); + } else { + return buildBackend({ + targetDir: paths.targetDir, + configPaths, + skipBuildDependencies: Boolean(opts.skipBuildDependencies), + }); + } } const roleInfo = getRoleInfo(role); From 5786b18dca576f23710fc07ce1dbcc4ca477b0ff Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 4 Apr 2023 12:36:34 +0200 Subject: [PATCH 113/114] cli: lint fix Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/build/command.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index dcbf65331d..90b76545ce 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -39,13 +39,12 @@ export async function command(opts: OptionValues): Promise { configPaths, writeStats: Boolean(opts.stats), }); - } else { - return buildBackend({ - targetDir: paths.targetDir, - configPaths, - skipBuildDependencies: Boolean(opts.skipBuildDependencies), - }); } + return buildBackend({ + targetDir: paths.targetDir, + configPaths, + skipBuildDependencies: Boolean(opts.skipBuildDependencies), + }); } const roleInfo = getRoleInfo(role); From 9a5a1c4ba2d29d3d3e1340a8f906d7f8fd5a3961 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 4 Apr 2023 13:14:06 +0000 Subject: [PATCH 114/114] Version Packages (next) --- .changeset/pre.json | 24 + docs/releases/v1.13.0-next.2-changelog.md | 2337 +++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 11 + packages/app-defaults/package.json | 2 +- packages/app/CHANGELOG.md | 69 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 17 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 17 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 9 + packages/backend-defaults/package.json | 2 +- packages/backend-next/CHANGELOG.md | 22 + packages/backend-next/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 11 + packages/backend-plugin-api/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 10 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 12 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 51 + packages/backend/package.json | 2 +- packages/catalog-client/CHANGELOG.md | 9 + packages/catalog-client/package.json | 2 +- packages/cli/CHANGELOG.md | 14 + packages/cli/package.json | 2 +- packages/core-app-api/CHANGELOG.md | 10 + packages/core-app-api/package.json | 2 +- packages/core-components/CHANGELOG.md | 13 + packages/core-components/package.json | 2 +- packages/core-plugin-api/CHANGELOG.md | 10 + packages/core-plugin-api/package.json | 2 +- packages/create-app/CHANGELOG.md | 16 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 15 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 9 + packages/e2e-test/package.json | 2 +- packages/integration-react/CHANGELOG.md | 11 + packages/integration-react/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 19 + .../techdocs-cli-embedded-app/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 11 + packages/techdocs-cli/package.json | 2 +- packages/test-utils/CHANGELOG.md | 13 + packages/test-utils/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 14 + plugins/adr-backend/package.json | 2 +- plugins/adr/CHANGELOG.md | 15 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 8 + plugins/airbrake-backend/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 13 + plugins/airbrake/package.json | 2 +- plugins/allure/CHANGELOG.md | 11 + plugins/allure/package.json | 2 +- plugins/analytics-module-ga/CHANGELOG.md | 10 + plugins/analytics-module-ga/package.json | 2 +- plugins/apache-airflow/CHANGELOG.md | 8 + plugins/apache-airflow/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 12 + plugins/api-docs/package.json | 2 +- plugins/apollo-explorer/CHANGELOG.md | 9 + plugins/apollo-explorer/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 11 + plugins/app-backend/package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 13 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 9 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 9 + plugins/azure-devops-backend/package.json | 2 +- plugins/azure-devops/CHANGELOG.md | 13 + plugins/azure-devops/package.json | 2 +- plugins/azure-sites-backend/CHANGELOG.md | 9 + plugins/azure-sites-backend/package.json | 2 +- plugins/azure-sites/CHANGELOG.md | 12 + plugins/azure-sites/package.json | 2 +- plugins/badges-backend/CHANGELOG.md | 11 + plugins/badges-backend/package.json | 2 +- plugins/badges/CHANGELOG.md | 12 + plugins/badges/package.json | 2 +- plugins/bazaar-backend/CHANGELOG.md | 11 + plugins/bazaar-backend/package.json | 2 +- plugins/bazaar/CHANGELOG.md | 15 + plugins/bazaar/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 12 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 17 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 17 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 19 + .../package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 13 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 23 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-customized/CHANGELOG.md | 8 + plugins/catalog-customized/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 12 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 16 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 12 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 20 + plugins/catalog-react/package.json | 2 +- plugins/catalog/CHANGELOG.md | 18 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/cicd-statistics/CHANGELOG.md | 10 + plugins/cicd-statistics/package.json | 2 +- plugins/circleci/CHANGELOG.md | 12 + plugins/circleci/package.json | 2 +- plugins/cloudbuild/CHANGELOG.md | 11 + plugins/cloudbuild/package.json | 2 +- plugins/code-climate/CHANGELOG.md | 11 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 12 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 14 + plugins/code-coverage/package.json | 2 +- plugins/codescene/CHANGELOG.md | 11 + plugins/codescene/package.json | 2 +- plugins/config-schema/CHANGELOG.md | 12 + plugins/config-schema/package.json | 2 +- plugins/cost-insights/CHANGELOG.md | 14 + plugins/cost-insights/package.json | 2 +- plugins/dynatrace/CHANGELOG.md | 11 + plugins/dynatrace/package.json | 2 +- plugins/entity-feedback-backend/CHANGELOG.md | 12 + plugins/entity-feedback-backend/package.json | 2 +- plugins/entity-feedback/CHANGELOG.md | 13 + plugins/entity-feedback/package.json | 2 +- plugins/entity-validation/CHANGELOG.md | 14 + plugins/entity-validation/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../events-backend-module-azure/CHANGELOG.md | 8 + .../events-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../events-backend-module-gerrit/CHANGELOG.md | 8 + .../events-backend-module-gerrit/package.json | 2 +- .../events-backend-module-github/CHANGELOG.md | 9 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 9 + .../events-backend-module-gitlab/package.json | 2 +- .../events-backend-test-utils/CHANGELOG.md | 7 + .../events-backend-test-utils/package.json | 2 +- plugins/events-backend/CHANGELOG.md | 10 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 7 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 11 + .../example-todo-list-backend/package.json | 2 +- plugins/example-todo-list/CHANGELOG.md | 9 + plugins/example-todo-list/package.json | 2 +- plugins/explore-backend/CHANGELOG.md | 11 + plugins/explore-backend/package.json | 2 +- plugins/explore-react/CHANGELOG.md | 8 + plugins/explore-react/package.json | 2 +- plugins/explore/CHANGELOG.md | 16 + plugins/explore/package.json | 2 +- plugins/firehydrant/CHANGELOG.md | 11 + plugins/firehydrant/package.json | 2 +- plugins/fossa/CHANGELOG.md | 12 + plugins/fossa/package.json | 2 +- plugins/gcalendar/CHANGELOG.md | 10 + plugins/gcalendar/package.json | 2 +- plugins/gcp-projects/CHANGELOG.md | 9 + plugins/gcp-projects/package.json | 2 +- plugins/git-release-manager/CHANGELOG.md | 11 + plugins/git-release-manager/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 12 + plugins/github-actions/package.json | 2 +- plugins/github-deployments/CHANGELOG.md | 14 + plugins/github-deployments/package.json | 2 +- plugins/github-issues/CHANGELOG.md | 13 + plugins/github-issues/package.json | 2 +- .../github-pull-requests-board/CHANGELOG.md | 12 + .../github-pull-requests-board/package.json | 2 +- plugins/gitops-profiles/CHANGELOG.md | 10 + plugins/gitops-profiles/package.json | 2 +- plugins/gocd/CHANGELOG.md | 12 + plugins/gocd/package.json | 2 +- plugins/graphiql/CHANGELOG.md | 9 + plugins/graphiql/package.json | 2 +- plugins/graphql-backend/CHANGELOG.md | 9 + plugins/graphql-backend/package.json | 2 +- plugins/graphql-voyager/CHANGELOG.md | 9 + plugins/graphql-voyager/package.json | 2 +- plugins/home/CHANGELOG.md | 12 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 12 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 14 + plugins/jenkins-backend/package.json | 2 +- plugins/jenkins/CHANGELOG.md | 13 + plugins/jenkins/package.json | 2 +- plugins/kafka-backend/CHANGELOG.md | 11 + plugins/kafka-backend/package.json | 2 +- plugins/kafka/CHANGELOG.md | 12 + plugins/kafka/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 22 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 13 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 13 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 13 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 15 + plugins/linguist-backend/package.json | 2 +- plugins/linguist/CHANGELOG.md | 13 + plugins/linguist/package.json | 2 +- plugins/microsoft-calendar/CHANGELOG.md | 10 + plugins/microsoft-calendar/package.json | 2 +- plugins/newrelic-dashboard/CHANGELOG.md | 11 + plugins/newrelic-dashboard/package.json | 2 +- plugins/newrelic/CHANGELOG.md | 9 + plugins/newrelic/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 11 + plugins/octopus-deploy/package.json | 2 +- plugins/org-react/CHANGELOG.md | 12 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 11 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 12 + plugins/pagerduty/package.json | 2 +- plugins/periskop-backend/CHANGELOG.md | 9 + plugins/periskop-backend/package.json | 2 +- plugins/periskop/CHANGELOG.md | 12 + plugins/periskop/package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 14 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 13 + plugins/permission-node/package.json | 2 +- plugins/permission-react/CHANGELOG.md | 9 + plugins/permission-react/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 15 + plugins/playlist-backend/package.json | 2 +- plugins/playlist/CHANGELOG.md | 18 + plugins/playlist/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 9 + plugins/proxy-backend/package.json | 2 +- plugins/rollbar-backend/CHANGELOG.md | 9 + plugins/rollbar-backend/package.json | 2 +- plugins/rollbar/CHANGELOG.md | 11 + plugins/rollbar/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 23 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 11 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 19 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 27 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 11 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 13 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 16 + plugins/search-backend/package.json | 2 +- plugins/search-react/CHANGELOG.md | 12 + plugins/search-react/package.json | 2 +- plugins/search/CHANGELOG.md | 21 + plugins/search/package.json | 2 +- plugins/sentry/CHANGELOG.md | 11 + plugins/sentry/package.json | 2 +- plugins/shortcuts/CHANGELOG.md | 10 + plugins/shortcuts/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 9 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube-react/CHANGELOG.md | 8 + plugins/sonarqube-react/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 12 + plugins/sonarqube/package.json | 2 +- plugins/splunk-on-call/CHANGELOG.md | 11 + plugins/splunk-on-call/package.json | 2 +- plugins/stack-overflow-backend/CHANGELOG.md | 9 + plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/CHANGELOG.md | 13 + plugins/stack-overflow/package.json | 2 +- plugins/stackstorm/CHANGELOG.md | 10 + plugins/stackstorm/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- plugins/tech-insights-backend/CHANGELOG.md | 15 + plugins/tech-insights-backend/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 11 + plugins/tech-insights-node/package.json | 2 +- plugins/tech-insights/CHANGELOG.md | 14 + plugins/tech-insights/package.json | 2 +- plugins/tech-radar/CHANGELOG.md | 9 + plugins/tech-radar/package.json | 2 +- .../techdocs-addons-test-utils/CHANGELOG.md | 16 + .../techdocs-addons-test-utils/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 18 + plugins/techdocs-backend/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 13 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs-react/CHANGELOG.md | 11 + plugins/techdocs-react/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 18 + plugins/techdocs/package.json | 2 +- plugins/todo-backend/CHANGELOG.md | 14 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 12 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 12 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 13 + plugins/user-settings/package.json | 2 +- plugins/vault-backend/CHANGELOG.md | 10 + plugins/vault-backend/package.json | 2 +- plugins/vault/CHANGELOG.md | 12 + plugins/vault/package.json | 2 +- plugins/xcmetrics/CHANGELOG.md | 11 + plugins/xcmetrics/package.json | 2 +- yarn.lock | 13 +- 364 files changed, 4890 insertions(+), 182 deletions(-) create mode 100644 docs/releases/v1.13.0-next.2-changelog.md diff --git a/.changeset/pre.json b/.changeset/pre.json index cfe5cab8e7..bf70830cad 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -220,17 +220,29 @@ }, "changesets": [ "all-my-auth-wanna-ride-today", + "blue-walls-drop", "bright-pumpkins-bake", + "calm-otters-destroy", "chatty-coats-thank", "clean-dolls-search", + "clean-items-draw", + "clean-teachers-thank", + "clever-lizards-whisper", "create-app-1679405836", "curly-boats-trade", "curly-jobs-kneel", + "curly-steaks-mate", "curvy-rocks-guess", + "eight-trainers-smoke", "eleven-bats-tease", "eleven-coats-refuse", "fair-roses-stare", + "famous-beds-break", + "famous-beds-repair", + "fast-gorillas-approve", "fast-snakes-buy", + "flat-ways-compete", + "forty-days-tell", "forty-gorillas-help", "fresh-schools-fly", "funny-pots-hide", @@ -242,6 +254,7 @@ "heavy-colts-wash", "hungry-lies-cry", "hungry-monkeys-reply", + "itchy-ads-sit", "khaki-cars-drum", "khaki-doors-compare", "khaki-guests-turn", @@ -250,15 +263,20 @@ "long-gorillas-remain", "many-eggs-press", "mighty-lamps-cross", + "modern-snakes-check", "nasty-nails-appear", "neat-donkeys-work", + "neat-pears-argue", "new-pigs-jam", "odd-grapes-double", "old-cougars-sit", "olive-cycles-join", "olive-months-talk", "orange-rabbits-jam", + "perfect-deers-add", + "poor-cars-fold", "popular-parents-crash", + "popular-radios-visit", "pretty-carpets-cross", "rare-seals-decide", "renovate-179fa0e", @@ -268,16 +286,20 @@ "seven-gifts-fetch", "short-panthers-float", "silly-adults-accept", + "six-jobs-hear", "soft-roses-cover", "sour-buttons-collect", "sour-dragons-cheat", "stale-cobras-beg", + "stale-paws-sparkle", "strong-crews-repeat", + "stupid-laws-play", "swift-meals-live", "tall-chairs-explain", "tall-oranges-own", "ten-hounds-bathe", "ten-mayflies-beam", + "tender-parrots-fry", "thick-forks-prove", "thin-spoons-prove", "thirty-crabs-tell", @@ -285,7 +307,9 @@ "tough-cameras-beam", "twelve-parrots-camp", "twelve-vans-sell", + "unlucky-snakes-smile", "warm-buses-switch", + "weak-oranges-give", "weak-turtles-arrive", "wet-lamps-happen", "wise-garlics-camp", diff --git a/docs/releases/v1.13.0-next.2-changelog.md b/docs/releases/v1.13.0-next.2-changelog.md new file mode 100644 index 0000000000..a6c4808306 --- /dev/null +++ b/docs/releases/v1.13.0-next.2-changelog.md @@ -0,0 +1,2337 @@ +# Release v1.13.0-next.2 + +## @backstage/plugin-kubernetes-backend@0.10.0-next.2 + +### Minor Changes + +- e6c7c850129: Plugins that instantiate the `KubernetesProxy` must now provide a parameter of the type `KubernetesProxyOptions` which includes providing a `KubernetesAuthTranslator`. The `KubernetesBuilder` now builds its own `KubernetesAuthTranslatorMap` that it provides to the `KubernetesProxy`. The `DispatchingKubernetesAuthTranslator` expects a `KubernetesTranslatorMap` to be provided as a parameter. The `KubernetesBuilder` now has a method called `setAuthTranslatorMap` which allows integrators to bring their own `KubernetesAuthTranslator's` to the `KubernetesPlugin`. + +### Patch Changes + +- 76e8f08fa24: fix localKubectlProxy auth provider fetching +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-scaffolder@1.13.0-next.2 + +### Minor Changes + +- cf18c32934a: The Installed Actions page now shows details for nested objects and arrays + +### Patch Changes + +- 90dda42cfd2: bug: Invert `templateFilter` predicate to align with `Array.filter` +- 34dab7ee7f8: `scaffolder/next`: bump `rjsf` dependencies to `5.5.0` +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-scaffolder-react@1.3.0-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + +## @backstage/plugin-search@1.2.0-next.2 + +### Minor Changes + +- d6b73b0380d: Search modal auto closes on location change + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/app-defaults@1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + +## @backstage/backend-app-api@0.4.2-next.2 + +### Patch Changes + +- 5c7ce585824: Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + +## @backstage/backend-common@0.18.4-next.2 + +### Patch Changes + +- 5c7ce585824: Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-aws-node@0.1.2 + - @backstage/types@1.0.2 + +## @backstage/backend-defaults@0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + +## @backstage/backend-plugin-api@0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/backend-tasks@0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + +## @backstage/backend-test-utils@0.1.36-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + +## @backstage/catalog-client@1.4.1-next.0 + +### Patch Changes + +- c1c4e080b79: Fixed bug in `queryEntities` of `CatalogClient` where the `sortField` is supposed to be changed to `orderField`. +- Updated dependencies + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + +## @backstage/cli@0.22.6-next.2 + +### Patch Changes + +- 8075b67e64c: When building a backend package with dependencies any `--config ` options will now be forwarded to any dependent app package builds, unless the build script in the app package already contains a `--config` option. +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/eslint-plugin@0.1.3-next.0 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.0.2 + +## @backstage/core-app-api@1.7.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + +## @backstage/core-components@0.12.6-next.2 + +### Patch Changes + +- 67140d9f96f: Upgrade `react-virtualized-auto-sizer´ to version `^1.0.11\` +- 7e60bee2dea: Split the `BackstageSidebar` style `drawer` class, such that the `width` property is in a separate `drawerWidth` class instead. This makes it such that you can style the `drawer` class in your theme again. +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/version-bridge@1.0.4-next.0 + +## @backstage/core-plugin-api@1.5.1-next.1 + +### Patch Changes + +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + +## @backstage/create-app@0.4.39-next.2 + +### Patch Changes + +- 2945923b133: Upgraded the TypeScript version to 5.0 + + To apply this change in your own project, switch the TypeScript version in your root `package.json`: + + ```diff + - "typescript": "~4.6.4", + + "typescript": "~5.0.0", + ``` + +- Updated dependencies + - @backstage/cli-common@0.1.12 + +## @backstage/dev-utils@1.0.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + +## @backstage/integration-react@1.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + +## @techdocs/cli@1.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + +## @backstage/test-utils@1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + +## @backstage/plugin-adr@0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-adr-common@0.2.8-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/plugin-adr-backend@0.3.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-adr-common@0.2.8-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-airbrake@0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/dev-utils@1.0.14-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-airbrake-backend@0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + +## @backstage/plugin-allure@0.1.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-analytics-module-ga@0.1.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-apache-airflow@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + +## @backstage/plugin-api-docs@0.9.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + +## @backstage/plugin-apollo-explorer@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-app-backend@0.3.44-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/types@1.0.2 + +## @backstage/plugin-auth-backend@0.18.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + +## @backstage/plugin-auth-node@0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-azure-devops@0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-devops-backend@0.3.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-azure-sites-backend@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-badges-backend@0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-bazaar@0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.6-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + +## @backstage/plugin-bazaar-backend@0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + +## @backstage/plugin-bitrise@0.1.44-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-catalog@1.10.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/plugin-catalog-backend@1.8.1-next.2 + +### Patch Changes + +- 62a725e3a94: Use the `LocationSpec` type from the `catalog-common` package in place of the deprecated `LocationSpec` from the `catalog-node` package. +- c36b89f2af3: Fixed bug in the `DefaultCatalogProcessingEngine` where entities that contained multiple different types of relations for the same source entity would not properly trigger stitching for that source entity. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + +## @backstage/plugin-catalog-backend-module-azure@0.1.15-next.2 + +### Patch Changes + +- 62a725e3a94: Use the `LocationSpec` type from the `catalog-common` package in place of the deprecated `LocationSpec` from the `catalog-node` package. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.5-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.5-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-github@0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-catalog-backend-module-gitlab@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.3.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-catalog-graph@0.2.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-catalog-import@0.9.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + +## @backstage/plugin-catalog-node@1.3.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + +## @backstage/plugin-catalog-react@1.4.1-next.2 + +### Patch Changes + +- 81bee24c5de: Fixed bug in catalog filters where you could not click on the text to select a value. +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + +## @backstage/plugin-cicd-statistics@0.1.19-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.19-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + +## @backstage/plugin-circleci@0.3.17-next.2 + +### Patch Changes + +- d14ac997c36: Add hover over CircleCI avatar icon to show user name in builds table +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-cloudbuild@0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-code-climate@0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-code-coverage@0.2.10-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-code-coverage-backend@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + +## @backstage/plugin-codescene@0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-config-schema@0.1.40-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-cost-insights@0.12.6-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-dynatrace@3.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-entity-feedback@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1-next.0 + +## @backstage/plugin-entity-feedback-backend@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-entity-feedback-common@0.1.1-next.0 + +## @backstage/plugin-entity-validation@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + +## @backstage/plugin-events-backend@0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-aws-sqs@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-azure@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-gerrit@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-github@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-module-gitlab@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-backend-test-utils@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.5-next.2 + +## @backstage/plugin-events-node@0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + +## @backstage/plugin-explore@0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.28-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/plugin-explore-backend@0.0.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-module-explore@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-explore-react@0.0.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-explore-common@0.0.1 + +## @backstage/plugin-firehydrant@0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-fossa@0.2.49-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-gcalendar@0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-gcp-projects@0.3.36-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-git-release-manager@0.3.30-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-github-actions@0.5.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-github-deployments@0.1.48-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-github-issues@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-github-pull-requests-board@0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-gitops-profiles@0.3.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-gocd@0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-graphiql@0.2.49-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-graphql-backend@0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-graphql@0.3.20-next.1 + +## @backstage/plugin-graphql-voyager@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-home@0.4.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-ilert@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-jenkins@0.7.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-jenkins-common@0.1.15-next.0 + +## @backstage/plugin-jenkins-backend@0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-jenkins-common@0.1.15-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-kafka@0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-kafka-backend@0.2.37-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-kubernetes@0.7.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + +## @backstage/plugin-lighthouse@0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-lighthouse-common@0.1.1 + +## @backstage/plugin-lighthouse-backend@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-lighthouse-common@0.1.1 + +## @backstage/plugin-linguist@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-linguist-common@0.1.0 + +## @backstage/plugin-linguist-backend@0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-linguist-common@0.1.0 + +## @backstage/plugin-microsoft-calendar@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-newrelic@0.3.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-newrelic-dashboard@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + +## @backstage/plugin-octopus-deploy@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-org@0.6.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-org-react@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-pagerduty@0.5.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-periskop@0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-periskop-backend@0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + +## @backstage/plugin-permission-backend@0.5.19-next.2 + +### Patch Changes + +- 84946a580c4: Introduced alpha export of the `permissionPlugin` for use in the new backend system, along with a `permissionModuleAllowAllPolicy` that can be used to allow all requests. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-permission-node@0.7.7-next.2 + +### Patch Changes + +- 788f0f5a152: Introduced alpha export of the `policyExtensionPoint` for use in the new backend system. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-permission-react@0.4.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/plugin-permission-common@0.7.5-next.0 + +## @backstage/plugin-playlist@0.1.8-next.2 + +### Patch Changes + +- 1b3c0546047: Added config properties to change dynamically the group noun for all the components in the UI +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-playlist-common@0.1.6-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/plugin-playlist-backend@0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-playlist-common@0.1.6-next.0 + +## @backstage/plugin-proxy-backend@0.2.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + +## @backstage/plugin-rollbar@0.4.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-rollbar-backend@0.1.41-next.2 + +### Patch Changes + +- 66b6cfc5716: Replace `camelcase-keys` dependency with one with better compatibility. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + +## @backstage/plugin-scaffolder-backend@1.13.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.1.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-node@0.1.2-next.2 + +### Patch Changes + +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/types@1.0.2 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + +## @backstage/plugin-scaffolder-react@1.3.0-next.2 + +### Patch Changes + +- 90dda42cfd2: bug: Invert `templateFilter` predicate to align with `Array.filter` +- 34dab7ee7f8: `scaffolder/next`: bump `rjsf` dependencies to `5.5.0` +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + +## @backstage/plugin-search-backend@1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-backend-module-catalog@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-backend-module-explore@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-backend-module-pg@0.5.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-backend-module-techdocs@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + +## @backstage/plugin-search-backend-node@1.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-search-react@1.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-sentry@0.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-shortcuts@0.3.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-sonarqube@0.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-sonarqube-react@0.1.5-next.1 + +## @backstage/plugin-sonarqube-backend@0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-sonarqube-react@0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + +## @backstage/plugin-splunk-on-call@0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-stack-overflow@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-home@0.4.33-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + +## @backstage/plugin-stack-overflow-backend@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-stackstorm@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-tech-insights@0.3.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + +## @backstage/plugin-tech-insights-backend@0.5.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.28-next.2 + +### Patch Changes + +- 9cb1db6546a: When multiple fact retrievers are used for a check, allow for cases where only one returns a given fact +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-tech-insights-common@0.2.10 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + +## @backstage/plugin-tech-insights-node@0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + +## @backstage/plugin-tech-radar@0.6.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-techdocs@1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + +## @backstage/plugin-techdocs-backend@1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.12-next.2 + +### Patch Changes + +- c657d0a610e: Bump `photoswipe` dependency to `^5.3.7`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + +## @backstage/plugin-techdocs-node@1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-aws-node@0.1.2 + - @backstage/plugin-search-common@1.2.3-next.0 + +## @backstage/plugin-techdocs-react@1.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/version-bridge@1.0.4-next.0 + +## @backstage/plugin-todo@0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-todo-backend@0.1.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + +## @backstage/plugin-user-settings@0.7.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-user-settings-backend@0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + +## @backstage/plugin-vault@0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## @backstage/plugin-vault-backend@0.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + +## @backstage/plugin-xcmetrics@0.2.37-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + +## example-app@0.2.82-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-circleci@0.3.17-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.12-next.2 + - @backstage/cli@0.22.6-next.2 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-scaffolder-react@1.3.0-next.2 + - @backstage/plugin-scaffolder@1.13.0-next.2 + - @backstage/plugin-code-coverage@0.2.10-next.2 + - @backstage/plugin-cost-insights@0.12.6-next.2 + - @backstage/plugin-playlist@0.1.8-next.2 + - @backstage/plugin-search@1.2.0-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-airbrake@0.3.17-next.2 + - @backstage/plugin-apache-airflow@0.2.10-next.2 + - @backstage/plugin-api-docs@0.9.2-next.2 + - @backstage/plugin-azure-devops@0.2.8-next.2 + - @backstage/plugin-azure-sites@0.1.6-next.2 + - @backstage/plugin-badges@0.2.41-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-graph@0.2.29-next.2 + - @backstage/plugin-catalog-import@0.9.7-next.2 + - @backstage/plugin-cloudbuild@0.3.17-next.2 + - @backstage/plugin-dynatrace@3.0.1-next.2 + - @backstage/plugin-entity-feedback@0.2.0-next.2 + - @backstage/plugin-explore@0.4.2-next.2 + - @backstage/plugin-gcalendar@0.3.13-next.2 + - @backstage/plugin-gcp-projects@0.3.36-next.2 + - @backstage/plugin-github-actions@0.5.17-next.2 + - @backstage/plugin-gocd@0.1.23-next.2 + - @backstage/plugin-graphiql@0.2.49-next.2 + - @backstage/plugin-home@0.4.33-next.2 + - @backstage/plugin-jenkins@0.7.16-next.2 + - @backstage/plugin-kafka@0.3.17-next.2 + - @backstage/plugin-kubernetes@0.7.10-next.2 + - @backstage/plugin-lighthouse@0.4.2-next.2 + - @backstage/plugin-linguist@0.1.2-next.2 + - @backstage/plugin-linguist-common@0.1.0 + - @backstage/plugin-microsoft-calendar@0.1.2-next.2 + - @backstage/plugin-newrelic@0.3.35-next.2 + - @backstage/plugin-newrelic-dashboard@0.2.10-next.2 + - @backstage/plugin-org@0.6.7-next.2 + - @backstage/plugin-pagerduty@0.5.10-next.2 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-rollbar@0.4.17-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-sentry@0.5.2-next.2 + - @backstage/plugin-shortcuts@0.3.9-next.2 + - @backstage/plugin-stack-overflow@0.1.13-next.2 + - @backstage/plugin-stackstorm@0.1.1-next.2 + - @backstage/plugin-tech-insights@0.3.9-next.2 + - @backstage/plugin-tech-radar@0.6.3-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + - @backstage/plugin-todo@0.2.19-next.2 + - @backstage/plugin-user-settings@0.7.2-next.2 + - @internal/plugin-catalog-customized@0.0.9-next.2 + +## example-backend@0.2.82-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.10.0-next.2 + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-permission-backend@0.5.19-next.2 + - @backstage/plugin-rollbar-backend@0.1.41-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.28-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - example-app@0.2.82-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-adr-backend@0.3.2-next.2 + - @backstage/plugin-app-backend@0.3.44-next.2 + - @backstage/plugin-auth-backend@0.18.2-next.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-azure-devops-backend@0.3.23-next.2 + - @backstage/plugin-azure-sites-backend@0.1.6-next.2 + - @backstage/plugin-badges-backend@0.1.38-next.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-code-coverage-backend@0.2.10-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.2-next.2 + - @backstage/plugin-events-backend@0.2.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + - @backstage/plugin-explore-backend@0.0.6-next.2 + - @backstage/plugin-graphql-backend@0.1.34-next.2 + - @backstage/plugin-jenkins-backend@0.1.34-next.2 + - @backstage/plugin-kafka-backend@0.2.37-next.2 + - @backstage/plugin-lighthouse-backend@0.1.2-next.2 + - @backstage/plugin-linguist-backend@0.2.1-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-playlist-backend@0.2.7-next.2 + - @backstage/plugin-proxy-backend@0.2.38-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.12-next.2 + - @backstage/plugin-search-backend@1.3.0-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.2.0-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.5-next.2 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-tech-insights-backend@0.5.10-next.2 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + - @backstage/plugin-techdocs-backend@1.6.1-next.2 + - @backstage/plugin-todo-backend@0.1.41-next.2 + +## example-backend-next@0.0.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.10.0-next.2 + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-permission-backend@0.5.19-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/backend-defaults@0.1.9-next.2 + - @backstage/plugin-app-backend@0.3.44-next.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend@1.3.0-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.0-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.0-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.0-next.1 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.1-next.2 + - @backstage/plugin-todo-backend@0.1.41-next.2 + +## e2e-test@0.2.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.4.39-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.1.5 + +## techdocs-cli-embedded-app@0.2.81-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.6-next.2 + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + +## @internal/plugin-catalog-customized@0.0.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-catalog@1.10.0-next.2 + +## @internal/plugin-todo-list@1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + +## @internal/plugin-todo-list-backend@1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 diff --git a/package.json b/package.json index 6cf9251a6c..e6f04eac95 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.13.0-next.1", + "version": "1.13.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 4f073e1b2d..b33264451c 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + ## 1.3.0-next.1 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 7d47452b77..08b726cbbe 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.3.0-next.1", + "version": "1.3.0-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 1af398f7c7..3cc4aa0190 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,74 @@ # example-app +## 0.2.82-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-circleci@0.3.17-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.12-next.2 + - @backstage/cli@0.22.6-next.2 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-scaffolder-react@1.3.0-next.2 + - @backstage/plugin-scaffolder@1.13.0-next.2 + - @backstage/plugin-code-coverage@0.2.10-next.2 + - @backstage/plugin-cost-insights@0.12.6-next.2 + - @backstage/plugin-playlist@0.1.8-next.2 + - @backstage/plugin-search@1.2.0-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-airbrake@0.3.17-next.2 + - @backstage/plugin-apache-airflow@0.2.10-next.2 + - @backstage/plugin-api-docs@0.9.2-next.2 + - @backstage/plugin-azure-devops@0.2.8-next.2 + - @backstage/plugin-azure-sites@0.1.6-next.2 + - @backstage/plugin-badges@0.2.41-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-graph@0.2.29-next.2 + - @backstage/plugin-catalog-import@0.9.7-next.2 + - @backstage/plugin-cloudbuild@0.3.17-next.2 + - @backstage/plugin-dynatrace@3.0.1-next.2 + - @backstage/plugin-entity-feedback@0.2.0-next.2 + - @backstage/plugin-explore@0.4.2-next.2 + - @backstage/plugin-gcalendar@0.3.13-next.2 + - @backstage/plugin-gcp-projects@0.3.36-next.2 + - @backstage/plugin-github-actions@0.5.17-next.2 + - @backstage/plugin-gocd@0.1.23-next.2 + - @backstage/plugin-graphiql@0.2.49-next.2 + - @backstage/plugin-home@0.4.33-next.2 + - @backstage/plugin-jenkins@0.7.16-next.2 + - @backstage/plugin-kafka@0.3.17-next.2 + - @backstage/plugin-kubernetes@0.7.10-next.2 + - @backstage/plugin-lighthouse@0.4.2-next.2 + - @backstage/plugin-linguist@0.1.2-next.2 + - @backstage/plugin-linguist-common@0.1.0 + - @backstage/plugin-microsoft-calendar@0.1.2-next.2 + - @backstage/plugin-newrelic@0.3.35-next.2 + - @backstage/plugin-newrelic-dashboard@0.2.10-next.2 + - @backstage/plugin-org@0.6.7-next.2 + - @backstage/plugin-pagerduty@0.5.10-next.2 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-rollbar@0.4.17-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-sentry@0.5.2-next.2 + - @backstage/plugin-shortcuts@0.3.9-next.2 + - @backstage/plugin-stack-overflow@0.1.13-next.2 + - @backstage/plugin-stackstorm@0.1.1-next.2 + - @backstage/plugin-tech-insights@0.3.9-next.2 + - @backstage/plugin-tech-radar@0.6.3-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + - @backstage/plugin-todo@0.2.19-next.2 + - @backstage/plugin-user-settings@0.7.2-next.2 + - @internal/plugin-catalog-customized@0.0.9-next.2 + ## 0.2.82-next.1 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index d43dd4ac3a..155f33250a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.82-next.1", + "version": "0.2.82-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 806a6e98b5..429a9ba824 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-app-api +## 0.4.2-next.2 + +### Patch Changes + +- 5c7ce585824: Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 0.4.2-next.1 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 5006884430..708b9769d5 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.2-next.1", + "version": "0.4.2-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 6b001cb651..cd363a7d83 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-common +## 0.18.4-next.2 + +### Patch Changes + +- 5c7ce585824: Allow an additionalConfig to be provided to loadBackendConfig that fetches config values during runtime. +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-aws-node@0.1.2 + - @backstage/types@1.0.2 + ## 0.18.4-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 4b7789a04d..6d6473a721 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.4-next.1", + "version": "0.18.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 889c09ada3..2b2fa0a062 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + ## 0.1.9-next.1 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index e2d2e6f7e2..3fb8420ca6 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.9-next.1", + "version": "0.1.9-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 783b3165e5..d325959c18 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,27 @@ # example-backend-next +## 0.0.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.10.0-next.2 + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-permission-backend@0.5.19-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/backend-defaults@0.1.9-next.2 + - @backstage/plugin-app-backend@0.3.44-next.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend@1.3.0-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.0-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.0-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.0-next.1 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.1-next.2 + - @backstage/plugin-todo-backend@0.1.41-next.2 + ## 0.0.10-next.1 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 48b4cd10a6..9ad6d2f7a1 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.10-next.1", + "version": "0.0.10-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 edce2a0c07..3ded5d7fa4 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-plugin-api +## 0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.5.1-next.1 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 75573fa503..a98cdd0b0f 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.5.1-next.1", + "version": "0.5.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 0c905c51df..fa0e3fc00c 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-tasks +## 0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + ## 0.5.1-next.1 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 40c72fe895..04e4c75470 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.5.1-next.1", + "version": "0.5.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 95eb874114..a25d966eb5 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-test-utils +## 0.1.36-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.4.2-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 0.1.36-next.1 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 5d5d639c66..a9d8f33377 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.36-next.1", + "version": "0.1.36-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 4d44a4f7f1..27f99c23a0 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,56 @@ # example-backend +## 0.2.82-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.10.0-next.2 + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-permission-backend@0.5.19-next.2 + - @backstage/plugin-rollbar-backend@0.1.41-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.28-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - example-app@0.2.82-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-adr-backend@0.3.2-next.2 + - @backstage/plugin-app-backend@0.3.44-next.2 + - @backstage/plugin-auth-backend@0.18.2-next.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-azure-devops-backend@0.3.23-next.2 + - @backstage/plugin-azure-sites-backend@0.1.6-next.2 + - @backstage/plugin-badges-backend@0.1.38-next.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-code-coverage-backend@0.2.10-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.2-next.2 + - @backstage/plugin-events-backend@0.2.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + - @backstage/plugin-explore-backend@0.0.6-next.2 + - @backstage/plugin-graphql-backend@0.1.34-next.2 + - @backstage/plugin-jenkins-backend@0.1.34-next.2 + - @backstage/plugin-kafka-backend@0.2.37-next.2 + - @backstage/plugin-lighthouse-backend@0.1.2-next.2 + - @backstage/plugin-linguist-backend@0.2.1-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-playlist-backend@0.2.7-next.2 + - @backstage/plugin-proxy-backend@0.2.38-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.12-next.2 + - @backstage/plugin-search-backend@1.3.0-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.2.0-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.5-next.2 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-tech-insights-backend@0.5.10-next.2 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + - @backstage/plugin-techdocs-backend@1.6.1-next.2 + - @backstage/plugin-todo-backend@0.1.41-next.2 + ## 0.2.82-next.1 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index fd8ec82d91..2de450b348 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.82-next.1", + "version": "0.2.82-next.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index edd3811ef8..90d71ada6c 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/catalog-client +## 1.4.1-next.0 + +### Patch Changes + +- c1c4e080b79: Fixed bug in `queryEntities` of `CatalogClient` where the `sortField` is supposed to be changed to `orderField`. +- Updated dependencies + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + ## 1.4.0 ### Minor Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 07709d8c65..61af4ff046 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-client", "description": "An isomorphic client for the catalog backend", - "version": "1.4.0", + "version": "1.4.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index aeb2a3d48d..99918f2da5 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/cli +## 0.22.6-next.2 + +### Patch Changes + +- 8075b67e64c: When building a backend package with dependencies any `--config ` options will now be forwarded to any dependent app package builds, unless the build script in the app package already contains a `--config` option. +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/errors@1.1.5 + - @backstage/eslint-plugin@0.1.3-next.0 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.0.2 + ## 0.22.6-next.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 354321b934..5974116843 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.22.6-next.1", + "version": "0.22.6-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index 35eeb8147b..fbb8d2b430 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/core-app-api +## 1.7.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + ## 1.7.0-next.1 ### Patch Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index b0f3bb2808..6ec3e26ad5 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.7.0-next.1", + "version": "1.7.0-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index ceff1a0857..4f79a0264a 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/core-components +## 0.12.6-next.2 + +### Patch Changes + +- 67140d9f96f: Upgrade `react-virtualized-auto-sizer´ to version `^1.0.11` +- 7e60bee2dea: Split the `BackstageSidebar` style `drawer` class, such that the `width` property is in a separate `drawerWidth` class instead. This makes it such that you can style the `drawer` class in your theme again. +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/version-bridge@1.0.4-next.0 + ## 0.12.6-next.1 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 76c53a7809..a885afc8c7 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.6-next.1", + "version": "0.12.6-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 8c6258dc11..c3b4b660d1 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/core-plugin-api +## 1.5.1-next.1 + +### Patch Changes + +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + ## 1.5.1-next.0 ### Patch Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 5bdcf83f4b..a5d55c89c6 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.5.1-next.0", + "version": "1.5.1-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index ee40fba169..861d91dcc3 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/create-app +## 0.4.39-next.2 + +### Patch Changes + +- 2945923b133: Upgraded the TypeScript version to 5.0 + + To apply this change in your own project, switch the TypeScript version in your root `package.json`: + + ```diff + - "typescript": "~4.6.4", + + "typescript": "~5.0.0", + ``` + +- Updated dependencies + - @backstage/cli-common@0.1.12 + ## 0.4.39-next.1 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 20333dff0f..497a4365ad 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.39-next.1", + "version": "0.4.39-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 89e0b58770..b42a9d04c3 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/dev-utils +## 1.0.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + ## 1.0.14-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 528565d87e..c6a3dcba1b 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.14-next.1", + "version": "1.0.14-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 6aab69e59c..b85b553093 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.4.39-next.2 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.1.5 + ## 0.2.2-next.1 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 8d50128a49..558f9c0bf0 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.2-next.1", + "version": "0.2.2-next.2", "private": true, "backstage": { "role": "cli" diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 5ce97a4ba3..b6ada5ca49 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/integration-react +## 1.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + ## 1.1.12-next.1 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index e31202c2fc..a65f6b1917 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.12-next.1", + "version": "1.1.12-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 c35144626d..44adfb82ac 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,24 @@ # techdocs-cli-embedded-app +## 0.2.81-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.6-next.2 + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/app-defaults@1.3.0-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + ## 0.2.81-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index bfadbd8471..38fc6813e6 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.81-next.1", + "version": "0.2.81-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 38a7b04fb8..91b7c5841a 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @techdocs/cli +## 1.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.7 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + ## 1.4.1-next.1 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 86a32e1cf5..b1cfda135f 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.1-next.1", + "version": "1.4.1-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index a68765743d..7992c31644 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + ## 1.3.0-next.1 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index fcba882c19..b94986aca2 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.3.0-next.1", + "version": "1.3.0-next.2", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 1779d769f9..fe4d38223c 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-adr-backend +## 0.3.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-adr-common@0.2.8-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.3.2-next.1 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 8e7c676cc9..fc30f22440 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.2-next.1", + "version": "0.3.2-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 1e193fb1dc..7e5d25251f 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr +## 0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-adr-common@0.2.8-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 9928fde364..05414dd8fb 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.4.2-next.1", + "version": "0.4.2-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 74d2567b20..a04748cc1e 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake-backend +## 0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + ## 0.2.17-next.1 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 3c445c578c..6010fd99be 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.17-next.1", + "version": "0.2.17-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index 0869ca7fb0..23c20ab47e 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-airbrake +## 0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/dev-utils@1.0.14-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + ## 0.3.17-next.1 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 706793ad41..3045c5e365 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.17-next.1", + "version": "0.3.17-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 b0920244c7..70abb3a232 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-allure +## 0.1.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.33-next.1 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index ba28028373..015abaa7ee 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.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/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index a1728540fd..cbe66ee1db 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-ga +## 0.1.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + ## 0.1.28-next.1 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 9d76a6966f..84270bd42a 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.28-next.1", + "version": "0.1.28-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 8220cfda4a..52f8e91729 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apache-airflow +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index a0f34b5bf6..e8d548387b 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.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/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 2d988f1654..2b3efec31b 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-api-docs +## 0.9.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + ## 0.9.2-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 9e4592e680..bd4ffcf87e 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.2-next.1", + "version": "0.9.2-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 185f55f013..0bc54602cc 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-apollo-explorer +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 486e437f31..4fd555c8a2 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.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/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 4fc9b23420..7a77524198 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-backend +## 0.3.44-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/config-loader@1.1.9 + - @backstage/types@1.0.2 + ## 0.3.44-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index d8cfdac3ec..c244f8272c 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.44-next.1", + "version": "0.3.44-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 63ca11d829..5f31bc9253 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-backend +## 0.18.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 0.18.2-next.1 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 6ed1a125f7..38497f5d6a 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.2-next.1", + "version": "0.18.2-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 44ed726d5a..9dde123f84 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-node +## 0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.2.13-next.1 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index ba5e912ebc..3c5003793b 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.13-next.1", + "version": "0.2.13-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 d5339767bd..5102c3c787 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-devops-backend +## 0.3.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.23-next.1 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 8db640ba28..dadb20d3e7 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.23-next.1", + "version": "0.3.23-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 e16dcf8ae8..6f5add94fa 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-azure-devops +## 0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.2.8-next.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index c01f24f4d7..fcd8a960f8 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.8-next.1", + "version": "0.2.8-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 65536ca7e1..38fe8f8478 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-sites-backend +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index dfe0d0072e..fbfd3b2426 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md index 91518fc2d6..8fddf78af9 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-sites +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index d1ef1c04f1..050a854bab 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 7e85f16b61..ae567184a3 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-badges-backend +## 0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.1.38-next.1 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index af36d6d383..7db6655c28 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.38-next.1", + "version": "0.1.38-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 944e5d006b..d60a754399 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges +## 0.2.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.41-next.1 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index feaa9e7199..f0ce91bbf0 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.41-next.1", + "version": "0.2.41-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 69dd407f58..d2fe3dd640 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar-backend +## 0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 0.2.7-next.1 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 9312cd1e88..3c417dc7aa 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.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/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 726ab99b0d..a272608a74 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-bazaar +## 0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.6-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + ## 0.2.7-next.1 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 0d0db8b1bd..34e969ecbe 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "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/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index 69cc1ebb14..5c6dcdccec 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-bitrise +## 0.1.44-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.44-next.1 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index d491d51969..b6c37d0cb8 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.44-next.1", + "version": "0.1.44-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 7f90b3fd48..6058a58ff4 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + ## 0.1.18-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 2cc7af7864..bb8226421c 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.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/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 84fa012561..bf9c7bc1d4 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.15-next.2 + +### Patch Changes + +- 62a725e3a94: Use the `LocationSpec` type from the `catalog-common` package in place of the deprecated `LocationSpec` from the `catalog-node` package. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 292a4aa9da..a1ed6ef5aa 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.15-next.1", + "version": "0.1.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 83ad89a421..f984b900c4 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.5-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 6c68e623bb..b234b5da4f 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.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/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 585d71de97..442ce64608 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 26172a1a67..71be3ffa1a 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.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-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index ad1095e516..22c721846d 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.5-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.2.11-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 82ffe0e2b2..f00a8e0622 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.11-next.1", + "version": "0.2.11-next.2", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 64f6802299..94f73e33c6 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 1738e353f3..6dd5c9e094 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.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/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 25b20998a8..3703fd1d4f 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-backend-module-github +## 0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.2.7-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 75dfdad2df..b202086e77 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.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/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 22520d23f4..e2e09b0fa7 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.2.0-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index c690cc4c58..2294745a0e 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.2.0-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index dc093645eb..478bc1f167 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.3.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 61ad8f365d..f0a576cff4 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.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/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 3f29bba1b9..d2484c8a38 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.5.11-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index ba8fa9935d..17d061498f 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.11-next.1", + "version": "0.5.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index deadba915f..ca44edf735 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.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.5.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 5a781a7cae..28e3a82e8e 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.3-next.1", + "version": "0.5.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index e90fe8386a..484546af43 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index b2120322f5..268d26ab4d 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.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/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index df41ec8386..51352842f9 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index e62bac1646..6e4ad500f3 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", - "version": "0.1.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/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 637e2ed103..d3f7622277 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog-backend +## 1.8.1-next.2 + +### Patch Changes + +- 62a725e3a94: Use the `LocationSpec` type from the `catalog-common` package in place of the deprecated `LocationSpec` from the `catalog-node` package. +- c36b89f2af3: Fixed bug in the `DefaultCatalogProcessingEngine` where entities that contained multiple different types of relations for the same source entity would not properly trigger stitching for that source entity. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.8.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 3929491378..db9e1845fe 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.1-next.1", + "version": "1.8.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md index 3cc9dc53c6..509f90ec66 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-catalog@1.10.0-next.2 + ## 0.0.9-next.1 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 37cb2f2488..595bdcf737 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.9-next.1", + "version": "0.0.9-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 c5c5ce4966..c55bb73225 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-graph +## 0.2.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.2.29-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 1588bf1c61..49d157c0d3 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.29-next.1", + "version": "0.2.29-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 a9baac02b8..1ea63d5de6 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-import +## 0.9.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + ## 0.9.7-next.1 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index fc7599af40..9fc9198d0f 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.7-next.1", + "version": "0.9.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 7a84ad76fc..60912f8b1b 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-node +## 1.3.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + ## 1.3.5-next.1 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 46b1430d8b..eb1c151904 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.5-next.1", + "version": "1.3.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 824bb6a30b..8ab5aa53ec 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-catalog-react +## 1.4.1-next.2 + +### Patch Changes + +- 81bee24c5de: Fixed bug in catalog filters where you could not click on the text to select a value. +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + ## 1.4.1-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 39028f49bf..8aed25949f 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.1-next.1", + "version": "1.4.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 335b19a415..c3e006f817 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog +## 1.10.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 1.10.0-next.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 81cbe58f66..7e16e90c66 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.10.0-next.1", + "version": "1.10.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index f30e0a2fb2..6c70dddbc5 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.19-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index c39b8c7ef9..9b32cab9ce 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.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index 90d36fa01f..9f34b725c7 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-cicd-statistics +## 0.1.19-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 0f2503304a..ef0ad6b742 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.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 4819e06e00..10a03abeb8 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-circleci +## 0.3.17-next.2 + +### Patch Changes + +- d14ac997c36: Add hover over CircleCI avatar icon to show user name in builds table +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.3.17-next.1 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index e205aefc21..2af2455c7b 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.17-next.1", + "version": "0.3.17-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 6e4be27e90..f81013384f 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-cloudbuild +## 0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.3.17-next.1 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 8a4bdee93b..c9be4a66bc 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.17-next.1", + "version": "0.3.17-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 5ed516f6f5..74efa37203 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-code-climate +## 0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.17-next.1 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 2f834916f8..6c1bfa7d05 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.17-next.1", + "version": "0.1.17-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 32cf86e76f..0850bc86aa 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-code-coverage-backend +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 1b681e9f51..5d43e8901f 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.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/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index a8a6d7078f..cd4afbc753 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-code-coverage +## 0.2.10-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 7b535be4bc..ed4901ab10 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.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/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index eb4fde25e6..7ef63f8d1a 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-codescene +## 0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index e07247370c..896eadd58e 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "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/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 9a9aa1d7a8..e39a5a567a 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-config-schema +## 0.1.40-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + ## 0.1.40-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 7f1bbca821..5fe740310b 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.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/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 67f14ccbb2..17fccbe7cf 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-cost-insights +## 0.12.6-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.6-next.1 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 6a552e8bd7..d9f94f1516 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.6-next.1", + "version": "0.12.6-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 a83c38bcdd..bea873c257 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-dynatrace +## 3.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 3.0.1-next.1 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 799194ecb5..9a857f3948 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "3.0.1-next.1", + "version": "3.0.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback-backend/CHANGELOG.md b/plugins/entity-feedback-backend/CHANGELOG.md index 9641fed208..5c077b876c 100644 --- a/plugins/entity-feedback-backend/CHANGELOG.md +++ b/plugins/entity-feedback-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-entity-feedback-backend +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-entity-feedback-common@0.1.1-next.0 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 715df95830..80be69dfd1 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback/CHANGELOG.md b/plugins/entity-feedback/CHANGELOG.md index 029b41995f..3981d2c91a 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-entity-feedback +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-entity-feedback-common@0.1.1-next.0 + ## 0.2.0-next.1 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index c636ecb242..a73deb7537 100644 --- a/plugins/entity-feedback/package.json +++ b/plugins/entity-feedback/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-feedback", - "version": "0.2.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/entity-validation/CHANGELOG.md b/plugins/entity-validation/CHANGELOG.md index 9cd86f5cd1..9a98243489 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-entity-validation +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index 7e71945859..a0b232385d 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 18a51394bc..1ce598cbad 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 20b4ad8278..0210e7efb4 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index a5e732f786..43f7910658 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 4694a1909e..fa2236cf55 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index 2fad706971..c35aa7519c 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 2bcf5c6bd6..cac3d4bf57 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index a7e28557f1..b71339f368 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 3bdbc799dc..a70a784676 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index 3122ff7644..c048025dc9 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 4f24cb6b9d..8b0e35ccf3 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 1ebfe2c2ce..0bfec21ef9 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index aa9fc68f38..2e92c8595b 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index ffb55a083e..cd78f21d2e 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.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 0577815b23..ca66ed256f 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 1d1c89d719..050bdd23ed 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend +## 0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-events-node@0.2.5-next.2 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index 4598e8fb20..2a32c7af52 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.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/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index 9978a84a0b..10ecc60b56 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 616176a46f..8cb4089ecc 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.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/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index a1bb518822..49db6f68dc 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @internal/plugin-todo-list-backend +## 1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 1.0.12-next.1 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 69e757eed0..bd8c08ca9e 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.12-next.1", + "version": "1.0.12-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 96b4f4f5a5..3fbed55471 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list +## 1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 1.0.12-next.1 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 1ee4c55707..c0ccb45f5a 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.12-next.1", + "version": "1.0.12-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 bf0de480b3..da59730432 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-explore-backend +## 0.0.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-module-explore@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.0.6-next.1 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index e425c1d46f..9f28f024cd 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.6-next.1", + "version": "0.0.6-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 0880725375..8ffc709466 100644 --- a/plugins/explore-react/CHANGELOG.md +++ b/plugins/explore-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore-react +## 0.0.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-explore-common@0.0.1 + ## 0.0.28-next.0 ### Patch Changes diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 96f7b8d0c5..0808950a00 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.28-next.0", + "version": "0.0.28-next.1", "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 860a42752d..d58e16f49b 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-explore +## 0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.28-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index ecc2e6a26a..3b642e1098 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.2-next.1", + "version": "0.4.2-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 3ef1962aa5..1722a03fd1 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-firehydrant +## 0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 8f101e1714..6974111940 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.2.1-next.1", + "version": "0.2.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index bef45dc38d..36fad5fbc4 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-fossa +## 0.2.49-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.49-next.1 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 2a73c2b5fe..3219c4529f 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.49-next.1", + "version": "0.2.49-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 a5f62ebb36..d485153d78 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gcalendar +## 0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.3.13-next.1 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 05068811f4..e8b4d88d98 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.13-next.1", + "version": "0.3.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index da05668e49..1b5f508807 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gcp-projects +## 0.3.36-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.3.36-next.1 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 664223f889..e280507184 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.36-next.1", + "version": "0.3.36-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 f40a99c48b..92f33e1d01 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-git-release-manager +## 0.3.30-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + ## 0.3.30-next.1 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 7f3da60f83..ea49ff9d3d 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.30-next.1", + "version": "0.3.30-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 69bf5c3bf8..d689403ea7 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-actions +## 0.5.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + ## 0.5.17-next.1 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 5b5138ff8f..9d7f52e44f 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.17-next.1", + "version": "0.5.17-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 52a77bb304..3563977d19 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-github-deployments +## 0.1.48-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + ## 0.1.48-next.1 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index fc1f7ef0e1..5fb7e85db8 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.48-next.1", + "version": "0.1.48-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index 393b8c25ab..76f6e33fc9 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-issues +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + ## 0.2.6-next.1 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index fba982ee8a..f3a7eb3306 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.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/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 2b663022e7..c79991926d 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/theme@0.2.19-next.0 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 33a64284dd..3dbf7c60fb 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.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/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index 2073bfce85..1efec0e36d 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gitops-profiles +## 0.3.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + ## 0.3.35-next.1 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index b2ae200d75..749f963215 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.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/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index ddff5b627b..87559fc8b4 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-gocd +## 0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 006d364697..b543111f2c 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.23-next.1", + "version": "0.1.23-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 e487e394d5..2edf5d59b2 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphiql +## 0.2.49-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.2.49-next.1 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index c90afdb3ca..b0c010ff9e 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.49-next.1", + "version": "0.2.49-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 9d0491b79a..8d54ca767e 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-graphql@0.3.20-next.1 + ## 0.1.34-next.1 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index ccf0799f6a..e9a2d2458f 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.34-next.1", + "version": "0.1.34-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 c8aef4d31f..168bc00df2 100644 --- a/plugins/graphql-voyager/CHANGELOG.md +++ b/plugins/graphql-voyager/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-voyager +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index 6524dbb3ec..a8843d3b99 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 425cf97609..04f5f1a0b8 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-home +## 0.4.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + ## 0.4.33-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 1daaccb28e..4610df4d40 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.33-next.1", + "version": "0.4.33-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 77d12474ea..02f77b394a 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-ilert +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.6-next.1 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 486410fbf0..4e413d6c82 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.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/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 7d34f4d73b..210bf9c6a1 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-jenkins-backend +## 0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-jenkins-common@0.1.15-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.1.34-next.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 4063634193..f92ef37f66 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.34-next.1", + "version": "0.1.34-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 a7a2176e5a..9f135f0ce5 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-jenkins +## 0.7.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-jenkins-common@0.1.15-next.0 + ## 0.7.16-next.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 9721f471b5..1452a1067e 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.16-next.1", + "version": "0.7.16-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 d4ec7156e7..e23db68e83 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kafka-backend +## 0.2.37-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.2.37-next.1 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 99f5e5c06a..b54bf490f8 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.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/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index 5d9b8cbe1b..3bbd50a54e 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kafka +## 0.3.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + ## 0.3.17-next.1 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index a7607be706..c117f488d4 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.17-next.1", + "version": "0.3.17-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 cd3900ec36..a5dc29a247 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-kubernetes-backend +## 0.10.0-next.2 + +### Minor Changes + +- e6c7c850129: Plugins that instantiate the `KubernetesProxy` must now provide a parameter of the type `KubernetesProxyOptions` which includes providing a `KubernetesAuthTranslator`. The `KubernetesBuilder` now builds its own `KubernetesAuthTranslatorMap` that it provides to the `KubernetesProxy`. The `DispatchingKubernetesAuthTranslator` expects a `KubernetesTranslatorMap` to be provided as a parameter. The `KubernetesBuilder` now has a method called `setAuthTranslatorMap` which allows integrators to bring their own `KubernetesAuthTranslator's` to the `KubernetesPlugin`. + +### Patch Changes + +- 76e8f08fa24: fix localKubectlProxy auth provider fetching +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.10.0-next.1 ### Minor Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 791273af7d..892f81a42a 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.10.0-next.1", + "version": "0.10.0-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 a1271e0d23..fbecb8ee2e 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes +## 0.7.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-kubernetes-common@0.6.2-next.1 + ## 0.7.10-next.1 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index ae39da0598..7b3b3d7b25 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.10-next.1", + "version": "0.7.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md index 36cd9f849b..6dd9f1e1f3 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse-backend +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-lighthouse-common@0.1.1 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index 8f8d6ba3d0..d46ffa506a 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index dd360eaed6..2031e811b3 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse +## 0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-lighthouse-common@0.1.1 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 8447d09fa3..0765634940 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.2-next.1", + "version": "0.4.2-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 eb5126e41e..1a520139cd 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-linguist-backend +## 0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-linguist-common@0.1.0 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index fad77875f2..2456be9608 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.1-next.1", + "version": "0.2.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md index 80a139fe11..d39be5a604 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-linguist +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-linguist-common@0.1.0 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index cf36485ae8..6ca88bffd1 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/microsoft-calendar/CHANGELOG.md b/plugins/microsoft-calendar/CHANGELOG.md index 8a2d3b894f..983542af09 100644 --- a/plugins/microsoft-calendar/CHANGELOG.md +++ b/plugins/microsoft-calendar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-microsoft-calendar +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json index a80135c82e..898dc383dc 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index f15716e74d..482e78baab 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 2771719ec4..e00bba36f2 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.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/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index 2dedb044cb..6542ab6d5f 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic +## 0.3.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.3.35-next.1 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 498a3e5d17..b3f8986757 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.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/octopus-deploy/CHANGELOG.md b/plugins/octopus-deploy/CHANGELOG.md index c247e33fd2..db1bb22834 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-octopus-deploy +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index b4ae8d397d..f1f01c1f3e 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.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/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 2a8dcc26e5..87ec76c66b 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-org-react +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index f778a1195b..631286f575 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.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 95115dbcf2..a3518388d6 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-org +## 0.6.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.6.7-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index a432e25edf..7627b3955d 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.7-next.1", + "version": "0.6.7-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 10183ec985..bc956de572 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-pagerduty +## 0.5.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.5.10-next.1 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 159ad4953e..44cc77a7c1 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.10-next.1", + "version": "0.5.10-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 7030940a58..260f57eb6a 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-periskop-backend +## 0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 7a3e481a02..83e97b0234 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.15-next.1", + "version": "0.1.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index c4970c12ab..ab8028538f 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-periskop +## 0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index d745bd7d24..38300e4b21 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.15-next.1", + "version": "0.1.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 46ed93642b..3e65f628a5 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-permission-backend +## 0.5.19-next.2 + +### Patch Changes + +- 84946a580c4: Introduced alpha export of the `permissionPlugin` for use in the new backend system, along with a `permissionModuleAllowAllPolicy` that can be used to allow all requests. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.5.19-next.1 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 0d2c0a840e..23394e4aa4 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.19-next.1", + "version": "0.5.19-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 d34e860efc..654283d4e7 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-permission-node +## 0.7.7-next.2 + +### Patch Changes + +- 788f0f5a152: Introduced alpha export of the `policyExtensionPoint` for use in the new backend system. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.7.7-next.1 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 308bd05ee2..d7170c86a9 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.7-next.1", + "version": "0.7.7-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 c23f9e0a73..8edff27f2b 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-react +## 0.4.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/plugin-permission-common@0.7.5-next.0 + ## 0.4.12-next.0 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 31f475e388..3a8cf8950a 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.12-next.0", + "version": "0.4.12-next.1", "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 38e4a26ca8..8172d8b132 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-playlist-backend +## 0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-playlist-common@0.1.6-next.0 + ## 0.2.7-next.1 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 8ccc0b2199..7aee62b158 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.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/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index ac791d37e6..a4230877b3 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-playlist +## 0.1.8-next.2 + +### Patch Changes + +- 1b3c0546047: Added config properties to change dynamically the group noun for all the components in the UI +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-playlist-common@0.1.6-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 0.1.8-next.1 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index a962e82290..dafdde48d5 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "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/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 2d165e6ea0..fabcaf7be7 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-proxy-backend +## 0.2.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + ## 0.2.38-next.1 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index b96d71583c..a2378efce4 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.38-next.1", + "version": "0.2.38-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 38d24cc574..896d1c6116 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-rollbar-backend +## 0.1.41-next.2 + +### Patch Changes + +- 66b6cfc5716: Replace `camelcase-keys` dependency with one with better compatibility. +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + ## 0.1.41-next.1 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 4ba138d6ca..e400d33ba9 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.41-next.1", + "version": "0.1.41-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 4ba47698cd..2439b71ef1 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-rollbar +## 0.4.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.4.17-next.1 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index b2c3159fec..f34ba7061d 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.17-next.1", + "version": "0.4.17-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 84d7f00322..3773e85e3e 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index 81357b3158..410bdff252 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 53fce1f10b..004e416337 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + ## 0.2.19-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 543e0b1f7a..3e24f6664d 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.19-next.1", + "version": "0.2.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index a063b46465..b7da2bcc08 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.1.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + ## 0.1.0-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 632ff0c4f6..7b8f42bd17 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.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/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index 2e12f048ef..ca8475d2ea 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/plugin-scaffolder-backend@1.13.0-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + ## 0.4.12-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index b47a7535e4..caf63204da 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.12-next.1", + "version": "0.4.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index 7e253a7064..768e114acb 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index b57806f136..9a5d749bdc 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.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/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 5fb4a87f10..871c345d38 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + ## 0.2.17-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 6cca671d4d..91f1c9b848 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.17-next.1", + "version": "0.2.17-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index ae69fd3548..4b8ba1359d 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-scaffolder-backend +## 1.13.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.8.1-next.2 + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/plugin-scaffolder-node@0.1.2-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + ## 1.13.0-next.1 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 97d4577d23..a2669ec164 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.13.0-next.1", + "version": "1.13.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index d834e519ac..17ab2a73ce 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-node +## 0.1.2-next.2 + +### Patch Changes + +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/types@1.0.2 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 3f19ce8ae0..5098a33788 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.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index dd409c38d2..b6c3b48440 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-scaffolder-react +## 1.3.0-next.2 + +### Patch Changes + +- 90dda42cfd2: bug: Invert `templateFilter` predicate to align with `Array.filter` +- 34dab7ee7f8: `scaffolder/next`: bump `rjsf` dependencies to `5.5.0` +- 2898b6c8d52: Minor type tweaks for TypeScript 5.0 +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + ## 1.3.0-next.1 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 50a060985c..f4c5234454 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.3.0-next.1", + "version": "1.3.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index be5ec0e59c..c9f5adf94a 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-scaffolder +## 1.13.0-next.2 + +### Minor Changes + +- cf18c32934a: The Installed Actions page now shows details for nested objects and arrays + +### Patch Changes + +- 90dda42cfd2: bug: Invert `templateFilter` predicate to align with `Array.filter` +- 34dab7ee7f8: `scaffolder/next`: bump `rjsf` dependencies to `5.5.0` +- Updated dependencies + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/plugin-scaffolder-react@1.3.0-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-react@0.4.12-next.1 + - @backstage/plugin-scaffolder-common@1.2.7-next.1 + ## 1.13.0-next.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 0e0ffdafda..b2e38afcb2 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.13.0-next.1", + "version": "1.13.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index 04b775ccca..1d806026e3 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index c73c416441..56f09a03f5 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-catalog", "description": "A module for the search backend that exports catalog modules", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 9d0ff6e853..b501b4aee7 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.2.0-next.1 ### Minor Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index f7338303d3..0400f0b407 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.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/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index aa13a15c75..f1c8c79c3c 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index 819ddabc76..d448d0ee51 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-explore", "description": "A module for the search backend that exports explore modules", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index 19c6183fcd..e7e998018c 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.5.5-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index a5c40c8fe4..ce1d5f174a 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.5-next.1", + "version": "0.5.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index 4a90c96889..2629004017 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 22a64b4601..d2e28b9be4 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", "description": "A module for the search backend that exports techdocs modules", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index 5c83ef7771..62b802616f 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-node +## 1.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.2.0-next.1 ### Minor Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index eeac6e1ba3..178882b4fe 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.2.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/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index cc5926a2f5..f7b920da78 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend +## 1.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/plugin-permission-node@0.7.7-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-node@1.2.0-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.3.0-next.1 ### Minor Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index fbbda5734d..57230dad16 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.3.0-next.1", + "version": "1.3.0-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 08079ae7bd..5f805f5760 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-react +## 1.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.5.2-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 1cc2ea03c3..188834a695 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.2-next.1", + "version": "1.5.2-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 f5fd302f8e..fc1f22f81c 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-search +## 1.2.0-next.2 + +### Minor Changes + +- d6b73b0380d: Search modal auto closes on location change + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.4-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 1.1.2-next.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 7616a03ffd..98151c9d3f 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.2-next.1", + "version": "1.2.0-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 9a98c12752..6a9f0a999d 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sentry +## 0.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.5.2-next.1 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 2d85a8552c..be2eb5c02b 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.2-next.1", + "version": "0.5.2-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 33a2990a15..5121115a86 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-shortcuts +## 0.3.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + ## 0.3.9-next.1 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index a2d1ce578e..fba65e7b5e 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.9-next.1", + "version": "0.3.9-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 54ac27af07..7a2d2c46ea 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-sonarqube-backend +## 0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 3ec1bee0e5..c7417b6b06 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.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/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md index 5ce3721423..94bc754364 100644 --- a/plugins/sonarqube-react/CHANGELOG.md +++ b/plugins/sonarqube-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-sonarqube-react +## 0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + ## 0.1.5-next.0 ### Patch Changes diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json index 457a52c65d..b0e36b742b 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.5-next.0", + "version": "0.1.5-next.1", "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 b30e4c51a0..327f0c7793 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-sonarqube +## 0.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-sonarqube-react@0.1.5-next.1 + ## 0.6.6-next.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 1e62a91c8d..722614b030 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "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/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 31245febfc..54be3f285e 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-splunk-on-call +## 0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/theme@0.2.19-next.0 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 361835bc43..f88131357c 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.6-next.1", + "version": "0.4.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 543ac6b9f3..5b227da921 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-stack-overflow-backend +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index b31ee346bc..a0430707b4 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.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index cc5cd08759..1d6a48b625 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-stack-overflow +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/config@1.0.7 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-home@0.4.33-next.2 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 4cfb56bd15..163c70e758 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.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stackstorm/CHANGELOG.md b/plugins/stackstorm/CHANGELOG.md index 75b87e0789..f939f4669e 100644 --- a/plugins/stackstorm/CHANGELOG.md +++ b/plugins/stackstorm/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-stackstorm +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index 28f43bcff3..0cba270449 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.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/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index d15c6e8e5c..d6c2ac84c6 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.28-next.2 + +### Patch Changes + +- 9cb1db6546a: When multiple fact retrievers are used for a check, allow for cases where only one returns a given fact +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/plugin-tech-insights-common@0.2.10 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + ## 0.1.28-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 343fd73346..fb549384a0 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.28-next.1", + "version": "0.1.28-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 35abcfd5ea..1dc5782caf 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-tech-insights-backend +## 0.5.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + - @backstage/plugin-tech-insights-node@0.4.2-next.2 + ## 0.5.10-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 5a22261687..a8a90c7a1e 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.10-next.1", + "version": "0.5.10-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 a1419ba993..1baf8bcb35 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-node +## 0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index f726694638..1b6a429fd0 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.2-next.1", + "version": "0.4.2-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 dfc08e22d1..3c729bf8df 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-tech-insights +## 0.3.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.10 + ## 0.3.9-next.1 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 5eb4352760..022b5bc24f 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.9-next.1", + "version": "0.3.9-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 9e3831c757..215aa011b5 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-radar +## 0.6.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/theme@0.2.19-next.0 + ## 0.6.3-next.1 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index f5f87c8443..622930a67d 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.3-next.1", + "version": "0.6.3-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 4c84795a42..5c290d700d 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/plugin-techdocs@1.6.1-next.2 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/test-utils@1.3.0-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-catalog@1.10.0-next.2 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + ## 1.0.12-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index fd3bcc2858..61eb206494 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.12-next.1", + "version": "1.0.12-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 82366856aa..751848bab2 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs-backend +## 1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.13-next.0 + - @backstage/plugin-permission-common@0.7.5-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.0-next.1 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-techdocs-node@1.6.1-next.2 + ## 1.6.1-next.1 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index a710e649c6..73043942eb 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.6.1-next.1", + "version": "1.6.1-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 43e6840750..856576a3df 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.12-next.2 + +### Patch Changes + +- c657d0a610e: Bump `photoswipe` dependency to `^5.3.7`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + ## 1.0.12-next.1 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 4ce37cd465..f27bc99e27 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.12-next.1", + "version": "1.0.12-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 5eec6e43de..0a6d87e679 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-node +## 1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-aws-node@0.1.2 + - @backstage/plugin-search-common@1.2.3-next.0 + ## 1.6.1-next.1 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 75c99775ea..ed0ca977dd 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.1-next.1", + "version": "1.6.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 06eb77f7fa..d984aaa3a4 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-react +## 1.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/version-bridge@1.0.4-next.0 + ## 1.1.5-next.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index af0aeace87..048829476d 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.5-next.1", + "version": "1.1.5-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index b25673f5bf..ecc4671ed8 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs +## 1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/integration-react@1.1.12-next.2 + - @backstage/theme@0.2.19-next.0 + - @backstage/plugin-search-common@1.2.3-next.0 + - @backstage/plugin-search-react@1.5.2-next.2 + - @backstage/plugin-techdocs-react@1.1.5-next.2 + ## 1.6.1-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 48bd40ae84..e91e5d1318 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.1-next.1", + "version": "1.6.1-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 0a0e5e79f3..3477e36061 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-todo-backend +## 0.1.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/catalog-client@1.4.1-next.0 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + - @backstage/integration@1.4.4-next.0 + - @backstage/plugin-catalog-node@1.3.5-next.2 + ## 0.1.41-next.1 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 7731293996..1e064c4017 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.41-next.1", + "version": "0.1.41-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index 60d107ffe6..929abebf01 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.19-next.1 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index a305b79df7..54c1aca6b5 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.19-next.1", + "version": "0.2.19-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 eeb62965a5..2b26814d27 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-user-settings-backend +## 0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-plugin-api@0.5.1-next.2 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.13-next.2 + ## 0.1.8-next.1 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index 343eda45b8..6143705d61 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.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/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 5fe3362beb..c44041ae2a 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings +## 0.7.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/core-app-api@1.7.0-next.2 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + - @backstage/types@1.0.2 + ## 0.7.2-next.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 362b1e2344..0e3ea1ff2a 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.2-next.1", + "version": "0.7.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index 0f0ea675f0..4576354dce 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-vault-backend +## 0.3.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.4-next.2 + - @backstage/backend-tasks@0.5.1-next.2 + - @backstage/config@1.0.7 + - @backstage/errors@1.1.5 + ## 0.3.0-next.1 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 4a58b42c69..23b4058c7c 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.3.0-next.1", + "version": "0.3.0-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 7580b64043..586cd17a33 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault +## 0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/plugin-catalog-react@1.4.1-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/catalog-model@1.2.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 0cbd40b3fe..b43e2a4e1f 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.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/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index fc2bf583b7..bf01295b5a 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-xcmetrics +## 0.2.37-next.2 + +### Patch Changes + +- 55a969fe574: Bumped `recharts` dependency to `^2.5.0`. +- Updated dependencies + - @backstage/core-components@0.12.6-next.2 + - @backstage/core-plugin-api@1.5.1-next.1 + - @backstage/errors@1.1.5 + - @backstage/theme@0.2.19-next.0 + ## 0.2.37-next.1 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index cced2ca271..1a654fd52f 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.37-next.1", + "version": "0.2.37-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/yarn.lock b/yarn.lock index 33726f44d2..75f4a41905 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3644,7 +3644,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-client@^1.4.0, @backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": +"@backstage/catalog-client@npm:^1.4.0": + version: 1.4.0 + resolution: "@backstage/catalog-client@npm:1.4.0" + dependencies: + "@backstage/catalog-model": ^1.2.1 + "@backstage/errors": ^1.1.5 + cross-fetch: ^3.1.5 + checksum: 8ffa95d74b2be83247beafce3aebe06cb688b018ada8ce4364b48ca09500293b1057cb48b90650a44b6252775bc3e09eeafcef79b8d8db4114271f8ec31bec80 + languageName: node + linkType: hard + +"@backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": version: 0.0.0-use.local resolution: "@backstage/catalog-client@workspace:packages/catalog-client" dependencies: