From 2e2b1f94e0094a64710760420bab2cdd4b02c5f1 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 9 Oct 2023 17:41:26 +0200 Subject: [PATCH 001/131] Make it possible to configure certain tings per template Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder-backend/src/service/router.ts | 1 + plugins/scaffolder-common/src/TemplateEntityV1beta3.ts | 8 ++++++++ plugins/scaffolder-common/src/index.ts | 1 + .../src/next/components/Stepper/Stepper.tsx | 4 ++-- .../scaffolder-react/src/next/hooks/useTemplateSchema.ts | 7 ++++++- plugins/scaffolder-react/src/types.ts | 3 +++ 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 15f7c11eba..2bf44cdfc6 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -365,6 +365,7 @@ export async function createRouter( const parameters = [template.spec.parameters ?? []].flat(); res.json({ title: template.metadata.title ?? template.metadata.name, + configurations: template.spec.configurations ?? {}, description: template.metadata.description, 'ui:options': template.metadata['ui:options'], steps: parameters.map(schema => ({ diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index ebabb5cad4..ffd50eab79 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -45,6 +45,9 @@ export interface TemplateEntityV1beta3 extends Entity { * The type that the Template will create. For example service, website or library. */ type: string; + + configurations?: TemplateConfigurationsV1beta3; + /** * This is a JSONSchema or an array of JSONSchema's which is used to render a form in the frontend * to collect user input and validate it against that schema. This can then be used in the `steps` part below to template @@ -67,6 +70,11 @@ export interface TemplateEntityV1beta3 extends Entity { }; } +export interface TemplateConfigurationsV1beta3 { + kickOffButtonText?: string; + reviewButtonText?: string; +} + /** * Step that is part of a Template Entity. * diff --git a/plugins/scaffolder-common/src/index.ts b/plugins/scaffolder-common/src/index.ts index fd34fe6f41..851c6ac7e5 100644 --- a/plugins/scaffolder-common/src/index.ts +++ b/plugins/scaffolder-common/src/index.ts @@ -27,6 +27,7 @@ export { isTemplateEntityV1beta3, } from './TemplateEntityV1beta3'; export type { + TemplateConfigurationsV1beta3, TemplateEntityV1beta3, TemplateEntityStepV1beta3, TemplateParametersV1beta3, diff --git a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx index e15953bf1f..8240fca9e0 100644 --- a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx +++ b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx @@ -91,7 +91,7 @@ export const Stepper = (stepperProps: StepperProps) => { reviewButtonText = 'Review', } = components; const analytics = useAnalytics(); - const { steps } = useTemplateSchema(props.manifest); + const { configurations, steps } = useTemplateSchema(props.manifest); const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); const [isValidating, setIsValidating] = useState(false); @@ -229,7 +229,7 @@ export const Stepper = (stepperProps: StepperProps) => { ); }} > - {createButtonText} + {configurations.kickOffButtonText ?? createButtonText} diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts index df70df965c..5fbac20db7 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import { featureFlagsApiRef, useApi } from '@backstage/core-plugin-api'; +import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; import { JsonObject } from '@backstage/types'; import { UiSchema } from '@rjsf/utils'; import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; @@ -39,7 +40,10 @@ export interface ParsedTemplateSchema { */ export const useTemplateSchema = ( manifest: TemplateParameterSchema, -): { steps: ParsedTemplateSchema[] } => { +): { + steps: ParsedTemplateSchema[]; + configurations: TemplateConfigurationsV1beta3; +} => { const featureFlags = useApi(featureFlagsApiRef); const steps = manifest.steps.map(({ title, description, schema }) => ({ title, @@ -76,6 +80,7 @@ export const useTemplateSchema = ( })); return { + configurations: manifest.configurations, steps: returningSteps, }; }; diff --git a/plugins/scaffolder-react/src/types.ts b/plugins/scaffolder-react/src/types.ts index f644fbeb64..f5c4cabc04 100644 --- a/plugins/scaffolder-react/src/types.ts +++ b/plugins/scaffolder-react/src/types.ts @@ -16,6 +16,8 @@ import { JsonObject } from '@backstage/types'; +import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; + /** * The shape of each entry of parameters which gets rendered * as a separate step in the wizard input @@ -25,6 +27,7 @@ import { JsonObject } from '@backstage/types'; export type TemplateParameterSchema = { title: string; description?: string; + configurations?: TemplateConfigurationsV1beta3; steps: Array<{ title: string; description?: string; From 62180df4ee3cb2f75459ee245d5da9c7e2342375 Mon Sep 17 00:00:00 2001 From: Tomasz Szuba Date: Mon, 2 Oct 2023 19:09:43 +0200 Subject: [PATCH 002/131] Store GKE dashboard parameters in catalog Signed-off-by: Tomasz Szuba --- .changeset/eleven-students-brake.md | 5 ++ .changeset/fair-tools-bake.md | 6 ++ .../catalog-backend-module-gcp/package.json | 1 + .../src/providers/GkeEntityProvider.test.ts | 71 +++---------------- .../src/providers/GkeEntityProvider.ts | 44 ++++++++---- .../GkeEntityProvider.test.ts.snap | 69 ++++++++++++++++++ .../CatalogClusterLocator.test.ts | 41 +---------- .../cluster-locator/CatalogClusterLocator.ts | 45 ++++++++---- .../CatalogClusterLocator.test.ts.snap | 47 ++++++++++++ plugins/kubernetes-common/api-report.md | 4 ++ .../src/catalog-entity-constants.ts | 7 ++ yarn.lock | 1 + 12 files changed, 214 insertions(+), 127 deletions(-) create mode 100644 .changeset/eleven-students-brake.md create mode 100644 .changeset/fair-tools-bake.md create mode 100644 plugins/catalog-backend-module-gcp/src/providers/__snapshots__/GkeEntityProvider.test.ts.snap create mode 100644 plugins/kubernetes-backend/src/cluster-locator/__snapshots__/CatalogClusterLocator.test.ts.snap diff --git a/.changeset/eleven-students-brake.md b/.changeset/eleven-students-brake.md new file mode 100644 index 0000000000..b2cad0bfd6 --- /dev/null +++ b/.changeset/eleven-students-brake.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-gcp': patch +--- + +Allow integration with kubernetes dashboard diff --git a/.changeset/fair-tools-bake.md b/.changeset/fair-tools-bake.md new file mode 100644 index 0000000000..fd7b21bbc8 --- /dev/null +++ b/.changeset/fair-tools-bake.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-kubernetes-common': patch +--- + +Allow storing dashboard parameters for kubernetes in catalog diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index dc3ae7395d..e9e32a07af 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -48,6 +48,7 @@ "@backstage/backend-common": "workspace:^", "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", + "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-kubernetes-common": "workspace:^", diff --git a/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.test.ts b/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.test.ts index 76df12e4e4..637963d8e3 100644 --- a/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.test.ts @@ -16,11 +16,6 @@ import { GkeEntityProvider } from './GkeEntityProvider'; import { TaskRunner } from '@backstage/backend-tasks'; -import { - ANNOTATION_KUBERNETES_API_SERVER, - ANNOTATION_KUBERNETES_API_SERVER_CA, - ANNOTATION_KUBERNETES_AUTH_PROVIDER, -} from '@backstage/plugin-kubernetes-common'; import * as container from '@google-cloud/container'; import { ConfigReader } from '@backstage/config'; @@ -55,7 +50,10 @@ describe('GkeEntityProvider', () => { providers: { gcp: { gke: { - parents: ['parent1', 'parent2'], + parents: [ + 'projects/parent1/locations/-', + 'projects/parent2/locations/some-other-location', + ], schedule: { frequency: { minutes: 3, @@ -77,7 +75,7 @@ describe('GkeEntityProvider', () => { it('should return clusters as Resources', async () => { clusterManagerClientMock.listClusters.mockImplementation(req => { - if (req.parent === 'parent1') { + if (req.parent === 'projects/parent1/locations/-') { return [ { clusters: [ @@ -93,7 +91,9 @@ describe('GkeEntityProvider', () => { ], }, ]; - } else if (req.parent === 'parent2') { + } else if ( + req.parent === 'projects/parent2/locations/some-other-location' + ) { return [ { clusters: [ @@ -114,58 +114,7 @@ describe('GkeEntityProvider', () => { throw new Error(`unexpected parent ${req.parent}`); }); await gkeEntityProvider.refresh(); - expect(connectionMock.applyMutation).toHaveBeenCalledWith({ - type: 'full', - entities: [ - { - locationKey: 'gcp-gke:some-location', - entity: { - apiVersion: 'backstage.io/v1alpha1', - kind: 'Resource', - metadata: { - annotations: { - [ANNOTATION_KUBERNETES_API_SERVER]: 'https://127.0.0.1', - [ANNOTATION_KUBERNETES_API_SERVER_CA]: 'abcdefg', - [ANNOTATION_KUBERNETES_AUTH_PROVIDER]: 'google', - 'backstage.io/managed-by-location': 'gcp-gke:some-location', - 'backstage.io/managed-by-origin-location': - 'gcp-gke:some-location', - }, - name: 'some-cluster', - namespace: 'default', - }, - spec: { - type: 'kubernetes-cluster', - owner: 'unknown', - }, - }, - }, - { - locationKey: 'gcp-gke:some-other-location', - entity: { - apiVersion: 'backstage.io/v1alpha1', - kind: 'Resource', - metadata: { - annotations: { - [ANNOTATION_KUBERNETES_API_SERVER]: 'https://127.0.0.1', - [ANNOTATION_KUBERNETES_API_SERVER_CA]: '', - [ANNOTATION_KUBERNETES_AUTH_PROVIDER]: 'google', - 'backstage.io/managed-by-location': - 'gcp-gke:some-other-location', - 'backstage.io/managed-by-origin-location': - 'gcp-gke:some-other-location', - }, - name: 'some-other-cluster', - namespace: 'default', - }, - spec: { - type: 'kubernetes-cluster', - owner: 'unknown', - }, - }, - }, - ], - }); + expect(connectionMock.applyMutation).toMatchSnapshot(); }); const ignoredPartialClustersTests: [ @@ -223,7 +172,7 @@ describe('GkeEntityProvider', () => { 'ignore cluster - %s', async (_name, ignoredCluster) => { clusterManagerClientMock.listClusters.mockImplementation(req => { - if (req.parent === 'parent1') { + if (req.parent === 'projects/parent1/locations/-') { return [ignoredCluster]; } return [ diff --git a/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.ts b/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.ts index 384cd839b2..3b2be79587 100644 --- a/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.ts +++ b/plugins/catalog-backend-module-gcp/src/providers/GkeEntityProvider.ts @@ -29,9 +29,15 @@ import { ANNOTATION_KUBERNETES_API_SERVER, ANNOTATION_KUBERNETES_API_SERVER_CA, ANNOTATION_KUBERNETES_AUTH_PROVIDER, + ANNOTATION_KUBERNETES_DASHBOARD_APP, + ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS, } from '@backstage/plugin-kubernetes-common'; import { Config } from '@backstage/config'; import { SchedulerService } from '@backstage/backend-plugin-api'; +import { + ANNOTATION_LOCATION, + ANNOTATION_ORIGIN_LOCATION, +} from '@backstage/catalog-model'; /** * Catalog provider to ingest GKE clusters @@ -120,10 +126,16 @@ export class GkeEntityProvider implements EntityProvider { private clusterToResource( cluster: container.protos.google.container.v1.ICluster, + project: string, ): DeferredEntity | undefined { const location = `${this.getProviderName()}:${cluster.location}`; - if (!cluster.name || !cluster.selfLink || !location || !cluster.endpoint) { + if ( + !cluster.name || + !cluster.selfLink || + !cluster.endpoint || + !cluster.location + ) { this.logger.warn( `ignoring partial cluster, one of name=${cluster.name}, endpoint=${cluster.endpoint}, selfLink=${cluster.selfLink} or location=${cluster.location} is missing`, ); @@ -142,8 +154,14 @@ export class GkeEntityProvider implements EntityProvider { [ANNOTATION_KUBERNETES_API_SERVER_CA]: cluster.masterAuth?.clusterCaCertificate || '', [ANNOTATION_KUBERNETES_AUTH_PROVIDER]: 'google', - 'backstage.io/managed-by-location': location, - 'backstage.io/managed-by-origin-location': location, + [ANNOTATION_KUBERNETES_DASHBOARD_APP]: 'gke', + [ANNOTATION_LOCATION]: location, + [ANNOTATION_ORIGIN_LOCATION]: location, + [ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS]: JSON.stringify({ + projectId: project, + region: cluster.location, + clusterName: cluster.name, + }), }, name: cluster.name, namespace: 'default', @@ -172,18 +190,22 @@ export class GkeEntityProvider implements EntityProvider { }; } - private async getClusters(): Promise< - container.protos.google.container.v1.ICluster[] - > { + private async getClusters(): Promise { const clusters = await Promise.all( this.gkeParents.map(async parent => { + const project = parent.split('/')[1]; const request = { parent: parent, }; const [response] = await this.clusterManagerClient.listClusters( request, ); - return response.clusters?.filter(this.filterOutUndefinedCluster) ?? []; + return ( + response.clusters + ?.filter(this.filterOutUndefinedCluster) + .map(c => this.clusterToResource(c, project)) + .filter(this.filterOutUndefinedDeferredEntity) ?? [] + ); }), ); return clusters.flat(); @@ -196,18 +218,14 @@ export class GkeEntityProvider implements EntityProvider { this.logger.info('Discovering GKE clusters'); - let clusters: container.protos.google.container.v1.ICluster[]; + let resources: DeferredEntity[]; try { - clusters = await this.getClusters(); + resources = await this.getClusters(); } catch (e) { this.logger.error('error fetching GKE clusters', e); return; } - const resources = - clusters - .map(c => this.clusterToResource(c)) - .filter(this.filterOutUndefinedDeferredEntity) ?? []; this.logger.info( `Ingesting GKE clusters [${resources diff --git a/plugins/catalog-backend-module-gcp/src/providers/__snapshots__/GkeEntityProvider.test.ts.snap b/plugins/catalog-backend-module-gcp/src/providers/__snapshots__/GkeEntityProvider.test.ts.snap new file mode 100644 index 0000000000..d20efb9c8d --- /dev/null +++ b/plugins/catalog-backend-module-gcp/src/providers/__snapshots__/GkeEntityProvider.test.ts.snap @@ -0,0 +1,69 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`GkeEntityProvider should return clusters as Resources 1`] = ` +[MockFunction] { + "calls": [ + [ + { + "entities": [ + { + "entity": { + "apiVersion": "backstage.io/v1alpha1", + "kind": "Resource", + "metadata": { + "annotations": { + "backstage.io/managed-by-location": "gcp-gke:some-location", + "backstage.io/managed-by-origin-location": "gcp-gke:some-location", + "kubernetes.io/api-server": "https://127.0.0.1", + "kubernetes.io/api-server-certificate-authority": "abcdefg", + "kubernetes.io/auth-provider": "google", + "kubernetes.io/dashboard-app": "gke", + "kubernetes.io/dashboard-parameters": "{"projectId":"parent1","region":"some-location","clusterName":"some-cluster"}", + }, + "name": "some-cluster", + "namespace": "default", + }, + "spec": { + "owner": "unknown", + "type": "kubernetes-cluster", + }, + }, + "locationKey": "gcp-gke:some-location", + }, + { + "entity": { + "apiVersion": "backstage.io/v1alpha1", + "kind": "Resource", + "metadata": { + "annotations": { + "backstage.io/managed-by-location": "gcp-gke:some-other-location", + "backstage.io/managed-by-origin-location": "gcp-gke:some-other-location", + "kubernetes.io/api-server": "https://127.0.0.1", + "kubernetes.io/api-server-certificate-authority": "", + "kubernetes.io/auth-provider": "google", + "kubernetes.io/dashboard-app": "gke", + "kubernetes.io/dashboard-parameters": "{"projectId":"parent2","region":"some-other-location","clusterName":"some-other-cluster"}", + }, + "name": "some-other-cluster", + "namespace": "default", + }, + "spec": { + "owner": "unknown", + "type": "kubernetes-cluster", + }, + }, + "locationKey": "gcp-gke:some-other-location", + }, + ], + "type": "full", + }, + ], + ], + "results": [ + { + "type": "return", + "value": undefined, + }, + ], +} +`; diff --git a/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.test.ts b/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.test.ts index cd8195b9dc..ad09f52f0a 100644 --- a/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.test.ts +++ b/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.test.ts @@ -23,7 +23,6 @@ import { } from '@backstage/plugin-kubernetes-common'; import { CatalogClusterLocator } from './CatalogClusterLocator'; import { CatalogApi } from '@backstage/catalog-client'; -import { ClusterDetails } from '../types/types'; const mockCatalogApi = { getEntityByRef: jest.fn(), @@ -93,25 +92,7 @@ describe('CatalogClusterLocator', () => { const result = await clusterSupplier.getClusters(); expect(result).toHaveLength(2); - expect(result[0]).toStrictEqual({ - name: 'owned', - url: 'https://apiserver.com', - caData: 'caData', - authMetadata: { - 'kubernetes.io/api-server': 'https://apiserver.com', - 'kubernetes.io/api-server-certificate-authority': 'caData', - [ANNOTATION_KUBERNETES_AUTH_PROVIDER]: 'oidc', - [ANNOTATION_KUBERNETES_OIDC_TOKEN_PROVIDER]: 'google', - 'kubernetes.io/skip-metrics-lookup': 'true', - 'kubernetes.io/skip-tls-verify': 'true', - 'kubernetes.io/dashboard-url': 'my-url', - 'kubernetes.io/dashboard-app': 'my-app', - }, - skipMetricsLookup: true, - skipTLSVerify: true, - dashboardUrl: 'my-url', - dashboardApp: 'my-app', - }); + expect(result[0]).toMatchSnapshot(); }); it('returns the aws cluster details provided by annotations', async () => { @@ -120,24 +101,6 @@ describe('CatalogClusterLocator', () => { const result = await clusterSupplier.getClusters(); expect(result).toHaveLength(2); - expect(result[1]).toStrictEqual({ - name: 'owned', - url: 'https://apiserver.com', - caData: 'caData', - authMetadata: { - 'kubernetes.io/api-server': 'https://apiserver.com', - 'kubernetes.io/api-server-certificate-authority': 'caData', - [ANNOTATION_KUBERNETES_AUTH_PROVIDER]: 'aws', - [ANNOTATION_KUBERNETES_AWS_ASSUME_ROLE]: 'my-role', - [ANNOTATION_KUBERNETES_AWS_EXTERNAL_ID]: 'my-id', - [ANNOTATION_KUBERNETES_OIDC_TOKEN_PROVIDER]: 'google', - 'kubernetes.io/dashboard-url': 'my-url', - 'kubernetes.io/dashboard-app': 'my-app', - }, - skipMetricsLookup: false, - skipTLSVerify: false, - dashboardUrl: 'my-url', - dashboardApp: 'my-app', - }); + expect(result[1]).toMatchSnapshot(); }); }); diff --git a/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.ts b/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.ts index f8abd5b203..9be4cd39cc 100644 --- a/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.ts +++ b/plugins/kubernetes-backend/src/cluster-locator/CatalogClusterLocator.ts @@ -24,7 +24,13 @@ import { ANNOTATION_KUBERNETES_SKIP_TLS_VERIFY, ANNOTATION_KUBERNETES_DASHBOARD_URL, ANNOTATION_KUBERNETES_DASHBOARD_APP, + ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS, } from '@backstage/plugin-kubernetes-common'; +import { JsonObject } from '@backstage/types'; + +function isObject(obj: unknown): obj is JsonObject { + return typeof obj === 'object' && obj !== null && !Array.isArray(obj); +} export class CatalogClusterLocator implements KubernetesClustersSupplier { private catalogClient: CatalogApi; @@ -54,27 +60,38 @@ export class CatalogClusterLocator implements KubernetesClustersSupplier { filter: [filter], }); return clusters.items.map(entity => { + const annotations = entity.metadata.annotations!; const clusterDetails: ClusterDetails = { name: entity.metadata.name, - url: entity.metadata.annotations![ANNOTATION_KUBERNETES_API_SERVER]!, - authMetadata: entity.metadata.annotations!, - caData: - entity.metadata.annotations![ANNOTATION_KUBERNETES_API_SERVER_CA]!, + url: annotations[ANNOTATION_KUBERNETES_API_SERVER], + authMetadata: annotations, + caData: annotations[ANNOTATION_KUBERNETES_API_SERVER_CA], skipMetricsLookup: - entity.metadata.annotations![ - ANNOTATION_KUBERNETES_SKIP_METRICS_LOOKUP - ]! === 'true', + annotations[ANNOTATION_KUBERNETES_SKIP_METRICS_LOOKUP] === 'true', skipTLSVerify: - entity.metadata.annotations![ - ANNOTATION_KUBERNETES_SKIP_TLS_VERIFY - ]! === 'true', - dashboardUrl: - entity.metadata.annotations![ANNOTATION_KUBERNETES_DASHBOARD_URL]!, - dashboardApp: - entity.metadata.annotations![ANNOTATION_KUBERNETES_DASHBOARD_APP]!, + annotations[ANNOTATION_KUBERNETES_SKIP_TLS_VERIFY] === 'true', + dashboardUrl: annotations[ANNOTATION_KUBERNETES_DASHBOARD_URL], + dashboardApp: annotations[ANNOTATION_KUBERNETES_DASHBOARD_APP], + dashboardParameters: this.getDashboardParameters(annotations), }; return clusterDetails; }); } + + private getDashboardParameters( + annotations: Record, + ): JsonObject | undefined { + const dashboardParamsString = + annotations[ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS]; + if (dashboardParamsString) { + try { + const dashboardParams = JSON.parse(dashboardParamsString); + return isObject(dashboardParams) ? dashboardParams : undefined; + } catch { + return undefined; + } + } + return undefined; + } } diff --git a/plugins/kubernetes-backend/src/cluster-locator/__snapshots__/CatalogClusterLocator.test.ts.snap b/plugins/kubernetes-backend/src/cluster-locator/__snapshots__/CatalogClusterLocator.test.ts.snap new file mode 100644 index 0000000000..b3731f1c08 --- /dev/null +++ b/plugins/kubernetes-backend/src/cluster-locator/__snapshots__/CatalogClusterLocator.test.ts.snap @@ -0,0 +1,47 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CatalogClusterLocator returns the aws cluster details provided by annotations 1`] = ` +{ + "authMetadata": { + "kubernetes.io/api-server": "https://apiserver.com", + "kubernetes.io/api-server-certificate-authority": "caData", + "kubernetes.io/auth-provider": "aws", + "kubernetes.io/aws-assume-role": "my-role", + "kubernetes.io/aws-external-id": "my-id", + "kubernetes.io/dashboard-app": "my-app", + "kubernetes.io/dashboard-url": "my-url", + "kubernetes.io/oidc-token-provider": "google", + }, + "caData": "caData", + "dashboardApp": "my-app", + "dashboardParameters": undefined, + "dashboardUrl": "my-url", + "name": "owned", + "skipMetricsLookup": false, + "skipTLSVerify": false, + "url": "https://apiserver.com", +} +`; + +exports[`CatalogClusterLocator returns the cluster details provided by annotations 1`] = ` +{ + "authMetadata": { + "kubernetes.io/api-server": "https://apiserver.com", + "kubernetes.io/api-server-certificate-authority": "caData", + "kubernetes.io/auth-provider": "oidc", + "kubernetes.io/dashboard-app": "my-app", + "kubernetes.io/dashboard-url": "my-url", + "kubernetes.io/oidc-token-provider": "google", + "kubernetes.io/skip-metrics-lookup": "true", + "kubernetes.io/skip-tls-verify": "true", + }, + "caData": "caData", + "dashboardApp": "my-app", + "dashboardParameters": undefined, + "dashboardUrl": "my-url", + "name": "owned", + "skipMetricsLookup": true, + "skipTLSVerify": true, + "url": "https://apiserver.com", +} +`; diff --git a/plugins/kubernetes-common/api-report.md b/plugins/kubernetes-common/api-report.md index 8daeb9a875..acf2e12bb2 100644 --- a/plugins/kubernetes-common/api-report.md +++ b/plugins/kubernetes-common/api-report.md @@ -46,6 +46,10 @@ export const ANNOTATION_KUBERNETES_AWS_EXTERNAL_ID = export const ANNOTATION_KUBERNETES_DASHBOARD_APP = 'kubernetes.io/dashboard-app'; +// @public +export const ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS = + 'kubernetes.io/dashboard-parameters'; + // @public export const ANNOTATION_KUBERNETES_DASHBOARD_URL = 'kubernetes.io/dashboard-url'; diff --git a/plugins/kubernetes-common/src/catalog-entity-constants.ts b/plugins/kubernetes-common/src/catalog-entity-constants.ts index 8a826d4316..e7e5cddc25 100644 --- a/plugins/kubernetes-common/src/catalog-entity-constants.ts +++ b/plugins/kubernetes-common/src/catalog-entity-constants.ts @@ -77,6 +77,13 @@ export const ANNOTATION_KUBERNETES_DASHBOARD_URL = export const ANNOTATION_KUBERNETES_DASHBOARD_APP = 'kubernetes.io/dashboard-app'; +/** + * Annotation for specifying the dashboard app parameters for a Kubernetes cluster. + * + * @public + */ +export const ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS = + 'kubernetes.io/dashboard-parameters'; /** * Annotation for specifying the assume role use to authenticate with AWS. * diff --git a/yarn.lock b/yarn.lock index 66631f1887..91e719b59e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5432,6 +5432,7 @@ __metadata: "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-tasks": "workspace:^" "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/plugin-catalog-node": "workspace:^" From 2be3922eb8c6b0aecf7622d0cc0f51bc24dfef4c Mon Sep 17 00:00:00 2001 From: parmar-abhinav Date: Thu, 12 Oct 2023 16:45:02 +0530 Subject: [PATCH 003/131] Add examples for github:deployKey:create scaffolder action Signed-off-by: parmar-abhinav --- .changeset/tame-spies-hunt.md | 5 + .../github/githubDeployKey.examples.test.ts | 111 ++++++++++++++++++ .../github/githubDeployKey.examples.ts | 37 ++++++ .../actions/builtin/github/githubDeployKey.ts | 2 + 4 files changed, 155 insertions(+) create mode 100644 .changeset/tame-spies-hunt.md create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.ts diff --git a/.changeset/tame-spies-hunt.md b/.changeset/tame-spies-hunt.md new file mode 100644 index 0000000000..5a45defb7e --- /dev/null +++ b/.changeset/tame-spies-hunt.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Add examples for `github:deployKey:create` scaffolder action & improve related tests diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.test.ts new file mode 100644 index 0000000000..c8e2a5f102 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.test.ts @@ -0,0 +1,111 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { getVoidLogger } from '@backstage/backend-common'; +import { createGithubDeployKeyAction } from './githubDeployKey'; +import yaml from 'yaml'; +import { examples } from './githubDeployKey.examples'; +import { PassThrough } from 'stream'; +import { ConfigReader } from '@backstage/config'; +import { ScmIntegrations } from '@backstage/integration'; + +const mockOctokit = { + rest: { + repos: { + createDeployKey: jest.fn(), + }, + actions: { + getRepoPublicKey: jest.fn(), + createOrUpdateRepoSecret: jest.fn(), + }, + }, +}; +jest.mock('octokit', () => ({ + Octokit: class { + constructor() { + return mockOctokit; + } + }, +})); + +const publicKey = '2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU='; + +describe('Usage examples', () => { + const config = new ConfigReader({ + integrations: { + github: [ + { host: 'github.com', token: 'tokenlols' }, + { host: 'ghe.github.com' }, + ], + }, + }); + const integrations = ScmIntegrations.fromConfig(config); + let action: TemplateAction; + + const mockContext = { + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + beforeEach(() => { + jest.resetAllMocks(); + + action = createGithubDeployKeyAction({ + integrations, + }); + }); + + it('Example 1: Create and store a Deploy Key', async () => { + const input = yaml.parse(examples[0].example).steps[0].input; + + mockOctokit.rest.actions.getRepoPublicKey.mockResolvedValue({ + data: { + key: publicKey, + key_id: 'keyid', + }, + }); + + await action.handler({ + ...mockContext, + input, + }); + + expect(mockOctokit.rest.repos.createDeployKey).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repository', + title: 'Push Tags', + key: 'pubkey', + }); + + expect( + mockOctokit.rest.actions.createOrUpdateRepoSecret, + ).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repository', + secret_name: 'PUSH_TAGS_PRIVATE_KEY', + key_id: 'keyid', + encrypted_value: expect.any(String), + }); + + expect(mockContext.output).toHaveBeenCalledWith( + 'privateKeySecretName', + 'PUSH_TAGS_PRIVATE_KEY', + ); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.ts new file mode 100644 index 0000000000..be8c0ad7bc --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.examples.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: 'Example 1: Create and store a Deploy Key', + example: yaml.stringify({ + steps: [ + { + action: 'github:deployKey:create', + name: 'Create and store a Deploy Key', + input: { + repoUrl: 'github.com?repo=repository&owner=owner', + publicKey: 'pubkey', + privateKey: 'privkey', + deployKeyName: 'Push Tags', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.ts index 6ad646a89c..1db9746bb4 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubDeployKey.ts @@ -21,6 +21,7 @@ import { parseRepoUrl } from '../publish/util'; import { getOctokitOptions } from './helpers'; import { Octokit } from 'octokit'; import Sodium from 'libsodium-wrappers'; +import { examples } from './githubDeployKey.examples'; /** * Creates an `github:deployKey:create` Scaffolder action that creates a Deploy Key @@ -43,6 +44,7 @@ export function createGithubDeployKeyAction(options: { }>({ id: 'github:deployKey:create', description: 'Creates and stores Deploy Keys', + examples, schema: { input: { type: 'object', From e5bf3749ad0ed8789a861310acb0a7245c246699 Mon Sep 17 00:00:00 2001 From: Phil Kuang Date: Thu, 12 Oct 2023 19:58:54 -0400 Subject: [PATCH 004/131] feat(catalog): support adding location analyzers in processing extension Signed-off-by: Phil Kuang --- .changeset/blue-bags-warn.md | 7 +++++++ .../api-report.md | 4 ++-- .../src/analyzers/GithubLocationAnalyzer.ts | 2 +- plugins/catalog-backend/api-report.md | 16 ++++------------ .../src/ingestion/LocationAnalyzer.ts | 3 ++- plugins/catalog-backend/src/ingestion/index.ts | 10 ++++++++-- plugins/catalog-backend/src/ingestion/types.ts | 16 ---------------- .../src/service/CatalogBuilder.ts | 3 ++- .../src/service/CatalogPlugin.ts | 13 +++++++++++++ plugins/catalog-node/alpha-api-report.md | 5 +++++ plugins/catalog-node/api-report.md | 15 +++++++++++++++ plugins/catalog-node/src/extensions.ts | 4 ++++ plugins/catalog-node/src/processing/index.ts | 2 ++ plugins/catalog-node/src/processing/types.ts | 18 ++++++++++++++++++ 14 files changed, 83 insertions(+), 35 deletions(-) create mode 100644 .changeset/blue-bags-warn.md diff --git a/.changeset/blue-bags-warn.md b/.changeset/blue-bags-warn.md new file mode 100644 index 0000000000..9d74aa3320 --- /dev/null +++ b/.changeset/blue-bags-warn.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend': minor +'@backstage/plugin-catalog-node': minor +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Support adding location analyzers in catalog processing extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index 4c44f95b61..eb43748aa1 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { AnalyzeOptions } from '@backstage/plugin-catalog-backend'; +import { AnalyzeOptions } from '@backstage/plugin-catalog-node'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; @@ -21,7 +21,7 @@ import { Logger } from 'winston'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-backend'; +import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; import { TaskRunner } from '@backstage/backend-tasks'; import { TokenManager } from '@backstage/backend-common'; import { UserEntity } from '@backstage/catalog-model'; diff --git a/plugins/catalog-backend-module-github/src/analyzers/GithubLocationAnalyzer.ts b/plugins/catalog-backend-module-github/src/analyzers/GithubLocationAnalyzer.ts index 9341743413..3353254400 100644 --- a/plugins/catalog-backend-module-github/src/analyzers/GithubLocationAnalyzer.ts +++ b/plugins/catalog-backend-module-github/src/analyzers/GithubLocationAnalyzer.ts @@ -27,7 +27,7 @@ import parseGitUrl from 'git-url-parse'; import { AnalyzeOptions, ScmLocationAnalyzer, -} from '@backstage/plugin-catalog-backend'; +} from '@backstage/plugin-catalog-node'; import { PluginEndpointDiscovery, TokenManager, diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index e426ca1d75..d9c241e99c 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -10,6 +10,7 @@ import { AnalyzeLocationExistingEntity as AnalyzeLocationExistingEntity_2 } from import { AnalyzeLocationGenerateEntity as AnalyzeLocationGenerateEntity_2 } from '@backstage/plugin-catalog-common'; import { AnalyzeLocationRequest as AnalyzeLocationRequest_2 } from '@backstage/plugin-catalog-common'; import { AnalyzeLocationResponse as AnalyzeLocationResponse_2 } from '@backstage/plugin-catalog-common'; +import { AnalyzeOptions } from '@backstage/plugin-catalog-node'; import { CatalogApi } from '@backstage/catalog-client'; import type { CatalogCollatorEntityTransformer as CatalogCollatorEntityTransformer_2 } from '@backstage/plugin-search-backend-module-catalog'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; @@ -50,6 +51,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { Router } from 'express'; import { ScmIntegrationRegistry } from '@backstage/integration'; +import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; import { TokenManager } from '@backstage/backend-common'; import { UrlReader } from '@backstage/backend-common'; import { Validators } from '@backstage/catalog-model'; @@ -69,11 +71,7 @@ export type AnalyzeLocationRequest = AnalyzeLocationRequest_2; // @public @deprecated (undocumented) export type AnalyzeLocationResponse = AnalyzeLocationResponse_2; -// @public (undocumented) -export type AnalyzeOptions = { - url: string; - catalogFilename?: string; -}; +export { AnalyzeOptions }; // @public (undocumented) export class AnnotateLocationEntityProcessor implements CatalogProcessor_2 { @@ -468,13 +466,7 @@ export const processingResult: Readonly<{ readonly refresh: (key: string) => CatalogProcessorResult_2; }>; -// @public (undocumented) -export type ScmLocationAnalyzer = { - supports(url: string): boolean; - analyze(options: AnalyzeOptions): Promise<{ - existing: AnalyzeLocationExistingEntity[]; - }>; -}; +export { ScmLocationAnalyzer }; // @public (undocumented) export class UrlReaderProcessor implements CatalogProcessor_2 { diff --git a/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts b/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts index 761a0f8c0a..ad752b770d 100644 --- a/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts +++ b/plugins/catalog-backend/src/ingestion/LocationAnalyzer.ts @@ -18,11 +18,12 @@ import { Logger } from 'winston'; import parseGitUrl from 'git-url-parse'; import { Entity } from '@backstage/catalog-model'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { LocationAnalyzer, ScmLocationAnalyzer } from './types'; +import { LocationAnalyzer } from './types'; import { AnalyzeLocationRequest, AnalyzeLocationResponse, } from '@backstage/plugin-catalog-common'; +import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; export class RepoLocationAnalyzer implements LocationAnalyzer { private readonly logger: Logger; diff --git a/plugins/catalog-backend/src/ingestion/index.ts b/plugins/catalog-backend/src/ingestion/index.ts index 0b00809043..86a8179d8d 100644 --- a/plugins/catalog-backend/src/ingestion/index.ts +++ b/plugins/catalog-backend/src/ingestion/index.ts @@ -21,6 +21,12 @@ export type { AnalyzeLocationRequest, AnalyzeLocationResponse, LocationAnalyzer, - ScmLocationAnalyzer, - AnalyzeOptions, } from './types'; + +/** + * @deprecated use the same type from `@backstage/plugin-catalog-node` instead + */ +export type { + AnalyzeOptions, + ScmLocationAnalyzer, +} from '@backstage/plugin-catalog-node'; diff --git a/plugins/catalog-backend/src/ingestion/types.ts b/plugins/catalog-backend/src/ingestion/types.ts index 78339b3b23..3875d3af03 100644 --- a/plugins/catalog-backend/src/ingestion/types.ts +++ b/plugins/catalog-backend/src/ingestion/types.ts @@ -78,19 +78,3 @@ export type LocationAnalyzer = { location: AnalyzeLocationRequest, ): Promise; }; -/** @public */ -export type AnalyzeOptions = { - url: string; - catalogFilename?: string; -}; - -/** @public */ -export type ScmLocationAnalyzer = { - /** The method that decides if this analyzer can work with the provided url */ - supports(url: string): boolean; - /** This function can return an array of already existing entities */ - analyze(options: AnalyzeOptions): Promise<{ - /** Existing entities in the analyzed location */ - existing: AnalyzeLocationExistingEntity[]; - }>; -}; diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index c12178e888..5cf76ee1ac 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -38,6 +38,7 @@ import { CatalogProcessor, CatalogProcessorParser, EntityProvider, + ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { AnnotateLocationEntityProcessor, @@ -57,7 +58,7 @@ import { yamlPlaceholderResolver, } from '../modules/core/PlaceholderProcessor'; import { defaultEntityDataParser } from '../modules/util/parse'; -import { LocationAnalyzer, ScmLocationAnalyzer } from '../ingestion/types'; +import { LocationAnalyzer } from '../ingestion/types'; import { CatalogProcessingEngine } from '../processing'; import { DefaultProcessingDatabase } from '../database/DefaultProcessingDatabase'; import { applyDatabaseMigrations } from '../database/migrations'; diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index b8d5bdbeda..d112429fc4 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -25,6 +25,7 @@ import { import { CatalogProcessor, EntityProvider, + ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { loggerToWinstonLogger } from '@backstage/backend-common'; import { PlaceholderResolver } from '../modules'; @@ -33,6 +34,7 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { #processors = new Array(); #entityProviders = new Array(); #placeholderResolvers: Record = {}; + #locationAnalyzers = new Array(); addProcessor( ...processors: Array> @@ -54,6 +56,12 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { this.#placeholderResolvers[key] = resolver; } + addLocationAnalyzers( + ...analyzers: Array> + ): void { + this.#locationAnalyzers.push(...analyzers.flat()); + } + get processors() { return this.#processors; } @@ -65,6 +73,10 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { get placeholderResolvers() { return this.#placeholderResolvers; } + + get locationAnalyzers() { + return this.#locationAnalyzers; + } } /** @@ -116,6 +128,7 @@ export const catalogPlugin = createBackendPlugin({ Object.entries(processingExtensions.placeholderResolvers).forEach( ([key, resolver]) => builder.setPlaceholderResolver(key, resolver), ); + builder.addLocationAnalyzers(...processingExtensions.locationAnalyzers); const { processingEngine, router } = await builder.build(); diff --git a/plugins/catalog-node/alpha-api-report.md b/plugins/catalog-node/alpha-api-report.md index 082228a58e..f3de6a8b33 100644 --- a/plugins/catalog-node/alpha-api-report.md +++ b/plugins/catalog-node/alpha-api-report.md @@ -8,6 +8,7 @@ import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { PlaceholderResolver } from '@backstage/plugin-catalog-node'; +import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) @@ -17,6 +18,10 @@ export interface CatalogProcessingExtensionPoint { ...providers: Array> ): void; // (undocumented) + addLocationAnalyzers( + ...analyzers: Array> + ): void; + // (undocumented) addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; // (undocumented) addProcessor( diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 34d7a4bc9b..ef2c09e61f 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -5,12 +5,19 @@ ```ts /// +import { AnalyzeLocationExistingEntity } from '@backstage/plugin-catalog-common'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; import { JsonValue } from '@backstage/types'; import { LocationEntityV1alpha1 } from '@backstage/catalog-model'; import { LocationSpec as LocationSpec_2 } from '@backstage/plugin-catalog-common'; +// @public (undocumented) +export type AnalyzeOptions = { + url: string; + catalogFilename?: string; +}; + // @public (undocumented) export type CatalogProcessor = { getProcessorName(): string; @@ -198,4 +205,12 @@ export const processingResult: Readonly<{ readonly relation: (spec: EntityRelationSpec) => CatalogProcessorResult; readonly refresh: (key: string) => CatalogProcessorResult; }>; + +// @public (undocumented) +export type ScmLocationAnalyzer = { + supports(url: string): boolean; + analyze(options: AnalyzeOptions): Promise<{ + existing: AnalyzeLocationExistingEntity[]; + }>; +}; ``` diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 5225ad7545..4e8f7127f1 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -18,6 +18,7 @@ import { EntityProvider, CatalogProcessor, PlaceholderResolver, + ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; /** @@ -31,6 +32,9 @@ export interface CatalogProcessingExtensionPoint { ...providers: Array> ): void; addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; + addLocationAnalyzers( + ...analyzers: Array> + ): void; } /** diff --git a/plugins/catalog-node/src/processing/index.ts b/plugins/catalog-node/src/processing/index.ts index 40cee63e25..8cffac6961 100644 --- a/plugins/catalog-node/src/processing/index.ts +++ b/plugins/catalog-node/src/processing/index.ts @@ -15,9 +15,11 @@ */ export type { + AnalyzeOptions, DeferredEntity, PlaceholderResolver, PlaceholderResolverParams, PlaceholderResolverRead, PlaceholderResolverResolveUrl, + ScmLocationAnalyzer, } from './types'; diff --git a/plugins/catalog-node/src/processing/types.ts b/plugins/catalog-node/src/processing/types.ts index b98e2da1b7..b6785c1b91 100644 --- a/plugins/catalog-node/src/processing/types.ts +++ b/plugins/catalog-node/src/processing/types.ts @@ -15,6 +15,7 @@ */ import { Entity } from '@backstage/catalog-model'; +import { AnalyzeLocationExistingEntity } from '@backstage/plugin-catalog-common'; import { JsonValue } from '@backstage/types'; import { CatalogProcessorEmit } from '../api'; @@ -50,3 +51,20 @@ export type PlaceholderResolverParams = { export type PlaceholderResolver = ( params: PlaceholderResolverParams, ) => Promise; + +/** @public */ +export type AnalyzeOptions = { + url: string; + catalogFilename?: string; +}; + +/** @public */ +export type ScmLocationAnalyzer = { + /** The method that decides if this analyzer can work with the provided url */ + supports(url: string): boolean; + /** This function can return an array of already existing entities */ + analyze(options: AnalyzeOptions): Promise<{ + /** Existing entities in the analyzed location */ + existing: AnalyzeLocationExistingEntity[]; + }>; +}; From 7d653f58b1d1ec8236f4d8d3219267b6bc599f66 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 13:38:10 +0200 Subject: [PATCH 005/131] Preserve time execution for a non-running task. Signed-off-by: Bogdan Nechyporenko --- .changeset/hungry-coats-judge.md | 5 ++ plugins/scaffolder-backend/api-report.md | 4 +- plugins/scaffolder-node/api-report.md | 4 +- plugins/scaffolder/package.json | 1 + plugins/scaffolder/src/api.test.ts | 97 ++++++++++++++++++++++++ plugins/scaffolder/src/api.ts | 61 +++++++++++++-- yarn.lock | 1 + 7 files changed, 164 insertions(+), 9 deletions(-) create mode 100644 .changeset/hungry-coats-judge.md diff --git a/.changeset/hungry-coats-judge.md b/.changeset/hungry-coats-judge.md new file mode 100644 index 0000000000..7e5b634237 --- /dev/null +++ b/.changeset/hungry-coats-judge.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Preserve time execution for a non-running task diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index ba7576b1bb..1b0930eaee 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -741,8 +741,8 @@ export function createRouter(options: RouterOptions): Promise; export const createTemplateAction: < TInputParams extends JsonObject = JsonObject, TOutputParams extends JsonObject = JsonObject, - TInputSchema extends ZodType | Schema = {}, - TOutputSchema extends ZodType | Schema = {}, + TInputSchema extends Schema | ZodType = {}, + TOutputSchema extends Schema | ZodType = {}, TActionInput extends JsonObject = TInputSchema extends ZodType< any, any, diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md index 52ce3c8d13..0c97fb2e40 100644 --- a/plugins/scaffolder-node/api-report.md +++ b/plugins/scaffolder-node/api-report.md @@ -53,8 +53,8 @@ export type ActionContext< export const createTemplateAction: < TInputParams extends JsonObject = JsonObject, TOutputParams extends JsonObject = JsonObject, - TInputSchema extends z.ZodType | Schema = {}, - TOutputSchema extends z.ZodType | Schema = {}, + TInputSchema extends Schema | z.ZodType = {}, + TOutputSchema extends Schema | z.ZodType = {}, TActionInput extends JsonObject = TInputSchema extends z.ZodType< any, any, diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 68066a5a79..7766669411 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -58,6 +58,7 @@ "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-permission-react": "workspace:^", "@backstage/plugin-scaffolder-common": "workspace:^", + "@backstage/plugin-scaffolder-node": "workspace:^", "@backstage/plugin-scaffolder-react": "workspace:^", "@backstage/theme": "workspace:^", "@backstage/types": "workspace:^", diff --git a/plugins/scaffolder/src/api.test.ts b/plugins/scaffolder/src/api.test.ts index b9b1881066..e10363b61f 100644 --- a/plugins/scaffolder/src/api.test.ts +++ b/plugins/scaffolder/src/api.test.ts @@ -21,6 +21,11 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { ScaffolderClient } from './api'; import { EventSourcePolyfill } from 'event-source-polyfill'; +import { + SerializedTask, + SerializedTaskEvent, +} from '@backstage/plugin-scaffolder-node'; +import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; const MockedEventSource = EventSourcePolyfill as jest.MockedClass< typeof EventSourcePolyfill @@ -327,6 +332,98 @@ describe('api', () => { }); }); + describe('getTask', () => { + it('should return the task enriched with timestamps', async () => { + const taskId = 'e4e4cb25-e743-4b79-8572-87e9d35aa998'; + server.use( + rest.get(`${mockBaseUrl}/v2/tasks/:taskId`, (_req, res, ctx) => { + return res( + ctx.json({ + createdAt: '2023-10-16T08:21:32.038Z', + id: taskId, + lastHeartbeatAt: '2023-10-16T08:21:54.304Z', + spec: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [ + { + action: 'fetch:template', + id: 'fetch', + }, + { + action: 'debug:wait', + id: 'mock-step-1', + }, + { + action: 'debug:wait', + id: 'mock-step-2', + }, + ], + templateInfo: { + entityRef: 'template:default/docs-long-running-template', + }, + }, + } as SerializedTask), + ); + }), + rest.get(`${mockBaseUrl}/v2/tasks/:taskId/events`, (_req, res, ctx) => { + return res( + ctx.json([ + { + createdAt: '2023-10-16T08:21:32.062Z', + body: {}, + id: 109, + taskId, + type: 'log', + }, + { + body: { stepId: 'fetch' }, + createdAt: '2023-10-16T08:21:32.062Z', + id: 110, + taskId, + type: 'log', + }, + { + body: { stepId: 'fetch' }, + createdAt: '2023-10-16T08:21:33.062Z', + id: 111, + taskId, + type: 'log', + }, + { + body: { stepId: 'fetch' }, + createdAt: '2023-10-16T08:21:34.062Z', + id: 112, + taskId, + type: 'log', + }, + { + body: { stepId: 'mock-step-1' }, + createdAt: '2023-10-16T08:21:37.062Z', + id: 120, + taskId, + type: 'log', + }, + ] as SerializedTaskEvent[]), + ); + }), + ); + + const task = await apiClient.getTask(taskId); + + const getStep = (stepId: string) => + task.spec.steps.find( + step => step.id === stepId, + ) as unknown as ScaffolderStep; + + expect(getStep('fetch').startedAt).toBe('2023-10-16T08:21:32.062Z'); + expect(getStep('fetch').endedAt).toBe('2023-10-16T08:21:34.062Z'); + expect(getStep('mock-step-1').startedAt).toBe('2023-10-16T08:21:37.062Z'); + expect(getStep('mock-step-1').endedAt).toBe('2023-10-16T08:21:37.062Z'); + expect(getStep('mock-step-2').startedAt).toBeUndefined(); + expect(getStep('mock-step-2').endedAt).toBeUndefined(); + }); + }); + describe('listTasks', () => { it('should list all tasks', async () => { server.use( diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index c67a5c944e..6aa7fac780 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -38,10 +38,13 @@ import { ScaffolderDryRunOptions, ScaffolderDryRunResponse, TemplateParameterSchema, + ScaffolderStep, } from '@backstage/plugin-scaffolder-react'; +import { TaskStep } from '@backstage/plugin-scaffolder-common'; import queryString from 'qs'; import { EventSourcePolyfill } from 'event-source-polyfill'; +import { SerializedTaskEvent } from '@backstage/plugin-scaffolder-node'; /** * An API to interact with the scaffolder backend. @@ -170,14 +173,62 @@ export class ScaffolderClient implements ScaffolderApi { async getTask(taskId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder'); - const url = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}`; + const taskUrl = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}`; - const response = await this.fetchApi.fetch(url); - if (!response.ok) { - throw await ResponseError.fromResponse(response); + const taskEventsUrl = `${baseUrl}/v2/tasks/${encodeURIComponent( + taskId, + )}/events`; + + const taskResponse = await this.fetchApi.fetch(taskUrl); + if (!taskResponse.ok) { + throw await ResponseError.fromResponse(taskResponse); } - return await response.json(); + const taskEventsResponse = await this.fetchApi.fetch(taskEventsUrl); + if (!taskEventsResponse.ok) { + throw await ResponseError.fromResponse(taskEventsResponse); + } + + const task = (await taskResponse.json()) as ScaffolderTask; + const taskEvents = + (await taskEventsResponse.json()) as SerializedTaskEvent[]; + + const stepIdToTimestamps = taskEvents + .filter(event => event.type === 'log') + .reduce((acc, event) => { + const stepId = event.body.stepId as string; + if (stepId) { + acc.set(stepId, [...(acc.get(stepId) ?? []), event.createdAt]); + } + return acc; + }, new Map()); + + const toStartedAt = (stepId: string) => { + const timestamps = stepIdToTimestamps.get(stepId); + return timestamps ? timestamps[0] : undefined; + }; + + const toEndedAt = (stepId: string) => { + const timestamps = stepIdToTimestamps.get(stepId); + return timestamps ? timestamps[timestamps.length - 1] : undefined; + }; + + const enrichedTask = { + ...task, + spec: { + ...task.spec, + steps: task.spec.steps.map( + step => + ({ + ...step, + startedAt: toStartedAt(step.id), + endedAt: toEndedAt(step.id), + } as TaskStep & ScaffolderStep), + ), + }, + }; + + return enrichedTask as ScaffolderTask; } streamLogs(options: ScaffolderStreamLogsOptions): Observable { diff --git a/yarn.lock b/yarn.lock index 2533a51f32..e7cd435d9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8975,6 +8975,7 @@ __metadata: "@backstage/plugin-catalog-react": "workspace:^" "@backstage/plugin-permission-react": "workspace:^" "@backstage/plugin-scaffolder-common": "workspace:^" + "@backstage/plugin-scaffolder-node": "workspace:^" "@backstage/plugin-scaffolder-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" From b5dcf6b1205093523f65a6d8417133e25164e7ce Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 14:18:37 +0200 Subject: [PATCH 006/131] Make it possible to define control buttons text (Back, Create, Review) per template Signed-off-by: Bogdan Nechyporenko --- .../src/TemplateEntityV1beta3.ts | 7 ++++-- .../src/next/components/Stepper/Stepper.tsx | 22 +++++++++++++------ .../src/next/hooks/useTemplateSchema.ts | 2 +- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index ffd50eab79..96edd44595 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -71,8 +71,11 @@ export interface TemplateEntityV1beta3 extends Entity { } export interface TemplateConfigurationsV1beta3 { - kickOffButtonText?: string; - reviewButtonText?: string; + buttonLabels?: { + backButtonText?: string; + createButtonText?: string; + reviewButtonText?: string; + }; } /** diff --git a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx index 8240fca9e0..9c800b7605 100644 --- a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx +++ b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx @@ -32,9 +32,8 @@ import { type FormValidation, } from './createAsyncValidators'; import { ReviewState, type ReviewStateProps } from '../ReviewState'; -import { useTemplateSchema } from '../../hooks/useTemplateSchema'; +import { useTemplateSchema, useFormDataFromQuery } from '../../hooks'; import validator from '@rjsf/validator-ajv8'; -import { useFormDataFromQuery } from '../../hooks'; import { FormProps } from '../../types'; import { useTransformSchemaToProps } from '../../hooks/useTransformSchemaToProps'; import { hasErrors } from './utils'; @@ -73,6 +72,7 @@ export type StepperProps = { onCreate: (values: Record) => Promise; components?: { ReviewStateComponent?: (props: ReviewStateProps) => JSX.Element; + backButtonText?: ReactNode; createButtonText?: ReactNode; reviewButtonText?: ReactNode; }; @@ -87,6 +87,7 @@ export const Stepper = (stepperProps: StepperProps) => { const { layouts = [], components = {}, ...props } = stepperProps; const { ReviewStateComponent = ReviewState, + backButtonText = 'Back', createButtonText = 'Create', reviewButtonText = 'Review', } = components; @@ -157,6 +158,13 @@ export const Stepper = (stepperProps: StepperProps) => { setFormState(current => ({ ...current, ...formData })); }; + const backLabel = + configurations?.buttonLabels?.backButtonText ?? backButtonText; + const createLabel = + configurations?.buttonLabels?.createButtonText ?? createButtonText; + const reviewLabel = + configurations?.buttonLabels?.reviewButtonText ?? reviewButtonText; + return ( <> {isValidating && } @@ -167,7 +175,7 @@ export const Stepper = (stepperProps: StepperProps) => { ))} - Review + ${reviewLabel}
@@ -191,7 +199,7 @@ export const Stepper = (stepperProps: StepperProps) => { className={styles.backButton} disabled={activeStep < 1 || isValidating} > - Back + {backLabel}
@@ -212,7 +220,7 @@ export const Stepper = (stepperProps: StepperProps) => { className={styles.backButton} disabled={activeStep < 1} > - Back + {configurations?.buttonLabels?.backButtonText ?? backButtonText} diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts index 5fbac20db7..738be10279 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts @@ -42,7 +42,7 @@ export const useTemplateSchema = ( manifest: TemplateParameterSchema, ): { steps: ParsedTemplateSchema[]; - configurations: TemplateConfigurationsV1beta3; + configurations?: TemplateConfigurationsV1beta3; } => { const featureFlags = useApi(featureFlagsApiRef); const steps = manifest.steps.map(({ title, description, schema }) => ({ From 4db0d9903c659967f9b4503003ec4ef8e293d28f Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 14:47:46 +0200 Subject: [PATCH 007/131] Make it possible to define control buttons text (Back, Create, Review) per template Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder-common/api-report.md | 10 +++++++++ .../src/TemplateEntityV1beta3.ts | 22 ++++++++++++++++++- plugins/scaffolder-react/alpha-api-report.md | 3 +++ plugins/scaffolder-react/api-report.md | 2 ++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index 6113c72659..73289bcc47 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -44,6 +44,15 @@ export interface TaskStep { name: string; } +// @public +export interface TemplateConfigurationsV1beta3 extends JsonObject { + buttonLabels?: { + backButtonText?: string; + createButtonText?: string; + reviewButtonText?: string; + }; +} + // @public export interface TemplateEntityStepV1beta3 extends JsonObject { // (undocumented) @@ -66,6 +75,7 @@ export interface TemplateEntityV1beta3 extends Entity { kind: 'Template'; spec: { type: string; + configurations?: TemplateConfigurationsV1beta3; parameters?: TemplateParametersV1beta3 | TemplateParametersV1beta3[]; steps: Array; output?: { diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index 96edd44595..c610886ac1 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -46,6 +46,9 @@ export interface TemplateEntityV1beta3 extends Entity { */ type: string; + /** + * Template specific configurations. + */ configurations?: TemplateConfigurationsV1beta3; /** @@ -70,10 +73,27 @@ export interface TemplateEntityV1beta3 extends Entity { }; } -export interface TemplateConfigurationsV1beta3 { +/** + * The configuration of the template. + * + * @public + */ +export interface TemplateConfigurationsV1beta3 extends JsonObject { + /** + * Overrides default buttons' text + */ buttonLabels?: { + /** + * The text for the button which leads to the previous template page + */ backButtonText?: string; + /** + * The text for the button which starts the execution of the template + */ createButtonText?: string; + /** + * The text for the button which opens template's review/summary + */ reviewButtonText?: string; }; } diff --git a/plugins/scaffolder-react/alpha-api-report.md b/plugins/scaffolder-react/alpha-api-report.md index 11bb2c10c4..3c9a4df26b 100644 --- a/plugins/scaffolder-react/alpha-api-report.md +++ b/plugins/scaffolder-react/alpha-api-report.md @@ -25,6 +25,7 @@ import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; import { ScaffolderTaskOutput } from '@backstage/plugin-scaffolder-react'; import { SetStateAction } from 'react'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; +import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; import { UIOptionsType } from '@rjsf/utils'; @@ -183,6 +184,7 @@ export type StepperProps = { onCreate: (values: Record) => Promise; components?: { ReviewStateComponent?: (props: ReviewStateProps) => JSX.Element; + backButtonText?: ReactNode; createButtonText?: ReactNode; reviewButtonText?: ReactNode; }; @@ -303,6 +305,7 @@ export const useTemplateParameterSchema: (templateRef: string) => { // @alpha export const useTemplateSchema: (manifest: TemplateParameterSchema) => { steps: ParsedTemplateSchema[]; + configurations?: TemplateConfigurationsV1beta3 | undefined; }; // @alpha (undocumented) diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md index da95e6746e..5df7aa3b85 100644 --- a/plugins/scaffolder-react/api-report.md +++ b/plugins/scaffolder-react/api-report.md @@ -19,6 +19,7 @@ import { PropsWithChildren } from 'react'; import { default as React_2 } from 'react'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; +import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; // @public export type Action = { @@ -317,6 +318,7 @@ export type TaskStream = { export type TemplateParameterSchema = { title: string; description?: string; + configurations?: TemplateConfigurationsV1beta3; steps: Array<{ title: string; description?: string; From 6bb8457bd20ee98f23e4c2a484de90c7c0c37fe8 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 14:55:48 +0200 Subject: [PATCH 008/131] wip Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder/src/api.test.ts | 92 ------------------------------ 1 file changed, 92 deletions(-) diff --git a/plugins/scaffolder/src/api.test.ts b/plugins/scaffolder/src/api.test.ts index e10363b61f..edd27ba8f0 100644 --- a/plugins/scaffolder/src/api.test.ts +++ b/plugins/scaffolder/src/api.test.ts @@ -332,98 +332,6 @@ describe('api', () => { }); }); - describe('getTask', () => { - it('should return the task enriched with timestamps', async () => { - const taskId = 'e4e4cb25-e743-4b79-8572-87e9d35aa998'; - server.use( - rest.get(`${mockBaseUrl}/v2/tasks/:taskId`, (_req, res, ctx) => { - return res( - ctx.json({ - createdAt: '2023-10-16T08:21:32.038Z', - id: taskId, - lastHeartbeatAt: '2023-10-16T08:21:54.304Z', - spec: { - apiVersion: 'scaffolder.backstage.io/v1beta3', - steps: [ - { - action: 'fetch:template', - id: 'fetch', - }, - { - action: 'debug:wait', - id: 'mock-step-1', - }, - { - action: 'debug:wait', - id: 'mock-step-2', - }, - ], - templateInfo: { - entityRef: 'template:default/docs-long-running-template', - }, - }, - } as SerializedTask), - ); - }), - rest.get(`${mockBaseUrl}/v2/tasks/:taskId/events`, (_req, res, ctx) => { - return res( - ctx.json([ - { - createdAt: '2023-10-16T08:21:32.062Z', - body: {}, - id: 109, - taskId, - type: 'log', - }, - { - body: { stepId: 'fetch' }, - createdAt: '2023-10-16T08:21:32.062Z', - id: 110, - taskId, - type: 'log', - }, - { - body: { stepId: 'fetch' }, - createdAt: '2023-10-16T08:21:33.062Z', - id: 111, - taskId, - type: 'log', - }, - { - body: { stepId: 'fetch' }, - createdAt: '2023-10-16T08:21:34.062Z', - id: 112, - taskId, - type: 'log', - }, - { - body: { stepId: 'mock-step-1' }, - createdAt: '2023-10-16T08:21:37.062Z', - id: 120, - taskId, - type: 'log', - }, - ] as SerializedTaskEvent[]), - ); - }), - ); - - const task = await apiClient.getTask(taskId); - - const getStep = (stepId: string) => - task.spec.steps.find( - step => step.id === stepId, - ) as unknown as ScaffolderStep; - - expect(getStep('fetch').startedAt).toBe('2023-10-16T08:21:32.062Z'); - expect(getStep('fetch').endedAt).toBe('2023-10-16T08:21:34.062Z'); - expect(getStep('mock-step-1').startedAt).toBe('2023-10-16T08:21:37.062Z'); - expect(getStep('mock-step-1').endedAt).toBe('2023-10-16T08:21:37.062Z'); - expect(getStep('mock-step-2').startedAt).toBeUndefined(); - expect(getStep('mock-step-2').endedAt).toBeUndefined(); - }); - }); - describe('listTasks', () => { it('should list all tasks', async () => { server.use( From 76d07da66a930593c336f74c1b9a2e4e36f9a3c2 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 15:00:46 +0200 Subject: [PATCH 009/131] wip Signed-off-by: Bogdan Nechyporenko --- .changeset/hungry-coats-judge.md | 5 --- .changeset/tidy-planets-trade.md | 6 +++ plugins/scaffolder/src/api.test.ts | 5 --- plugins/scaffolder/src/api.ts | 61 +++--------------------------- 4 files changed, 11 insertions(+), 66 deletions(-) delete mode 100644 .changeset/hungry-coats-judge.md create mode 100644 .changeset/tidy-planets-trade.md diff --git a/.changeset/hungry-coats-judge.md b/.changeset/hungry-coats-judge.md deleted file mode 100644 index 7e5b634237..0000000000 --- a/.changeset/hungry-coats-judge.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Preserve time execution for a non-running task diff --git a/.changeset/tidy-planets-trade.md b/.changeset/tidy-planets-trade.md new file mode 100644 index 0000000000..a25179b222 --- /dev/null +++ b/.changeset/tidy-planets-trade.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-common': patch +'@backstage/plugin-scaffolder-react': patch +--- + +Make it possible to define control buttons text (Back, Create, Review) per template diff --git a/plugins/scaffolder/src/api.test.ts b/plugins/scaffolder/src/api.test.ts index edd27ba8f0..b9b1881066 100644 --- a/plugins/scaffolder/src/api.test.ts +++ b/plugins/scaffolder/src/api.test.ts @@ -21,11 +21,6 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { ScaffolderClient } from './api'; import { EventSourcePolyfill } from 'event-source-polyfill'; -import { - SerializedTask, - SerializedTaskEvent, -} from '@backstage/plugin-scaffolder-node'; -import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; const MockedEventSource = EventSourcePolyfill as jest.MockedClass< typeof EventSourcePolyfill diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 6aa7fac780..c67a5c944e 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -38,13 +38,10 @@ import { ScaffolderDryRunOptions, ScaffolderDryRunResponse, TemplateParameterSchema, - ScaffolderStep, } from '@backstage/plugin-scaffolder-react'; -import { TaskStep } from '@backstage/plugin-scaffolder-common'; import queryString from 'qs'; import { EventSourcePolyfill } from 'event-source-polyfill'; -import { SerializedTaskEvent } from '@backstage/plugin-scaffolder-node'; /** * An API to interact with the scaffolder backend. @@ -173,62 +170,14 @@ export class ScaffolderClient implements ScaffolderApi { async getTask(taskId: string): Promise { const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder'); - const taskUrl = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}`; + const url = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}`; - const taskEventsUrl = `${baseUrl}/v2/tasks/${encodeURIComponent( - taskId, - )}/events`; - - const taskResponse = await this.fetchApi.fetch(taskUrl); - if (!taskResponse.ok) { - throw await ResponseError.fromResponse(taskResponse); + const response = await this.fetchApi.fetch(url); + if (!response.ok) { + throw await ResponseError.fromResponse(response); } - const taskEventsResponse = await this.fetchApi.fetch(taskEventsUrl); - if (!taskEventsResponse.ok) { - throw await ResponseError.fromResponse(taskEventsResponse); - } - - const task = (await taskResponse.json()) as ScaffolderTask; - const taskEvents = - (await taskEventsResponse.json()) as SerializedTaskEvent[]; - - const stepIdToTimestamps = taskEvents - .filter(event => event.type === 'log') - .reduce((acc, event) => { - const stepId = event.body.stepId as string; - if (stepId) { - acc.set(stepId, [...(acc.get(stepId) ?? []), event.createdAt]); - } - return acc; - }, new Map()); - - const toStartedAt = (stepId: string) => { - const timestamps = stepIdToTimestamps.get(stepId); - return timestamps ? timestamps[0] : undefined; - }; - - const toEndedAt = (stepId: string) => { - const timestamps = stepIdToTimestamps.get(stepId); - return timestamps ? timestamps[timestamps.length - 1] : undefined; - }; - - const enrichedTask = { - ...task, - spec: { - ...task.spec, - steps: task.spec.steps.map( - step => - ({ - ...step, - startedAt: toStartedAt(step.id), - endedAt: toEndedAt(step.id), - } as TaskStep & ScaffolderStep), - ), - }, - }; - - return enrichedTask as ScaffolderTask; + return await response.json(); } streamLogs(options: ScaffolderStreamLogsOptions): Observable { From e694775034ee47f07343f64d7f2bba81a0991093 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 15:04:29 +0200 Subject: [PATCH 010/131] wip Signed-off-by: Bogdan Nechyporenko --- .changeset/tidy-planets-trade.md | 1 + plugins/scaffolder/package.json | 1 - yarn.lock | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.changeset/tidy-planets-trade.md b/.changeset/tidy-planets-trade.md index a25179b222..49c1643e55 100644 --- a/.changeset/tidy-planets-trade.md +++ b/.changeset/tidy-planets-trade.md @@ -1,4 +1,5 @@ --- +'@backstage/plugin-scaffolder-backend': patch '@backstage/plugin-scaffolder-common': patch '@backstage/plugin-scaffolder-react': patch --- diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 7766669411..68066a5a79 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -58,7 +58,6 @@ "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-permission-react": "workspace:^", "@backstage/plugin-scaffolder-common": "workspace:^", - "@backstage/plugin-scaffolder-node": "workspace:^", "@backstage/plugin-scaffolder-react": "workspace:^", "@backstage/theme": "workspace:^", "@backstage/types": "workspace:^", diff --git a/yarn.lock b/yarn.lock index e7cd435d9b..2533a51f32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8975,7 +8975,6 @@ __metadata: "@backstage/plugin-catalog-react": "workspace:^" "@backstage/plugin-permission-react": "workspace:^" "@backstage/plugin-scaffolder-common": "workspace:^" - "@backstage/plugin-scaffolder-node": "workspace:^" "@backstage/plugin-scaffolder-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" From 84e61831a9647a924b5032394daf2e5dc21da2a4 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 16 Oct 2023 15:30:11 +0200 Subject: [PATCH 011/131] wip Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder-backend/api-report.md | 4 ++-- plugins/scaffolder-node/api-report.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 1b0930eaee..ba7576b1bb 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -741,8 +741,8 @@ export function createRouter(options: RouterOptions): Promise; export const createTemplateAction: < TInputParams extends JsonObject = JsonObject, TOutputParams extends JsonObject = JsonObject, - TInputSchema extends Schema | ZodType = {}, - TOutputSchema extends Schema | ZodType = {}, + TInputSchema extends ZodType | Schema = {}, + TOutputSchema extends ZodType | Schema = {}, TActionInput extends JsonObject = TInputSchema extends ZodType< any, any, diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md index 0c97fb2e40..52ce3c8d13 100644 --- a/plugins/scaffolder-node/api-report.md +++ b/plugins/scaffolder-node/api-report.md @@ -53,8 +53,8 @@ export type ActionContext< export const createTemplateAction: < TInputParams extends JsonObject = JsonObject, TOutputParams extends JsonObject = JsonObject, - TInputSchema extends Schema | z.ZodType = {}, - TOutputSchema extends Schema | z.ZodType = {}, + TInputSchema extends z.ZodType | Schema = {}, + TOutputSchema extends z.ZodType | Schema = {}, TActionInput extends JsonObject = TInputSchema extends z.ZodType< any, any, From 39aaeda5ce6cb843b0fc78c2170ab942a2870da5 Mon Sep 17 00:00:00 2001 From: Phil Kuang Date: Mon, 16 Oct 2023 18:18:09 -0400 Subject: [PATCH 012/131] feat(catalog): move setting location analyzers to a new analysis extension Signed-off-by: Phil Kuang --- .changeset/blue-bags-warn.md | 2 +- plugins/catalog-backend/api-report.md | 12 ++++--- plugins/catalog-backend/src/deprecated.ts | 12 +++++++ .../catalog-backend/src/ingestion/index.ts | 8 ----- .../src/service/CatalogPlugin.ts | 35 +++++++++++++------ plugins/catalog-node/alpha-api-report.md | 15 +++++--- plugins/catalog-node/src/alpha.ts | 2 ++ plugins/catalog-node/src/extensions.ts | 20 +++++++++-- 8 files changed, 75 insertions(+), 31 deletions(-) diff --git a/.changeset/blue-bags-warn.md b/.changeset/blue-bags-warn.md index 9d74aa3320..734910f848 100644 --- a/.changeset/blue-bags-warn.md +++ b/.changeset/blue-bags-warn.md @@ -4,4 +4,4 @@ '@backstage/plugin-catalog-backend-module-github': patch --- -Support adding location analyzers in catalog processing extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` +Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index d9c241e99c..1aed0ea8b0 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -10,7 +10,7 @@ import { AnalyzeLocationExistingEntity as AnalyzeLocationExistingEntity_2 } from import { AnalyzeLocationGenerateEntity as AnalyzeLocationGenerateEntity_2 } from '@backstage/plugin-catalog-common'; import { AnalyzeLocationRequest as AnalyzeLocationRequest_2 } from '@backstage/plugin-catalog-common'; import { AnalyzeLocationResponse as AnalyzeLocationResponse_2 } from '@backstage/plugin-catalog-common'; -import { AnalyzeOptions } from '@backstage/plugin-catalog-node'; +import { AnalyzeOptions as AnalyzeOptions_2 } from '@backstage/plugin-catalog-node'; import { CatalogApi } from '@backstage/catalog-client'; import type { CatalogCollatorEntityTransformer as CatalogCollatorEntityTransformer_2 } from '@backstage/plugin-search-backend-module-catalog'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; @@ -51,7 +51,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { Router } from 'express'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; +import { ScmLocationAnalyzer as ScmLocationAnalyzer_2 } from '@backstage/plugin-catalog-node'; import { TokenManager } from '@backstage/backend-common'; import { UrlReader } from '@backstage/backend-common'; import { Validators } from '@backstage/catalog-model'; @@ -71,7 +71,8 @@ export type AnalyzeLocationRequest = AnalyzeLocationRequest_2; // @public @deprecated (undocumented) export type AnalyzeLocationResponse = AnalyzeLocationResponse_2; -export { AnalyzeOptions }; +// @public @deprecated (undocumented) +export type AnalyzeOptions = AnalyzeOptions_2; // @public (undocumented) export class AnnotateLocationEntityProcessor implements CatalogProcessor_2 { @@ -132,7 +133,7 @@ export class CatalogBuilder { ...providers: Array> ): CatalogBuilder; addLocationAnalyzers( - ...analyzers: Array> + ...analyzers: Array> ): CatalogBuilder; addPermissionRules( ...permissionRules: Array< @@ -466,7 +467,8 @@ export const processingResult: Readonly<{ readonly refresh: (key: string) => CatalogProcessorResult_2; }>; -export { ScmLocationAnalyzer }; +// @public @deprecated (undocumented) +export type ScmLocationAnalyzer = ScmLocationAnalyzer_2; // @public (undocumented) export class UrlReaderProcessor implements CatalogProcessor_2 { diff --git a/plugins/catalog-backend/src/deprecated.ts b/plugins/catalog-backend/src/deprecated.ts index c92ec719b7..f3c199cbd3 100644 --- a/plugins/catalog-backend/src/deprecated.ts +++ b/plugins/catalog-backend/src/deprecated.ts @@ -33,6 +33,8 @@ import { type EntityProvider as _EntityProvider, type EntityProviderConnection as _EntityProviderConnection, type EntityProviderMutation as _EntityProviderMutation, + type AnalyzeOptions as _AnalyzeOptions, + type ScmLocationAnalyzer as _ScmLocationAnalyzer, } from '@backstage/plugin-catalog-node'; import { type LocationSpec as _LocationSpec } from '@backstage/plugin-catalog-common'; @@ -141,3 +143,13 @@ export type EntityProviderMutation = _EntityProviderMutation; * @deprecated use the same type from `@backstage/plugin-catalog-common` instead */ export type LocationSpec = _LocationSpec; +/** + * @public + * @deprecated import from `@backstage/plugin-catalog-node` instead + */ +export type AnalyzeOptions = _AnalyzeOptions; +/** + * @public + * @deprecated import from `@backstage/plugin-catalog-node` instead + */ +export type ScmLocationAnalyzer = _ScmLocationAnalyzer; diff --git a/plugins/catalog-backend/src/ingestion/index.ts b/plugins/catalog-backend/src/ingestion/index.ts index 86a8179d8d..c97d029b5c 100644 --- a/plugins/catalog-backend/src/ingestion/index.ts +++ b/plugins/catalog-backend/src/ingestion/index.ts @@ -22,11 +22,3 @@ export type { AnalyzeLocationResponse, LocationAnalyzer, } from './types'; - -/** - * @deprecated use the same type from `@backstage/plugin-catalog-node` instead - */ -export type { - AnalyzeOptions, - ScmLocationAnalyzer, -} from '@backstage/plugin-catalog-node'; diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index d112429fc4..1957ba816d 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -19,6 +19,8 @@ import { } from '@backstage/backend-plugin-api'; import { CatalogBuilder } from './CatalogBuilder'; import { + CatalogAnalysisExtensionPoint, + catalogAnalysisExtensionPoint, CatalogProcessingExtensionPoint, catalogProcessingExtensionPoint, } from '@backstage/plugin-catalog-node/alpha'; @@ -30,11 +32,12 @@ import { import { loggerToWinstonLogger } from '@backstage/backend-common'; import { PlaceholderResolver } from '../modules'; -class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { +class CatalogProcessingExtensionPointImpl + implements CatalogProcessingExtensionPoint +{ #processors = new Array(); #entityProviders = new Array(); #placeholderResolvers: Record = {}; - #locationAnalyzers = new Array(); addProcessor( ...processors: Array> @@ -56,12 +59,6 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { this.#placeholderResolvers[key] = resolver; } - addLocationAnalyzers( - ...analyzers: Array> - ): void { - this.#locationAnalyzers.push(...analyzers.flat()); - } - get processors() { return this.#processors; } @@ -73,6 +70,18 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { get placeholderResolvers() { return this.#placeholderResolvers; } +} + +class CatalogAnalysisExtensionPointImpl + implements CatalogAnalysisExtensionPoint +{ + #locationAnalyzers = new Array(); + + addLocationAnalyzers( + ...analyzers: Array> + ): void { + this.#locationAnalyzers.push(...analyzers.flat()); + } get locationAnalyzers() { return this.#locationAnalyzers; @@ -86,13 +95,19 @@ class CatalogExtensionPointImpl implements CatalogProcessingExtensionPoint { export const catalogPlugin = createBackendPlugin({ pluginId: 'catalog', register(env) { - const processingExtensions = new CatalogExtensionPointImpl(); + const processingExtensions = new CatalogProcessingExtensionPointImpl(); // plugins depending on this API will be initialized before this plugins init method is executed. env.registerExtensionPoint( catalogProcessingExtensionPoint, processingExtensions, ); + const analysisExtensions = new CatalogAnalysisExtensionPointImpl(); + env.registerExtensionPoint( + catalogAnalysisExtensionPoint, + analysisExtensions, + ); + env.registerInit({ deps: { logger: coreServices.logger, @@ -128,7 +143,7 @@ export const catalogPlugin = createBackendPlugin({ Object.entries(processingExtensions.placeholderResolvers).forEach( ([key, resolver]) => builder.setPlaceholderResolver(key, resolver), ); - builder.addLocationAnalyzers(...processingExtensions.locationAnalyzers); + builder.addLocationAnalyzers(...analysisExtensions.locationAnalyzers); const { processingEngine, router } = await builder.build(); diff --git a/plugins/catalog-node/alpha-api-report.md b/plugins/catalog-node/alpha-api-report.md index f3de6a8b33..754129f4a4 100644 --- a/plugins/catalog-node/alpha-api-report.md +++ b/plugins/catalog-node/alpha-api-report.md @@ -11,6 +11,17 @@ import { PlaceholderResolver } from '@backstage/plugin-catalog-node'; import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node'; import { ServiceRef } from '@backstage/backend-plugin-api'; +// @alpha (undocumented) +export interface CatalogAnalysisExtensionPoint { + // (undocumented) + addLocationAnalyzers( + ...analyzers: Array> + ): void; +} + +// @alpha (undocumented) +export const catalogAnalysisExtensionPoint: ExtensionPoint; + // @alpha (undocumented) export interface CatalogProcessingExtensionPoint { // (undocumented) @@ -18,10 +29,6 @@ export interface CatalogProcessingExtensionPoint { ...providers: Array> ): void; // (undocumented) - addLocationAnalyzers( - ...analyzers: Array> - ): void; - // (undocumented) addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; // (undocumented) addProcessor( diff --git a/plugins/catalog-node/src/alpha.ts b/plugins/catalog-node/src/alpha.ts index 4fb07bbc25..cec1a0eedb 100644 --- a/plugins/catalog-node/src/alpha.ts +++ b/plugins/catalog-node/src/alpha.ts @@ -17,3 +17,5 @@ export { catalogServiceRef } from './catalogService'; export type { CatalogProcessingExtensionPoint } from './extensions'; export { catalogProcessingExtensionPoint } from './extensions'; +export type { CatalogAnalysisExtensionPoint } from './extensions'; +export { catalogAnalysisExtensionPoint } from './extensions'; diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 4e8f7127f1..0351c574f2 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -32,9 +32,6 @@ export interface CatalogProcessingExtensionPoint { ...providers: Array> ): void; addPlaceholderResolver(key: string, resolver: PlaceholderResolver): void; - addLocationAnalyzers( - ...analyzers: Array> - ): void; } /** @@ -44,3 +41,20 @@ export const catalogProcessingExtensionPoint = createExtensionPoint({ id: 'catalog.processing', }); + +/** + * @alpha + */ +export interface CatalogAnalysisExtensionPoint { + addLocationAnalyzers( + ...analyzers: Array> + ): void; +} + +/** + * @alpha + */ +export const catalogAnalysisExtensionPoint = + createExtensionPoint({ + id: 'catalog.analysis', + }); From c814a3fbdd39c9eaae313033ea148466b37b87a7 Mon Sep 17 00:00:00 2001 From: John Kriter Date: Wed, 18 Oct 2023 14:24:21 -0600 Subject: [PATCH 013/131] Update locations.md The purpose of this change is to highlight the style of API access token required to enable the Bitbucket Cloud integration as it was not previously clear. The existing error will not distinguish between an Atlassian Account key(which wont work) and a Bitbucket App Password(which will. Signed-off-by: John Kriter --- docs/integrations/bitbucketCloud/locations.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/integrations/bitbucketCloud/locations.md b/docs/integrations/bitbucketCloud/locations.md index b886a49346..e7666efb54 100644 --- a/docs/integrations/bitbucketCloud/locations.md +++ b/docs/integrations/bitbucketCloud/locations.md @@ -25,6 +25,8 @@ integrations: > Note: A public Bitbucket Cloud provider is added automatically at startup for > convenience, so you only need to list it if you want to supply credentials. +> Note: The credential used for this is type [App Password](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/). An Atlassian Account API key will not work + Directly under the `bitbucketCloud` key is a list of provider configurations, where you can list the Bitbucket Cloud providers you want to fetch data from. In the case of Bitbucket Cloud, you will have up to one entry. From 76bad23a8c577cae48d7bd31136e8e522b0626a9 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Wed, 18 Oct 2023 23:13:31 +0100 Subject: [PATCH 014/131] Microsoft authentication doc clafications * Add API Permissions to the app registration setup * Encouraged re-use of an existing app registration over creating a new one. * Moved the `Adding the provider to the Backstage front end` higher up so it's not so easily missed Updated the microsoft authentication document to include details on adding API Permissions. At more relaxed companies, these permissiosn will be silently added to this list the first time they're requested, however in more locked down companies, a directory admin will need to consent to these permissions before users can use them. Also slighlty reworked the docs to encourate re-using any existing app registration. This includes renaming the `AUTH_MICROSOFT_*` variables to match the `AZURE_*` ones used throughout other azure integrations. Signed-off-by: Alex Crome --- docs/auth/microsoft/permissions.png | Bin 0 -> 104621 bytes docs/auth/microsoft/provider.md | 59 +++++++++++++++++----------- 2 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 docs/auth/microsoft/permissions.png diff --git a/docs/auth/microsoft/permissions.png b/docs/auth/microsoft/permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea2e3bd8906fdf0bff338b3a74bf16f03a0bff6 GIT binary patch literal 104621 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

PWUp84=R03`EW6MmNh^MCwnEX|*SId6*A#Kn9 z_PFrpUF4~F5e9~|K0gt1hE(aVx*3l49)+dHr)-c%2KOahAlP0nsUmeo1?kgMn zULYApDt`?KWw!0x%F{O!DZ^kX)CHMmv`c@k^ljALn{C^8>~}aRYjM7BGI@|*8Cz{T zQ>{5MFsWE~5o0fW>YAGP!byn`azUniR#&xHHL&^n;7sH;xdXpjaWP|;d%4DbjSB;G z-N&=G=2Bw=Nd0hPRogaD(bZ!z)dBIXK_XP)J}{Bz$|l9ZmPPw%dJWczPlQ`ATo>`2ti;9VV z-DTBgJ;>`y5x@|n%e~0igeAE)E0dv66-c*Iq^EUpalU+52$}EBZDIc{8)Xa~VGxI1 zyvFL}%A9`P<AX7U7_3@RaEQ{S&uO-+sNbDEZ~^#{)X#poblRXKo}3=8brmQOYIs;#!fU`4;KRF$4^;v4 z^m;F|uJt)`#Co_uk0=5sr>AxN^9TSdr2InR&!hV0Wd^8W9E)R`DIW0%g%rlk$Q&ce zzmJhT`!V3V!)_SUeqz1Z=anLWxJ`xKzzGt`01h_EE0$(ON-(}t|JO6`1RQs6ya69; z(!km@QiW9&W1kv{DjGxL^b?1eUp(giTklSd3(G1Uh(-E;ni7=%P0QflnG)pD?sy>6 zXKDUNWHdWos(y^qR0Yg@4O{tJtFndKe|y=RvrPAm!by{32NOdC(fnR~Ag1ils5njN zlm4eh!05{f;s7qwuzby5;gAa?a|-t$keT|QA~Oy+-_QY82*53v-bohqIk}nS8RXD( zq App Registrations](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) -4. Register an application - - Name: Backstage (or your custom app name) - - Redirect URI: Web > - `http://localhost:7007/api/auth/microsoft/handler/frame` -5. Navigate to **Certificates & secrets > New client secret** to create a secret +Go to [Azure Portal > App registrations](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) and find your existing app registration, or create a new one. +If you have an existing App Registration for Backstage, use that rather than create a new one. + +On your app registration's overview page, add a new `Web` platform configuration, with the configuration: + +- **Redirect URI**: `http://your-backstage.com/api/auth/microsoft/handler/frame` (for local dev, typically `http://localhost:7007/api/auth/microsoft/handler/frame`) +- **Front-channel logout Url**: blank +- **Implicit grant and hybrid flows**: All unchecked + +On the **API permissions** tab, click on `Add Permission`, then add the following `Delegated` permission for the `Microsoft Graph` API. + +- `email` +- `offline_access` +- `openid` +- `profile` +- `User.Read` + +Your company may require you to grant [admin consent](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview) for these permissions. +Even if your company doesn't require admin consent, you may wish to do so as it means users don't need to individually consent the first time they access backstage. +To grant admin consent, a directory admin will need to come to this page and click on the **Grant admin consent for COMPANY NAME** button. + +![App Registration Permissions](permissions.png) + +If you're using an existing app registration, and backstage already has a client secret, you can re-use that. +If not, go to the **Certificates & Secrets** page, then the **Client secrets** tab and create a new client secret. +Make a note of this value as you'll need it in the next section. ## Configuration @@ -35,9 +50,9 @@ auth: providers: microsoft: development: - clientId: ${AUTH_MICROSOFT_CLIENT_ID} - clientSecret: ${AUTH_MICROSOFT_CLIENT_SECRET} - tenantId: ${AUTH_MICROSOFT_TENANT_ID} + clientId: ${AZURE_CLIENT_ID} + clientSecret: ${AZURE_CLIENT_ID} + tenantId: ${AZURE_TENANT_ID} ``` The Microsoft provider is a structure with three configuration keys: @@ -46,6 +61,12 @@ The Microsoft provider is a structure with three configuration keys: - `clientSecret`: Secret, found on App Registration > Certificates & secrets - `tenantId`: Directory (tenant) ID, found on App Registration > Overview +## Adding the provider to the Backstage frontend + +To add the provider to the frontend, add the `microsoftAuthApiRef` reference and +`SignInPage` component as shown in +[Adding the provider to the sign-in page](../index.md#adding-the-provider-to-the-sign-in-page). + ## Outbound Network Access If your environment has restrictions on outgoing access (e.g. through @@ -58,9 +79,3 @@ hosts: in [this source code](https://github.com/seanfisher/passport-microsoft/blob/0456aa9bce05579c18e77f51330176eb26373658/lib/strategy.js#L93-L95)). If this host is unreachable, users may see an `Authentication failed, failed to fetch user profile` error when they attempt to log in. - -## Adding the provider to the Backstage frontend - -To add the provider to the frontend, add the `microsoftAuthApiRef` reference and -`SignInPage` component as shown in -[Adding the provider to the sign-in page](../index.md#adding-the-provider-to-the-sign-in-page). From 513a6db0c932879e09d439bf0a38c829948c7275 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 19 Oct 2023 09:53:24 +0100 Subject: [PATCH 015/131] Update docs/auth/microsoft/provider.md Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Signed-off-by: Alex Crome --- docs/auth/microsoft/provider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/auth/microsoft/provider.md b/docs/auth/microsoft/provider.md index f3fcc2efa2..69752dd2f1 100644 --- a/docs/auth/microsoft/provider.md +++ b/docs/auth/microsoft/provider.md @@ -17,7 +17,7 @@ If you have an existing App Registration for Backstage, use that rather than cre On your app registration's overview page, add a new `Web` platform configuration, with the configuration: -- **Redirect URI**: `http://your-backstage.com/api/auth/microsoft/handler/frame` (for local dev, typically `http://localhost:7007/api/auth/microsoft/handler/frame`) +- **Redirect URI**: `https://your-backstage.com/api/auth/microsoft/handler/frame` (for local dev, typically `http://localhost:7007/api/auth/microsoft/handler/frame`) - **Front-channel logout Url**: blank - **Implicit grant and hybrid flows**: All unchecked From 3979524c74185c3d03254c7bb2af0b5bfd70d0bc Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 19 Oct 2023 22:54:50 +0100 Subject: [PATCH 016/131] Add `domain_hint` support to Entra ID login When a user is logged in to multiple microsoft accounts, there can be be a little bit of friction in the Entra login process as users will be asked to select the account to login with. Scenarios in which a user may have multiple microsoft accounts 1. Someone logged in to your work Entra ID account, and a personal microsoft account 2. A consultant who has an Entra ID account at both their employer, as well as the company they're contracted out to. 3. A user has a regular account, as well as one or more high priviliged accounts. When a domain hint is provided, Entra will filter out all the accounts which don't belong to the tenant specified on the `domain_hint`. In many cases, this will filter to a single account, avoiding the need to select an account at all (e.g. scenario 1 & 2). This won't always happen (e.g. scenario 3). Additionally in the case a tenant has been configured to federate authentication elsewhere (e.g. to an on premise AD FS), setting the domain hint means entra can send the user straight to the federated authentication soruce, removing further steps If backstage is allowign authentication from multiple tenants, this field should be left blank. For more details, see https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/home-realm-discovery-policy 99% of the time, this value should be the same as the tenantId, so we could get rid of hte domain hint, and set it to the same value as the tenant id automatically. We'd need to provide a config option (e.g. `isMultiTenant: true`) to opt out of this. For those edge cases, this would be a breaking change. I decided to go with specifying the `domain_hint` seperatly for now just in case my assumptions are wrong and there are more cases wher ehte `domain_hint` will get in the way. We can always make this the default behaviour later on. Signed-off-by: Alex Crome --- .changeset/gentle-pumpkins-carry.md | 16 +++++ docs/auth/microsoft/provider.md | 7 ++- .../config.d.ts | 1 + .../src/authenticator.ts | 13 +++- .../src/module.test.ts | 61 ++++++++++++++++++- 5 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 .changeset/gentle-pumpkins-carry.md diff --git a/.changeset/gentle-pumpkins-carry.md b/.changeset/gentle-pumpkins-carry.md new file mode 100644 index 0000000000..22abd16798 --- /dev/null +++ b/.changeset/gentle-pumpkins-carry.md @@ -0,0 +1,16 @@ +--- +'@backstage/plugin-auth-backend-module-microsoft-provider': minor +--- + +Added support for specifying a `domain_hint` on Microsoft authentication provider configuration. +This should typically be set to the same value as your `tenantId`. +If you allow users from multiple tenants to authenticate, then leave this blank. + +```yaml +auth: + providers: + microsoft: + development: + #... + domainHint: ${AZURE_TENANT_ID} +``` diff --git a/docs/auth/microsoft/provider.md b/docs/auth/microsoft/provider.md index 583139cff1..2051a7aa0b 100644 --- a/docs/auth/microsoft/provider.md +++ b/docs/auth/microsoft/provider.md @@ -38,13 +38,18 @@ auth: clientId: ${AUTH_MICROSOFT_CLIENT_ID} clientSecret: ${AUTH_MICROSOFT_CLIENT_SECRET} tenantId: ${AUTH_MICROSOFT_TENANT_ID} + domainHint: ${AZURE_TENANT_ID} ``` -The Microsoft provider is a structure with three configuration keys: +The Microsoft provider is a structure with three mandatory configuration keys: - `clientId`: Application (client) ID, found on App Registration > Overview - `clientSecret`: Secret, found on App Registration > Certificates & secrets - `tenantId`: Directory (tenant) ID, found on App Registration > Overview +- `domainHint` (optional): Typically the same as `tenantId`. + Leave blank if your app registration is multi tenant. + When specified, this reduces login friction for users with accounts in multiple tenants by automatically filtering away accounts from other tenants. + For more details, see [Home Realm Discovery](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/home-realm-discovery-policy) ## Outbound Network Access diff --git a/plugins/auth-backend-module-microsoft-provider/config.d.ts b/plugins/auth-backend-module-microsoft-provider/config.d.ts index 5f1fa958e5..ee1e45b720 100644 --- a/plugins/auth-backend-module-microsoft-provider/config.d.ts +++ b/plugins/auth-backend-module-microsoft-provider/config.d.ts @@ -26,6 +26,7 @@ export interface Config { */ tenantId: string; clientSecret: string; + domainHint?: string; callbackUrl?: string; }; }; diff --git a/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts index ba1d75adf8..edf985b0f2 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts @@ -22,6 +22,8 @@ import { PassportProfile, } from '@backstage/plugin-auth-node'; +let domainHint: string | undefined = undefined; + /** @public */ export const microsoftAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: @@ -30,6 +32,7 @@ export const microsoftAuthenticator = createOAuthAuthenticator({ const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); const tenantId = config.getString('tenantId'); + domainHint = config.getOptionalString('domainHint'); return PassportOAuthAuthenticatorHelper.from( new MicrosoftStrategy( @@ -58,9 +61,15 @@ export const microsoftAuthenticator = createOAuthAuthenticator({ }, async start(input, helper) { - return helper.start(input, { + const options: Record = { accessType: 'offline', - }); + }; + + if (domainHint !== undefined) { + options.domain_hint = domainHint; + } + + return helper.start(input, options); }, async authenticate(input, helper) { diff --git a/plugins/auth-backend-module-microsoft-provider/src/module.test.ts b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts index 2cfedc5d5e..21f9a7e845 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/module.test.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts @@ -21,7 +21,7 @@ import request from 'supertest'; import { authModuleMicrosoftProvider } from './module'; describe('authModuleMicrosoftProvider', () => { - it('should start', async () => { + it('should start without domain hint', async () => { const { server } = await startTestBackend({ features: [ authPlugin, @@ -77,4 +77,63 @@ describe('authModuleMicrosoftProvider', () => { nonce: decodeURIComponent(nonceCookie.value), }); }); + + it('should start with domain hint', async () => { + const { server } = await startTestBackend({ + features: [ + authPlugin, + authModuleMicrosoftProvider, + mockServices.rootConfig.factory({ + data: { + app: { + baseUrl: 'http://localhost:3000', + }, + auth: { + providers: { + microsoft: { + development: { + clientId: 'another-client-id', + clientSecret: 'another-client-secret', + tenantId: 'another-tenant-id', + domainHint: 'somedomain', + }, + }, + }, + }, + }, + }), + ], + }); + + const agent = request.agent(server); + + const res = await agent.get('/api/auth/microsoft/start?env=development'); + + expect(res.status).toEqual(302); + + const nonceCookie = agent.jar.getCookie('microsoft-nonce', { + domain: 'localhost', + path: '/api/auth/microsoft/handler', + script: false, + secure: false, + }); + expect(nonceCookie).toBeDefined(); + + const startUrl = new URL(res.get('location')); + expect(startUrl.origin).toBe('https://login.microsoftonline.com'); + expect(startUrl.pathname).toBe('/another-tenant-id/oauth2/v2.0/authorize'); + expect(Object.fromEntries(startUrl.searchParams)).toEqual({ + response_type: 'code', + scope: 'user.read', + client_id: 'another-client-id', + redirect_uri: `http://localhost:${server.port()}/api/auth/microsoft/handler/frame`, + state: expect.any(String), + domain_hint: 'somedomain', + }); + + expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ + env: 'development', + nonce: decodeURIComponent(nonceCookie.value), + }); + }); }); From 243c655a68da03c094bed295d2e8072828b6df5e Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 19 Oct 2023 21:24:47 +0100 Subject: [PATCH 017/131] Updated `Azure Active Directory` to `Entra ID` Microsoft have renamed Azure Active Directory to Entra ID. https://learn.microsoft.com/en-us/azure/active-directory/fundamentals/new-name . This PR updates references to AAD to refer to Entra ID. * On each documentation page, I include `formerly Azure Active Directory` in the first non heading reference to Entra ID. This will help anyone unfaimiliar withthe name change, and will also mean the page continues to show up in search results if people search for the old name. * I didn't correct references in file names, as this would cause broken links. If we have a way of redirecting those to new urls I can look at doign that, but if not, I think it's better to leave existing links working. * There were a few references to AAD in release notes for older versions - I left these alone as the product naming was correct at the time of the release notes. * LDAP provider still has references to "Active Directory" as these reference to the on premise Active Directory, not Azure Active Directory Signed-off-by: Alex Crome --- .changeset/fresh-camels-give.md | 7 +++++ .github/vale/Vocab/Backstage/accept.txt | 1 + .../docs/tutorials/aws-alb-aad-oidc-auth.md | 26 +++++++++---------- docs/auth/microsoft/azure-easyauth.md | 6 ++--- docs/features/kubernetes/authentication.md | 4 +-- docs/integrations/azure/locations.md | 2 +- docs/integrations/azure/org.md | 10 +++---- packages/integration/src/azure/config.ts | 2 +- .../providers/azure-easyauth/provider.test.ts | 2 +- .../src/providers/azure-easyauth/provider.ts | 2 +- .../catalog-backend-module-msgraph/README.md | 2 +- .../src/microsoftGraph/client.ts | 2 +- 12 files changed, 37 insertions(+), 29 deletions(-) create mode 100644 .changeset/fresh-camels-give.md diff --git a/.changeset/fresh-camels-give.md b/.changeset/fresh-camels-give.md new file mode 100644 index 0000000000..723733e45e --- /dev/null +++ b/.changeset/fresh-camels-give.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +'@backstage/integration': patch +'@backstage/plugin-auth-backend': patch +--- + +JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 1a028d1387..0e86ef5fc4 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -456,3 +456,4 @@ Lightsail PR rebasing lookbehind +Entra \ No newline at end of file diff --git a/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md b/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md index b88efbb561..d742c33498 100644 --- a/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md +++ b/contrib/docs/tutorials/aws-alb-aad-oidc-auth.md @@ -1,18 +1,18 @@ -# Using AWS Application Load Balancer with Azure Active Directory to authenticate requests +# Using AWS Application Load Balancer with Entra ID to authenticate requests Backstage allows offloading the responsibility of authenticating users to an AWS Application Load Balancer (**ALB**), leveraging the authentication support on ALB. This tutorial shows how to use authentication on an ALB sitting in front of Backstage. -Azure Active Directory (**AAD**) is used as identity provider but any identity provider supporting OpenID Connect (OIDC) can be used. +Entra Id (formerly Azure Active Directory) is used as identity provider but any identity provider supporting OpenID Connect (OIDC) can be used. It is assumed an ALB is already serving traffic in front of a Backstage instance configured to serve the frontend app from the backend. ## Infrastructure setup -### AAD App +### Entra App Registration -The AAD App is used to execute the authentication flow, serve and refresh the identity token. +The App Registration is used to execute the authentication flow, serve and refresh the identity token. -Create the AAD App following the steps outlined in `Create a Microsoft App Registration in Microsoft Portal` section from the tutorial [Monorepo App Setup With Authentication][monorepo-app-setup-with-auth]. +Create the App following the steps outlined in `Create a Microsoft App Registration in Microsoft Portal` section from the tutorial [Monorepo App Setup With Authentication][monorepo-app-setup-with-auth]. Instead of `localhost` addresses, use the following values. @@ -27,12 +27,12 @@ In the AWS console, configure ALB Authentication: - Edit the ALB rule used to forward the traffic to Backstage and add a new `Authenticate` action. The action will have higher priority compared to the existing `Forward to`. - Select `OIDC` under `Authenticate` -- Set `Issuer` to `https://login.microsoftonline.com/{TENANT_ID}/v2.0`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App. -- Set `Authorization endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App. -- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App. +- Set `Issuer` to `https://login.microsoftonline.com/{TENANT_ID}/v2.0`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration. +- Set `Authorization endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration. +- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the App Registration. - Set `User info endpoint` to `https://graph.microsoft.com/oidc/userinfo` -- Set `Client ID` to the AAD App `Application (client) Id` -- Set `Client secret` to the AAD APP `client secret` +- Set `Client ID` to the App Registration `Application (client) Id` +- Set `Client secret` to the App Registration `client secret` Use the following advanced settings: @@ -41,7 +41,7 @@ Use the following advanced settings: - `Scope` = `openid profile offline_access` - `Action on unauthenticated request` = `Autenticate (client reattempt)` -Once you've saved the action, you should see an authentication flow be triggered against AAD when visiting Backstage address at `https://backstage.yourdomain.com`. The flow will not complete successfully as the Backstage app isn't yet configured properly. +Once you've saved the action, you should see an authentication flow be triggered against Entra ID when visiting Backstage address at `https://backstage.yourdomain.com`. The flow will not complete successfully as the Backstage app isn't yet configured properly. ## Backstage changes @@ -215,11 +215,11 @@ auth: region: ``` -Replace `` with the value of `Directory (tenant) ID` of the AAD App and `` with the AWS region identifier where the ALB is deployed (for example: `eu-central-1`). +Replace `` with the value of `Directory (tenant) ID` of the App Registration and `` with the AWS region identifier where the ALB is deployed (for example: `eu-central-1`). ## Conclusion -Once it's deployed, after going through the AAD authentication flow, Backstage should display the AAD user details. +Once it's deployed, after going through the Entra ID authentication flow, Backstage should display the Entra user details. diff --git a/docs/auth/microsoft/azure-easyauth.md b/docs/auth/microsoft/azure-easyauth.md index 6d53189922..07a3923da1 100644 --- a/docs/auth/microsoft/azure-easyauth.md +++ b/docs/auth/microsoft/azure-easyauth.md @@ -5,7 +5,7 @@ sidebar_label: Azure Easy Auth description: Adding Azure's EasyAuth Proxy as an authentication provider in Backstage --- -The Backstage `core-plugin-api` package comes with a Microsoft authentication provider that can authenticate users using Azure Active Directory for PaaS service hosted in Azure that support Easy Auth, such as Azure App Services. +The Backstage `core-plugin-api` package comes with a Microsoft authentication provider that can authenticate users using Microsoft Entra ID (formerly Azure Active Directory) for PaaS service hosted in Azure that support Easy Auth, such as Azure App Services. ## Backstage Changes @@ -101,11 +101,11 @@ const app = createApp({ ## Azure Configuration -How to configure azure depends on the service you're enable AAD auth on the app service. +How to configure azure depends on the Azure service you're using to host Backstage. ### Azure App Services -To use EasyAuth with App Services, turn on Active Directory authentication +To use EasyAuth with App Services, turn on Entra ID (formerly Azure Active Directory) authentication You must also enable the token store. The following example shows how to do this via a bicep template: diff --git a/docs/features/kubernetes/authentication.md b/docs/features/kubernetes/authentication.md index f30521189f..e0cddefbcf 100644 --- a/docs/features/kubernetes/authentication.md +++ b/docs/features/kubernetes/authentication.md @@ -11,7 +11,7 @@ add custom providers there if needed. These providers are configured so your Kubernetes plugin can locate and access the clusters you have access to, some of them have special requirements in the third party in -question, like Azure's Managed AAD subscription or Azure RBAC support active on the cluster. +question, like Microsoft Entra ID (formerly Azure Active Directory) subscription or Azure RBAC support active on the cluster. The providers currently available are divided into server side and client side. @@ -78,7 +78,7 @@ You get both, the cluster `url` and `caData` directly from the AWS console by go ### Azure The Azure server side authentication provider works by authenticating on the server with -the Azure CLI, please note that [Azure AD Authentication][1] is a requirement and has to +the Azure CLI, please note that [Microsoft Entra authentication][1] is a requirement and has to be enabled in your AKS cluster, then follow these steps: - [Install the Azure CLI][2] in the environment where the backstage application will run. diff --git a/docs/integrations/azure/locations.md b/docs/integrations/azure/locations.md index 7553df4081..b59c4149e0 100644 --- a/docs/integrations/azure/locations.md +++ b/docs/integrations/azure/locations.md @@ -89,6 +89,6 @@ The `credentials` element is a structure with these elements: > Note: > > - You cannot use a service principal or managed identity for Azure DevOps Server (on-premises) organizations -> - You can only use a service principal or managed identity for Azure AD backed Azure DevOps organizations +> - You can only use a service principal or managed identity for Microsoft Entra ID (formerly Azure Active Directory) backed Azure DevOps organizations > - You can only specify one credential per host without any organizations specified > - The personal access token should just be provided as the raw token generated by Azure DevOps using the format `raw_token` with no base64 encoding. Formatting and base64'ing is handled by dependent libraries handling the Azure DevOps API diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md index 8b7bd3c5b8..370678d9f9 100644 --- a/docs/integrations/azure/org.md +++ b/docs/integrations/azure/org.md @@ -1,13 +1,13 @@ --- id: org -title: Microsoft Azure Active Directory Organizational Data +title: Microsoft Entra tenantal Data sidebar_label: Org Data # prettier-ignore -description: Importing users and groups from Microsoft Azure Active Directory into Backstage +description: Importing users and groups from Microsoft Entra ID into Backstage --- The Backstage catalog can be set up to ingest organizational data - users and -teams - directly from a tenant in Microsoft Azure Active Directory via the +teams - directly from a tenant in Microsoft Entra ID via the Microsoft Graph API. ## Installation @@ -205,7 +205,7 @@ export async function myGroupTransformer( annotations: {}, }, spec: { - type: 'aad', + type: 'Microsoft Entra ID', children: [], }, }; @@ -219,7 +219,7 @@ export async function myUserTransformer( const backstageUser = await defaultUserTransformer(graphUser, userPhoto); if (backstageUser) { - backstageUser.metadata.description = 'Loaded from Azure Active Directory'; + backstageUser.metadata.description = 'Loaded from Microsoft Entra ID'; } return backstageUser; diff --git a/packages/integration/src/azure/config.ts b/packages/integration/src/azure/config.ts index 98704ba570..5c16394484 100644 --- a/packages/integration/src/azure/config.ts +++ b/packages/integration/src/azure/config.ts @@ -90,7 +90,7 @@ export type AzureCredentialBase = { export type AzureClientSecretCredential = AzureCredentialBase & { kind: 'ClientSecret'; /** - * The Azure Active Directory tenant + * The Entra ID tenant */ tenantId: string; /** diff --git a/plugins/auth-backend/src/providers/azure-easyauth/provider.test.ts b/plugins/auth-backend/src/providers/azure-easyauth/provider.test.ts index b521ddeb10..1b7c51263c 100644 --- a/plugins/auth-backend/src/providers/azure-easyauth/provider.test.ts +++ b/plugins/auth-backend/src/providers/azure-easyauth/provider.test.ts @@ -256,7 +256,7 @@ describe('easyAuth factory', () => { }); expect(() => factory({} as any)).toThrow( - 'Authentication provider is not Azure Active Directory', + 'Authentication provider is not Entra ID', ); }); diff --git a/plugins/auth-backend/src/providers/azure-easyauth/provider.ts b/plugins/auth-backend/src/providers/azure-easyauth/provider.ts index 7da069f6ae..ca8cacf892 100644 --- a/plugins/auth-backend/src/providers/azure-easyauth/provider.ts +++ b/plugins/auth-backend/src/providers/azure-easyauth/provider.ts @@ -185,7 +185,7 @@ function validateAppServiceConfiguration(env: NodeJS.ProcessEnv) { if ( env.WEBSITE_AUTH_DEFAULT_PROVIDER?.toLowerCase() !== 'azureactivedirectory' ) { - throw new Error('Authentication provider is not Azure Active Directory'); + throw new Error('Authentication provider is not Entra ID'); } if (process.env.WEBSITE_AUTH_TOKEN_STORE?.toLowerCase() !== 'true') { throw new Error('Token Store is not enabled'); diff --git a/plugins/catalog-backend-module-msgraph/README.md b/plugins/catalog-backend-module-msgraph/README.md index 6f8c95b667..b70134cba3 100644 --- a/plugins/catalog-backend-module-msgraph/README.md +++ b/plugins/catalog-backend-module-msgraph/README.md @@ -2,7 +2,7 @@ This is an extension module to the `plugin-catalog-backend` plugin, providing a `MicrosoftGraphOrgEntityProvider` that can be used to ingest organization data from the Microsoft Graph API. -This provider is useful if you want to import users and groups from Azure Active Directory or Office 365. +This provider is useful if you want to import users and groups from Entra Id (formerly Azure Active Directory) or Office 365. ## Getting Started diff --git a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts index 4acf7c726e..f1ccc44a99 100644 --- a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts +++ b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts @@ -69,7 +69,7 @@ export type GroupMember = /** * A HTTP Client that communicates with Microsoft Graph API. - * Simplify Authentication and API calls to get `User` and `Group` from Azure Active Directory + * Simplify Authentication and API calls to get `User` and `Group` from Microsoft Graph * * Uses `msal-node` for authentication * From 48a61bfdcaad49dce966bff132a770bbb8b95829 Mon Sep 17 00:00:00 2001 From: zcmander Date: Fri, 20 Oct 2023 10:56:58 +0300 Subject: [PATCH 018/131] techdocs: fix buildLogTransport-related memory leak Signed-off-by: zcmander --- .changeset/late-forks-fetch.md | 5 +++++ plugins/techdocs-backend/src/service/DocsSynchronizer.ts | 8 +++++--- plugins/techdocs-backend/src/service/router.ts | 5 +---- 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 .changeset/late-forks-fetch.md diff --git a/.changeset/late-forks-fetch.md b/.changeset/late-forks-fetch.md new file mode 100644 index 0000000000..3ba15885e2 --- /dev/null +++ b/.changeset/late-forks-fetch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs-backend': patch +--- + +Fix potential memory leak by not creating a build log transport if not given via `RouterOptions`. diff --git a/plugins/techdocs-backend/src/service/DocsSynchronizer.ts b/plugins/techdocs-backend/src/service/DocsSynchronizer.ts index fad915b068..7859b55e3f 100644 --- a/plugins/techdocs-backend/src/service/DocsSynchronizer.ts +++ b/plugins/techdocs-backend/src/service/DocsSynchronizer.ts @@ -48,7 +48,7 @@ export type DocsSynchronizerSyncOpts = { export class DocsSynchronizer { private readonly publisher: PublisherBase; private readonly logger: winston.Logger; - private readonly buildLogTransport: winston.transport; + private readonly buildLogTransport?: winston.transport; private readonly config: Config; private readonly scmIntegrations: ScmIntegrationRegistry; private readonly cache: TechDocsCache | undefined; @@ -64,7 +64,7 @@ export class DocsSynchronizer { }: { publisher: PublisherBase; logger: winston.Logger; - buildLogTransport: winston.transport; + buildLogTransport?: winston.transport; config: Config; scmIntegrations: ScmIntegrationRegistry; cache: TechDocsCache | undefined; @@ -109,7 +109,9 @@ export class DocsSynchronizer { }); taskLogger.add(new winston.transports.Stream({ stream: logStream })); - taskLogger.add(this.buildLogTransport); + if (this.buildLogTransport) { + taskLogger.add(this.buildLogTransport); + } // check if the last update check was too recent if (!shouldCheckForUpdate(entity.metadata.uid!)) { diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index 855d8b02f4..23b857b746 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -39,7 +39,6 @@ import { DocsBuildStrategy, } from './DocsBuildStrategy'; import * as winston from 'winston'; -import { PassThrough } from 'stream'; /** * Required dependencies for running TechDocs in the "out-of-the-box" @@ -113,9 +112,7 @@ export async function createRouter( options.catalogClient ?? new CatalogClient({ discoveryApi: discovery }); const docsBuildStrategy = options.docsBuildStrategy ?? DefaultDocsBuildStrategy.fromConfig(config); - const buildLogTransport = - options.buildLogTransport ?? - new winston.transports.Stream({ stream: new PassThrough() }); + const buildLogTransport = options.buildLogTransport; // Entities are cached to optimize the /static/docs request path, which can be called many times // when loading a single techdocs page. From 5cdcf77a45119419286422a2c2339220db50d9ff Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 23 Oct 2023 11:05:30 +0200 Subject: [PATCH 019/131] Updated to a presentation Signed-off-by: Bogdan Nechyporenko --- .../scaffolder-backend/src/service/router.ts | 2 +- .../src/TemplateEntityV1beta3.ts | 8 ++++---- plugins/scaffolder-common/src/index.ts | 2 +- .../src/next/components/Stepper/Stepper.tsx | 17 +++++++++++++---- .../src/next/hooks/useTemplateSchema.ts | 6 +++--- plugins/scaffolder-react/src/types.ts | 4 ++-- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 2bf44cdfc6..f8bdb48e2b 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -365,7 +365,7 @@ export async function createRouter( const parameters = [template.spec.parameters ?? []].flat(); res.json({ title: template.metadata.title ?? template.metadata.name, - configurations: template.spec.configurations ?? {}, + presentation: template.spec.presentation ?? {}, description: template.metadata.description, 'ui:options': template.metadata['ui:options'], steps: parameters.map(schema => ({ diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index c610886ac1..23cc3ca3d8 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -47,9 +47,9 @@ export interface TemplateEntityV1beta3 extends Entity { type: string; /** - * Template specific configurations. + * Template specific configuration of the presentation layer. */ - configurations?: TemplateConfigurationsV1beta3; + presentation?: TemplatePresentationV1beta3; /** * This is a JSONSchema or an array of JSONSchema's which is used to render a form in the frontend @@ -74,11 +74,11 @@ export interface TemplateEntityV1beta3 extends Entity { } /** - * The configuration of the template. + * The presentation of the template. * * @public */ -export interface TemplateConfigurationsV1beta3 extends JsonObject { +export interface TemplatePresentationV1beta3 extends JsonObject { /** * Overrides default buttons' text */ diff --git a/plugins/scaffolder-common/src/index.ts b/plugins/scaffolder-common/src/index.ts index 851c6ac7e5..3300aebf46 100644 --- a/plugins/scaffolder-common/src/index.ts +++ b/plugins/scaffolder-common/src/index.ts @@ -27,7 +27,7 @@ export { isTemplateEntityV1beta3, } from './TemplateEntityV1beta3'; export type { - TemplateConfigurationsV1beta3, + TemplatePresentationV1beta3, TemplateEntityV1beta3, TemplateEntityStepV1beta3, TemplateParametersV1beta3, diff --git a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx index 1e43eba770..e52560e2a5 100644 --- a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx +++ b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx @@ -81,6 +81,7 @@ export type StepperProps = { components?: { ReviewStepComponent?: ComponentType; ReviewStateComponent?: (props: ReviewStateProps) => JSX.Element; + backButtonText?: ReactNode; createButtonText?: ReactNode; reviewButtonText?: ReactNode; }; @@ -96,11 +97,12 @@ export const Stepper = (stepperProps: StepperProps) => { const { ReviewStateComponent = ReviewState, ReviewStepComponent, + backButtonText = 'Back', createButtonText = 'Create', reviewButtonText = 'Review', } = components; const analytics = useAnalytics(); - const { steps } = useTemplateSchema(props.manifest); + const { presentation, steps } = useTemplateSchema(props.manifest); const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); const [isValidating, setIsValidating] = useState(false); @@ -173,6 +175,13 @@ export const Stepper = (stepperProps: StepperProps) => { setFormState(current => ({ ...current, ...formData })); }; + const backLabel = + presentation?.buttonLabels?.backButtonText ?? backButtonText; + const createLabel = + presentation?.buttonLabels?.createButtonText ?? createButtonText; + const reviewLabel = + presentation?.buttonLabels?.reviewButtonText ?? reviewButtonText; + return ( <> {isValidating && } @@ -208,7 +217,7 @@ export const Stepper = (stepperProps: StepperProps) => { className={styles.backButton} disabled={activeStep < 1 || isValidating} > - Back + {backLabel} @@ -246,7 +255,7 @@ export const Stepper = (stepperProps: StepperProps) => { color="primary" onClick={handleCreate} > - {createButtonText} + {createLabel} diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts index 738be10279..838f8b1c30 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { featureFlagsApiRef, useApi } from '@backstage/core-plugin-api'; -import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; +import { TemplatePresentationV1beta3 } from '@backstage/plugin-scaffolder-common'; import { JsonObject } from '@backstage/types'; import { UiSchema } from '@rjsf/utils'; import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; @@ -42,7 +42,7 @@ export const useTemplateSchema = ( manifest: TemplateParameterSchema, ): { steps: ParsedTemplateSchema[]; - configurations?: TemplateConfigurationsV1beta3; + presentation?: TemplatePresentationV1beta3; } => { const featureFlags = useApi(featureFlagsApiRef); const steps = manifest.steps.map(({ title, description, schema }) => ({ @@ -80,7 +80,7 @@ export const useTemplateSchema = ( })); return { - configurations: manifest.configurations, + presentation: manifest.presentation, steps: returningSteps, }; }; diff --git a/plugins/scaffolder-react/src/types.ts b/plugins/scaffolder-react/src/types.ts index f5c4cabc04..c1c26f32bb 100644 --- a/plugins/scaffolder-react/src/types.ts +++ b/plugins/scaffolder-react/src/types.ts @@ -16,7 +16,7 @@ import { JsonObject } from '@backstage/types'; -import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; +import { TemplatePresentationV1beta3 } from '@backstage/plugin-scaffolder-common'; /** * The shape of each entry of parameters which gets rendered @@ -27,7 +27,7 @@ import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-comm export type TemplateParameterSchema = { title: string; description?: string; - configurations?: TemplateConfigurationsV1beta3; + presentation?: TemplatePresentationV1beta3; steps: Array<{ title: string; description?: string; From d8d05f613c42c881e375881ee3dfddb91137d66e Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Mon, 23 Oct 2023 11:47:27 +0200 Subject: [PATCH 020/131] Updated to a presentation Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder-backend/src/service/router.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index f8bdb48e2b..194120f0f9 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -363,9 +363,12 @@ export async function createRouter( const template = await authorizeTemplate(req.params, token); const parameters = [template.spec.parameters ?? []].flat(); + + const presentation = template.spec.presentation; + res.json({ title: template.metadata.title ?? template.metadata.name, - presentation: template.spec.presentation ?? {}, + ...(presentation ? { presentation } : {}), description: template.metadata.description, 'ui:options': template.metadata['ui:options'], steps: parameters.map(schema => ({ From b52f576f48e27fe9042a71caad6e272089b1e1da Mon Sep 17 00:00:00 2001 From: ivgo Date: Mon, 23 Oct 2023 14:23:07 +0200 Subject: [PATCH 021/131] Make sure types are exported Signed-off-by: ivgo --- .changeset/old-coats-doubt.md | 8 +++++ plugins/kubernetes-react/api-report.md | 35 +++++++++++++++++++ plugins/kubernetes-react/src/index.ts | 2 ++ plugins/kubernetes-react/src/types/types.ts | 6 ++++ .../utils/clusterLinks/formatClusterLink.ts | 8 +++-- .../utils/clusterLinks/formatters/index.ts | 3 ++ .../src/utils/clusterLinks/index.ts | 5 ++- 7 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 .changeset/old-coats-doubt.md diff --git a/.changeset/old-coats-doubt.md b/.changeset/old-coats-doubt.md new file mode 100644 index 0000000000..2b98acbd87 --- /dev/null +++ b/.changeset/old-coats-doubt.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-kubernetes-react': patch +--- + +Make sure types exported by other `kubernetes` plugins in the past are exported again after the creation +of the react package. + +Some types have been moved to this new package but the export was missing, so they were not available anymore for developers. diff --git a/plugins/kubernetes-react/api-report.md b/plugins/kubernetes-react/api-report.md index bb8e4923f6..ca1df34b40 100644 --- a/plugins/kubernetes-react/api-report.md +++ b/plugins/kubernetes-react/api-report.md @@ -22,6 +22,7 @@ import { IContainerStatus } from 'kubernetes-models/v1'; import { IdentityApi } from '@backstage/core-plugin-api'; import { IIoK8sApimachineryPkgApisMetaV1ObjectMeta } from '@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta'; import { IObjectMeta } from '@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta'; +import type { JsonObject } from '@backstage/types'; import { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common'; import { OAuthApi } from '@backstage/core-plugin-api'; import { ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common'; @@ -59,6 +60,26 @@ export const Cluster: ({ // @public (undocumented) export const ClusterContext: React_2.Context; +// @public (undocumented) +export type ClusterLinksFormatter = ( + options: ClusterLinksFormatterOptions, +) => URL; + +// @public (undocumented) +export interface ClusterLinksFormatterOptions { + // (undocumented) + dashboardParameters?: JsonObject; + // (undocumented) + dashboardUrl?: URL; + // (undocumented) + kind: string; + // (undocumented) + object: any; +} + +// @public (undocumented) +export const clusterLinksFormatters: Record; + // @public export type ClusterProps = { clusterObjects: ClusterObjects; @@ -207,6 +228,20 @@ export interface FixDialogProps { pod: Pod_2; } +// @public (undocumented) +export function formatClusterLink( + options: FormatClusterLinkOptions, +): string | undefined; + +// @public (undocumented) +export type FormatClusterLinkOptions = { + dashboardUrl?: string; + dashboardApp?: string; + dashboardParameters?: JsonObject; + object: any; + kind: string; +}; + // @public (undocumented) export class GoogleKubernetesAuthProvider implements KubernetesAuthProvider { constructor(authProvider: OAuthApi); diff --git a/plugins/kubernetes-react/src/index.ts b/plugins/kubernetes-react/src/index.ts index e5c84eab79..4fb8614091 100644 --- a/plugins/kubernetes-react/src/index.ts +++ b/plugins/kubernetes-react/src/index.ts @@ -27,3 +27,5 @@ export * from './hooks'; export * from './api'; export * from './kubernetes-auth-provider'; export * from './components'; +export * from './utils'; +export * from './types'; diff --git a/plugins/kubernetes-react/src/types/types.ts b/plugins/kubernetes-react/src/types/types.ts index 7efd1ef3ff..ad8df040ac 100644 --- a/plugins/kubernetes-react/src/types/types.ts +++ b/plugins/kubernetes-react/src/types/types.ts @@ -16,6 +16,9 @@ import type { JsonObject } from '@backstage/types'; +/** + * @public + */ export interface ClusterLinksFormatterOptions { dashboardUrl?: URL; dashboardParameters?: JsonObject; @@ -23,6 +26,9 @@ export interface ClusterLinksFormatterOptions { kind: string; } +/** + * @public + */ export type ClusterLinksFormatter = ( options: ClusterLinksFormatterOptions, ) => URL; diff --git a/plugins/kubernetes-react/src/utils/clusterLinks/formatClusterLink.ts b/plugins/kubernetes-react/src/utils/clusterLinks/formatClusterLink.ts index ae3bdb950f..8f7e43a121 100644 --- a/plugins/kubernetes-react/src/utils/clusterLinks/formatClusterLink.ts +++ b/plugins/kubernetes-react/src/utils/clusterLinks/formatClusterLink.ts @@ -17,7 +17,9 @@ import type { JsonObject } from '@backstage/types'; import { defaultFormatterName, clusterLinksFormatters } from './formatters'; -// @Deprecated use import { FormatClusterLinkOptions } from '@backstage/kubernetes-react' +/** + * @public + */ export type FormatClusterLinkOptions = { dashboardUrl?: string; dashboardApp?: string; @@ -26,7 +28,9 @@ export type FormatClusterLinkOptions = { kind: string; }; -// @Deprecated use import { formatClusterLink } from '@backstage/kubernetes-react' +/** + * @public + */ export function formatClusterLink(options: FormatClusterLinkOptions) { if (!options.dashboardUrl && !options.dashboardParameters) { return undefined; diff --git a/plugins/kubernetes-react/src/utils/clusterLinks/formatters/index.ts b/plugins/kubernetes-react/src/utils/clusterLinks/formatters/index.ts index a2dea97555..b75e45cc7f 100644 --- a/plugins/kubernetes-react/src/utils/clusterLinks/formatters/index.ts +++ b/plugins/kubernetes-react/src/utils/clusterLinks/formatters/index.ts @@ -21,6 +21,9 @@ import { aksFormatter } from './aks'; import { eksFormatter } from './eks'; import { gkeFormatter } from './gke'; +/** + * @public + */ export const clusterLinksFormatters: Record = { standard: standardFormatter, rancher: rancherFormatter, diff --git a/plugins/kubernetes-react/src/utils/clusterLinks/index.ts b/plugins/kubernetes-react/src/utils/clusterLinks/index.ts index 0a2a32cdbf..90a30e8277 100644 --- a/plugins/kubernetes-react/src/utils/clusterLinks/index.ts +++ b/plugins/kubernetes-react/src/utils/clusterLinks/index.ts @@ -14,5 +14,8 @@ * limitations under the License. */ -export { formatClusterLink } from './formatClusterLink'; +export { + formatClusterLink, + type FormatClusterLinkOptions, +} from './formatClusterLink'; export { clusterLinksFormatters } from './formatters'; From 26e4d916d594a70afbb07d86b3c25cb50d7d26a6 Mon Sep 17 00:00:00 2001 From: Federico Morreale Date: Wed, 11 Oct 2023 11:37:35 +0200 Subject: [PATCH 022/131] fix: title and description are now correctly displayed Signed-off-by: Federico Morreale --- .changeset/rude-penguins-press.md | 5 +++++ .../components/fields/RepoUrlPicker/RepoUrlPicker.tsx | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changeset/rude-penguins-press.md diff --git a/.changeset/rude-penguins-press.md b/.changeset/rude-penguins-press.md new file mode 100644 index 0000000000..967b04bc19 --- /dev/null +++ b/.changeset/rude-penguins-press.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Title and description in RepoUrlPicker are now correctly displayed. diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx index 57cebb3d96..29a2e86ea5 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx @@ -31,6 +31,7 @@ import { RepoUrlPickerProps } from './schema'; import { RepoUrlPickerState } from './types'; import useDebounce from 'react-use/lib/useDebounce'; import { useTemplateSecrets } from '@backstage/plugin-scaffolder-react'; +import { Box, Divider, Typography } from '@material-ui/core'; export { RepoUrlPickerSchema } from './schema'; @@ -41,7 +42,7 @@ export { RepoUrlPickerSchema } from './schema'; * @public */ export const RepoUrlPicker = (props: RepoUrlPickerProps) => { - const { uiSchema, onChange, rawErrors, formData } = props; + const { uiSchema, onChange, rawErrors, formData, schema } = props; const [state, setState] = useState( parseRepoPickerUrl(formData), ); @@ -157,9 +158,15 @@ export const RepoUrlPicker = (props: RepoUrlPickerProps) => { const hostType = (state.host && integrationApi.byHost(state.host)?.type) ?? null; - return ( <> + {schema.title && ( + + {schema.title} + + + )} + {schema.description &&

{schema.description}

} Date: Wed, 11 Oct 2023 11:56:45 +0200 Subject: [PATCH 023/131] fix: p tag to typography Signed-off-by: Federico Morreale --- .../src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx index 29a2e86ea5..80a07fdbd7 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx @@ -166,7 +166,9 @@ export const RepoUrlPicker = (props: RepoUrlPickerProps) => { )} - {schema.description &&

{schema.description}

} + {schema.description && ( + {schema.description} + )} Date: Wed, 18 Oct 2023 15:20:40 +0200 Subject: [PATCH 024/131] fix: responsive margin Signed-off-by: Federico Morreale --- .../src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx index 80a07fdbd7..7fc71d8338 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.tsx @@ -161,7 +161,7 @@ export const RepoUrlPicker = (props: RepoUrlPickerProps) => { return ( <> {schema.title && ( - + {schema.title} From 9ab1955dd8927cf3c4dcd3490fd5bb23296782d0 Mon Sep 17 00:00:00 2001 From: Federico Morreale Date: Tue, 24 Oct 2023 09:32:42 +0100 Subject: [PATCH 025/131] feat: add unit test Signed-off-by: Federico Morreale --- .../RepoUrlPicker/RepoUrlPicker.test.tsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx index da86e6e4b8..8cab279738 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx @@ -132,6 +132,35 @@ describe('RepoUrlPicker', () => { getByRole('option', { name: 'dev.azure.com' }), ).toBeInTheDocument(); }); + + it('should render properly with title and description', async () => { + const { getByText } = await renderInTestApp( + + +
+ + , + ); + + expect(getByText('test title')).toBeInTheDocument(); + expect(getByText('test description')).toBeInTheDocument(); + }); }); describe('requestUserCredentials', () => { From 2e51886bf725df28c489f4ab1b4b0926a7846257 Mon Sep 17 00:00:00 2001 From: Federico Morreale Date: Tue, 24 Oct 2023 09:41:01 +0100 Subject: [PATCH 026/131] fix: unit test Signed-off-by: Federico Morreale --- .../src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx index 8cab279738..d2d92867be 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx @@ -151,6 +151,7 @@ describe('RepoUrlPicker', () => { }} uiSchema={{ 'ui:field': 'RepoUrlPicker', + 'ui:options': { allowedHosts: ['dev.azure.com'] }, }} fields={{ RepoUrlPicker: RepoUrlPicker }} /> From 538f8af95d97df6020cf92d65abd9d8a9e128f8f Mon Sep 17 00:00:00 2001 From: Federico Morreale Date: Tue, 24 Oct 2023 11:14:40 +0100 Subject: [PATCH 027/131] fix: cast error and add validator Signed-off-by: Federico Morreale --- .../components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx index d2d92867be..fb0b478556 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPicker.test.tsx @@ -144,6 +144,7 @@ describe('RepoUrlPicker', () => { > { }} uiSchema={{ 'ui:field': 'RepoUrlPicker', - 'ui:options': { allowedHosts: ['dev.azure.com'] }, }} - fields={{ RepoUrlPicker: RepoUrlPicker }} + fields={{ + RepoUrlPicker: RepoUrlPicker as ScaffolderRJSFField, + }} /> , From 27b3963e03cb87073af18a3f74a71df2038da04d Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Tue, 24 Oct 2023 12:57:06 +0200 Subject: [PATCH 028/131] Fix for flaky SearchContext.test.tsx Signed-off-by: Bogdan Nechyporenko --- plugins/search-react/src/context/SearchContext.test.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/search-react/src/context/SearchContext.test.tsx b/plugins/search-react/src/context/SearchContext.test.tsx index 5aa217553f..f962bc1620 100644 --- a/plugins/search-react/src/context/SearchContext.test.tsx +++ b/plugins/search-react/src/context/SearchContext.test.tsx @@ -405,11 +405,10 @@ describe('SearchContext', () => { await waitFor(() => { expect(result.current).toEqual(expect.objectContaining(initialState)); + expect(result.current.fetchNextPage).toBeUndefined(); + expect(result.current.fetchPreviousPage).toBeDefined(); }); - expect(result.current.fetchNextPage).toBeUndefined(); - expect(result.current.fetchPreviousPage).toBeDefined(); - await act(async () => { result.current.fetchPreviousPage!(); }); From f1257394dacd2b56cd29af9fc78274ba4d562ed6 Mon Sep 17 00:00:00 2001 From: Bogdan Nechyporenko Date: Tue, 24 Oct 2023 12:57:39 +0200 Subject: [PATCH 029/131] Updated api reports Signed-off-by: Bogdan Nechyporenko --- plugins/scaffolder-common/api-report.md | 20 ++++++++++---------- plugins/scaffolder-react/alpha-api-report.md | 4 ++-- plugins/scaffolder-react/api-report.md | 2 ++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index 73289bcc47..8cfbd2aaac 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -44,15 +44,6 @@ export interface TaskStep { name: string; } -// @public -export interface TemplateConfigurationsV1beta3 extends JsonObject { - buttonLabels?: { - backButtonText?: string; - createButtonText?: string; - reviewButtonText?: string; - }; -} - // @public export interface TemplateEntityStepV1beta3 extends JsonObject { // (undocumented) @@ -75,7 +66,7 @@ export interface TemplateEntityV1beta3 extends Entity { kind: 'Template'; spec: { type: string; - configurations?: TemplateConfigurationsV1beta3; + presentation?: TemplatePresentationV1beta3; parameters?: TemplateParametersV1beta3 | TemplateParametersV1beta3[]; steps: Array; output?: { @@ -108,4 +99,13 @@ export interface TemplatePermissionsV1beta3 extends JsonObject { // (undocumented) tags?: string[]; } + +// @public +export interface TemplatePresentationV1beta3 extends JsonObject { + buttonLabels?: { + backButtonText?: string; + createButtonText?: string; + reviewButtonText?: string; + }; +} ``` diff --git a/plugins/scaffolder-react/alpha-api-report.md b/plugins/scaffolder-react/alpha-api-report.md index 282edf6457..3d9361bf18 100644 --- a/plugins/scaffolder-react/alpha-api-report.md +++ b/plugins/scaffolder-react/alpha-api-report.md @@ -30,10 +30,10 @@ import { ScaffolderStep } from '@backstage/plugin-scaffolder-react'; import { ScaffolderTaskOutput } from '@backstage/plugin-scaffolder-react'; import { SetStateAction } from 'react'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; -import { TemplateConfigurationsV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateGroupFilter } from '@backstage/plugin-scaffolder-react'; import { TemplateParameterSchema } from '@backstage/plugin-scaffolder-react'; +import { TemplatePresentationV1beta3 } from '@backstage/plugin-scaffolder-common'; import { UiSchema } from '@rjsf/utils'; // @alpha (undocumented) @@ -305,7 +305,7 @@ export const useTemplateParameterSchema: (templateRef: string) => { // @alpha export const useTemplateSchema: (manifest: TemplateParameterSchema) => { steps: ParsedTemplateSchema[]; - configurations?: TemplateConfigurationsV1beta3 | undefined; + presentation?: TemplatePresentationV1beta3 | undefined; }; // @alpha (undocumented) diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md index 6acc2f9812..8589078f1e 100644 --- a/plugins/scaffolder-react/api-report.md +++ b/plugins/scaffolder-react/api-report.md @@ -39,6 +39,7 @@ import { StrictRJSFSchema } from '@rjsf/utils'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { TaskStep } from '@backstage/plugin-scaffolder-common'; import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; +import { TemplatePresentationV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplatesType } from '@rjsf/utils'; import { UIOptionsType } from '@rjsf/utils'; import { UiSchema } from '@rjsf/utils'; @@ -482,6 +483,7 @@ export type TemplateGroupFilter = { export type TemplateParameterSchema = { title: string; description?: string; + presentation?: TemplatePresentationV1beta3; steps: Array<{ title: string; description?: string; From aa5f2439b83edef01658c99acefb280733da8a73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 14:04:37 +0000 Subject: [PATCH 030/131] fix(deps): update dependency @swc/core to v1.3.95 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- microsite/yarn.lock | 86 ++++++++++++++++++++++----------------------- storybook/yarn.lock | 86 ++++++++++++++++++++++----------------------- yarn.lock | 86 ++++++++++++++++++++++----------------------- 3 files changed, 129 insertions(+), 129 deletions(-) diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 8147655315..8d10a8c4ab 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -2701,90 +2701,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-arm64@npm:1.3.92" +"@swc/core-darwin-arm64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-arm64@npm:1.3.95" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-x64@npm:1.3.92" +"@swc/core-darwin-x64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-x64@npm:1.3.95" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.92" +"@swc/core-linux-arm-gnueabihf@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.95" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.92" +"@swc/core-linux-arm64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.92" +"@swc/core-linux-arm64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.92" +"@swc/core-linux-x64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-musl@npm:1.3.92" +"@swc/core-linux-x64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-musl@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.92" +"@swc/core-win32-arm64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.95" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.92" +"@swc/core-win32-ia32-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.95" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.92" +"@swc/core-win32-x64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.95" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.3.92 - resolution: "@swc/core@npm:1.3.92" + version: 1.3.95 + resolution: "@swc/core@npm:1.3.95" dependencies: - "@swc/core-darwin-arm64": 1.3.92 - "@swc/core-darwin-x64": 1.3.92 - "@swc/core-linux-arm-gnueabihf": 1.3.92 - "@swc/core-linux-arm64-gnu": 1.3.92 - "@swc/core-linux-arm64-musl": 1.3.92 - "@swc/core-linux-x64-gnu": 1.3.92 - "@swc/core-linux-x64-musl": 1.3.92 - "@swc/core-win32-arm64-msvc": 1.3.92 - "@swc/core-win32-ia32-msvc": 1.3.92 - "@swc/core-win32-x64-msvc": 1.3.92 + "@swc/core-darwin-arm64": 1.3.95 + "@swc/core-darwin-x64": 1.3.95 + "@swc/core-linux-arm-gnueabihf": 1.3.95 + "@swc/core-linux-arm64-gnu": 1.3.95 + "@swc/core-linux-arm64-musl": 1.3.95 + "@swc/core-linux-x64-gnu": 1.3.95 + "@swc/core-linux-x64-musl": 1.3.95 + "@swc/core-win32-arm64-msvc": 1.3.95 + "@swc/core-win32-ia32-msvc": 1.3.95 + "@swc/core-win32-x64-msvc": 1.3.95 "@swc/counter": ^0.1.1 "@swc/types": ^0.1.5 peerDependencies: @@ -2813,7 +2813,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 88c0c62ff790e896180862c341be8bae98baf0a5c5e87f2f04f49e14b8c4fba460d6b352618b4dda066c8ae6bf152cd843eab25837f38128175208b8c0635721 + checksum: 49856ad64fa16151f7f784956c8134060c5ed612c9b3fcb79e33676c77219f61fa3bb6b9e0dd15d78c7bff92cacc0c944d2b4e60849eb93caca917a8544b1c2c languageName: node linkType: hard diff --git a/storybook/yarn.lock b/storybook/yarn.lock index 00ec6908f0..05222a80fa 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -2840,90 +2840,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-arm64@npm:1.3.92" +"@swc/core-darwin-arm64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-arm64@npm:1.3.95" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-x64@npm:1.3.92" +"@swc/core-darwin-x64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-x64@npm:1.3.95" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.92" +"@swc/core-linux-arm-gnueabihf@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.95" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.92" +"@swc/core-linux-arm64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.92" +"@swc/core-linux-arm64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.92" +"@swc/core-linux-x64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-musl@npm:1.3.92" +"@swc/core-linux-x64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-musl@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.92" +"@swc/core-win32-arm64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.95" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.92" +"@swc/core-win32-ia32-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.95" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.92" +"@swc/core-win32-x64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.95" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.3.92 - resolution: "@swc/core@npm:1.3.92" + version: 1.3.95 + resolution: "@swc/core@npm:1.3.95" dependencies: - "@swc/core-darwin-arm64": 1.3.92 - "@swc/core-darwin-x64": 1.3.92 - "@swc/core-linux-arm-gnueabihf": 1.3.92 - "@swc/core-linux-arm64-gnu": 1.3.92 - "@swc/core-linux-arm64-musl": 1.3.92 - "@swc/core-linux-x64-gnu": 1.3.92 - "@swc/core-linux-x64-musl": 1.3.92 - "@swc/core-win32-arm64-msvc": 1.3.92 - "@swc/core-win32-ia32-msvc": 1.3.92 - "@swc/core-win32-x64-msvc": 1.3.92 + "@swc/core-darwin-arm64": 1.3.95 + "@swc/core-darwin-x64": 1.3.95 + "@swc/core-linux-arm-gnueabihf": 1.3.95 + "@swc/core-linux-arm64-gnu": 1.3.95 + "@swc/core-linux-arm64-musl": 1.3.95 + "@swc/core-linux-x64-gnu": 1.3.95 + "@swc/core-linux-x64-musl": 1.3.95 + "@swc/core-win32-arm64-msvc": 1.3.95 + "@swc/core-win32-ia32-msvc": 1.3.95 + "@swc/core-win32-x64-msvc": 1.3.95 "@swc/counter": ^0.1.1 "@swc/types": ^0.1.5 peerDependencies: @@ -2952,7 +2952,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 88c0c62ff790e896180862c341be8bae98baf0a5c5e87f2f04f49e14b8c4fba460d6b352618b4dda066c8ae6bf152cd843eab25837f38128175208b8c0635721 + checksum: 49856ad64fa16151f7f784956c8134060c5ed612c9b3fcb79e33676c77219f61fa3bb6b9e0dd15d78c7bff92cacc0c944d2b4e60849eb93caca917a8544b1c2c languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 2a463ed8bb..ad8f304bf1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17640,90 +17640,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-arm64@npm:1.3.92" +"@swc/core-darwin-arm64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-arm64@npm:1.3.95" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-darwin-x64@npm:1.3.92" +"@swc/core-darwin-x64@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-darwin-x64@npm:1.3.95" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.92" +"@swc/core-linux-arm-gnueabihf@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.95" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.92" +"@swc/core-linux-arm64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.92" +"@swc/core-linux-arm64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.95" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.92" +"@swc/core-linux-x64-gnu@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-linux-x64-musl@npm:1.3.92" +"@swc/core-linux-x64-musl@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-linux-x64-musl@npm:1.3.95" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.92" +"@swc/core-win32-arm64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.95" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.92" +"@swc/core-win32-ia32-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.95" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.92": - version: 1.3.92 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.92" +"@swc/core-win32-x64-msvc@npm:1.3.95": + version: 1.3.95 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.95" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.3.92 - resolution: "@swc/core@npm:1.3.92" + version: 1.3.95 + resolution: "@swc/core@npm:1.3.95" dependencies: - "@swc/core-darwin-arm64": 1.3.92 - "@swc/core-darwin-x64": 1.3.92 - "@swc/core-linux-arm-gnueabihf": 1.3.92 - "@swc/core-linux-arm64-gnu": 1.3.92 - "@swc/core-linux-arm64-musl": 1.3.92 - "@swc/core-linux-x64-gnu": 1.3.92 - "@swc/core-linux-x64-musl": 1.3.92 - "@swc/core-win32-arm64-msvc": 1.3.92 - "@swc/core-win32-ia32-msvc": 1.3.92 - "@swc/core-win32-x64-msvc": 1.3.92 + "@swc/core-darwin-arm64": 1.3.95 + "@swc/core-darwin-x64": 1.3.95 + "@swc/core-linux-arm-gnueabihf": 1.3.95 + "@swc/core-linux-arm64-gnu": 1.3.95 + "@swc/core-linux-arm64-musl": 1.3.95 + "@swc/core-linux-x64-gnu": 1.3.95 + "@swc/core-linux-x64-musl": 1.3.95 + "@swc/core-win32-arm64-msvc": 1.3.95 + "@swc/core-win32-ia32-msvc": 1.3.95 + "@swc/core-win32-x64-msvc": 1.3.95 "@swc/counter": ^0.1.1 "@swc/types": ^0.1.5 peerDependencies: @@ -17752,7 +17752,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 88c0c62ff790e896180862c341be8bae98baf0a5c5e87f2f04f49e14b8c4fba460d6b352618b4dda066c8ae6bf152cd843eab25837f38128175208b8c0635721 + checksum: 49856ad64fa16151f7f784956c8134060c5ed612c9b3fcb79e33676c77219f61fa3bb6b9e0dd15d78c7bff92cacc0c944d2b4e60849eb93caca917a8544b1c2c languageName: node linkType: hard From 0ac0e10822179a0185c70a5e63cd6d24b85beb3a Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Mon, 23 Oct 2023 14:21:29 -0400 Subject: [PATCH 031/131] Replaced GraphiQL in Api Docs with DocExplorer Signed-off-by: Taras Mankovski --- .changeset/beige-stingrays-tap.md | 5 ++ plugins/api-docs/package.json | 3 +- .../GraphQlDefinition.tsx | 32 +++++++-- yarn.lock | 70 ++----------------- 4 files changed, 36 insertions(+), 74 deletions(-) create mode 100644 .changeset/beige-stingrays-tap.md diff --git a/.changeset/beige-stingrays-tap.md b/.changeset/beige-stingrays-tap.md new file mode 100644 index 0000000000..ae7f2f709e --- /dev/null +++ b/.changeset/beige-stingrays-tap.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': minor +--- + +Replace GraphiQL playground with DocExplorer diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 182380b6f6..dd9f42c03a 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -40,11 +40,12 @@ "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/theme": "workspace:^", + "@graphiql/react": "^0.19.4", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", "@types/react": "^16.13.1 || ^17.0.0", - "graphiql": "^1.8.8", + "graphiql": "3.0.6", "graphql": "^16.0.0", "graphql-ws": "^5.4.1", "isomorphic-form-data": "^2.0.0", diff --git a/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinition.tsx b/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinition.tsx index d3fddf70cf..6ad8643111 100644 --- a/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinition.tsx +++ b/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinition.tsx @@ -16,7 +16,12 @@ import { BackstageTheme } from '@backstage/theme'; import { makeStyles } from '@material-ui/core/styles'; -import GraphiQL from 'graphiql'; +import { + DocExplorer, + EditorContextProvider, + ExplorerContextProvider, + SchemaContextProvider, +} from '@graphiql/react'; import 'graphiql/graphiql.css'; import { buildSchema } from 'graphql'; import React from 'react'; @@ -36,6 +41,9 @@ const useStyles = makeStyles(() => ({ minHeight: '600px', flex: '1 1 auto', }, + '.graphiql-sidebar': { + width: '100%', + }, }, }, })); @@ -51,12 +59,22 @@ export const GraphQlDefinition = ({ definition }: Props) => { return (
- Promise.resolve(null) as any} - schema={schema} - docExplorerOpen - defaultSecondaryEditorOpen={false} - /> + + Promise.resolve(null) as any} + > +
+
+
+ + + +
+
+
+
+
); diff --git a/yarn.lock b/yarn.lock index 2a463ed8bb..55db2f8992 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4767,6 +4767,7 @@ __metadata: "@backstage/plugin-catalog-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" + "@graphiql/react": ^0.19.4 "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 "@material-ui/lab": 4.0.0-alpha.61 @@ -4777,7 +4778,7 @@ __metadata: "@types/react": ^16.13.1 || ^17.0.0 "@types/swagger-ui-react": ^4.18.0 cross-fetch: ^3.1.5 - graphiql: ^1.8.8 + graphiql: 3.0.6 graphql: ^16.0.0 graphql-ws: ^5.4.1 isomorphic-form-data: ^2.0.0 @@ -11684,26 +11685,6 @@ __metadata: languageName: node linkType: hard -"@graphiql/react@npm:^0.10.0": - version: 0.10.0 - resolution: "@graphiql/react@npm:0.10.0" - dependencies: - "@graphiql/toolkit": ^0.6.1 - codemirror: ^5.65.3 - codemirror-graphql: ^1.3.2 - copy-to-clipboard: ^3.2.0 - escape-html: ^1.0.3 - graphql-language-service: ^5.0.6 - markdown-it: ^12.2.0 - set-value: ^4.1.0 - peerDependencies: - graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 1c473f6dbacba617ea6f9c272abbe22aa61643a0ce059835b40bfd368c211bccec806bca24600ba42cf356f02649f062622802cd8afba3bfdd5aae2783935e37 - languageName: node - linkType: hard - "@graphiql/react@npm:^0.19.4": version: 0.19.4 resolution: "@graphiql/react@npm:0.19.4" @@ -11731,19 +11712,6 @@ __metadata: languageName: node linkType: hard -"@graphiql/toolkit@npm:^0.6.1": - version: 0.6.1 - resolution: "@graphiql/toolkit@npm:0.6.1" - dependencies: - "@n1ru4l/push-pull-async-iterable-iterator": ^3.1.0 - meros: ^1.1.4 - peerDependencies: - graphql: ^15.5.0 || ^16.0.0 - graphql-ws: ">= 4.5.0" - checksum: c3701687f70a643441cc18253beeb2cf79c993f5be0d0d16210da456f0c6abde229b0ff79cc1cc63eccd98f306f918cb8d88f3ad54f0329c52879c9dec0d596c - languageName: node - linkType: hard - "@graphiql/toolkit@npm:^0.9.1": version: 0.9.1 resolution: "@graphiql/toolkit@npm:0.9.1" @@ -23459,19 +23427,6 @@ __metadata: languageName: node linkType: hard -"codemirror-graphql@npm:^1.3.2": - version: 1.3.2 - resolution: "codemirror-graphql@npm:1.3.2" - dependencies: - graphql-language-service: ^5.0.6 - peerDependencies: - "@codemirror/language": ^0.20.0 - codemirror: ^5.65.3 - graphql: ^15.5.0 || ^16.0.0 - checksum: d134953dc402c44d1a4572ef6f3f6654cac4611dd9f7fefddbc6f17805d3866e8c86d956b69efcec94fcbcaa1a4d0683561ee46ec4938ea311b1843a001fe5f1 - languageName: node - linkType: hard - "codemirror-graphql@npm:^2.0.10": version: 2.0.10 resolution: "codemirror-graphql@npm:2.0.10" @@ -29260,24 +29215,7 @@ __metadata: languageName: node linkType: hard -"graphiql@npm:^1.8.8": - version: 1.11.5 - resolution: "graphiql@npm:1.11.5" - dependencies: - "@graphiql/react": ^0.10.0 - "@graphiql/toolkit": ^0.6.1 - entities: ^2.0.0 - graphql-language-service: ^5.0.6 - markdown-it: ^12.2.0 - peerDependencies: - graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 0bad3d056ba1185aae1020277bb08a5ee75c352f8c659ca092f0cb4f2126a1c176015e7f58ff8fd5f8de8709a8bc3ff9d1b765ca9d2fcc412d67e23d45c862f6 - languageName: node - linkType: hard - -"graphiql@npm:^3.0.6": +"graphiql@npm:3.0.6, graphiql@npm:^3.0.6": version: 3.0.6 resolution: "graphiql@npm:3.0.6" dependencies: @@ -29336,7 +29274,7 @@ __metadata: languageName: node linkType: hard -"graphql-language-service@npm:5.2.0, graphql-language-service@npm:^5.0.6, graphql-language-service@npm:^5.2.0": +"graphql-language-service@npm:5.2.0, graphql-language-service@npm:^5.2.0": version: 5.2.0 resolution: "graphql-language-service@npm:5.2.0" dependencies: From 74c57762b2ecc9afafc4d35c801621776204f71e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 14:14:34 +0000 Subject: [PATCH 032/131] chore(deps): update actions/setup-node action to v3.8.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 6 +++--- .github/workflows/deploy_docker-image.yml | 2 +- .github/workflows/deploy_microsite.yml | 2 +- .github/workflows/deploy_nightly.yml | 2 +- .github/workflows/deploy_packages.yml | 4 ++-- .github/workflows/sync_code-formatting.yml | 2 +- .github/workflows/sync_release-manifest.yml | 2 +- .github/workflows/sync_snyk-github-issues.yml | 2 +- .github/workflows/uffizzi-build.yml | 2 +- .github/workflows/verify_accessibility.yml | 2 +- .github/workflows/verify_e2e-kubernetes.yml | 2 +- .github/workflows/verify_e2e-linux.yml | 2 +- .github/workflows/verify_e2e-windows.yml | 2 +- .github/workflows/verify_microsite.yml | 2 +- .github/workflows/verify_storybook.yml | 2 +- .github/workflows/verify_windows.yml | 2 +- 16 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e3ec626d7..fd9ec8a415 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth @@ -70,7 +70,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth @@ -201,7 +201,7 @@ jobs: run: git fetch origin master - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index 69776da2d9..8c54ebf23b 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -25,7 +25,7 @@ jobs: ref: v${{ github.event.client_payload.version }} - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml index f614db31ca..3b8d9a7a80 100644 --- a/.github/workflows/deploy_microsite.yml +++ b/.github/workflows/deploy_microsite.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js 18.x - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index 7184557e12..dc2155bcd1 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - name: use node.js 18.x - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 + uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3.8.2 with: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 32f4b139f2..10943ad7b4 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -63,7 +63,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth @@ -145,7 +145,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index 610ad323e2..90d1925a24 100644 --- a/.github/workflows/sync_code-formatting.yml +++ b/.github/workflows/sync_code-formatting.yml @@ -20,7 +20,7 @@ jobs: fetch-depth: 0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 46d5d5382a..bd7c42799b 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -13,7 +13,7 @@ jobs: egress-policy: audit # Setup node & install deps before checkout, keeping install quick - - uses: actions/setup-node@v3.8.1 + - uses: actions/setup-node@v3.8.2 with: node-version: 18.x - name: Install dependencies diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml index 2be954746b..d958eb3dc4 100644 --- a/.github/workflows/sync_snyk-github-issues.yml +++ b/.github/workflows/sync_snyk-github-issues.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js 18.x - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index 375c6bdcd2..2ce2984fff 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -28,7 +28,7 @@ jobs: uses: actions/checkout@v3.6.0 - name: setup-node - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: 18.x registry-url: https://registry.npmjs.org/ diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index f34f2f5506..9669483c1e 100644 --- a/.github/workflows/verify_accessibility.yml +++ b/.github/workflows/verify_accessibility.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: Use Node.js 18.x - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: 18.x - name: yarn install diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index ea77609614..a7f0f19d65 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 6b61053628..4655a175d4 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -52,7 +52,7 @@ jobs: git config --global user.name 'GitHub e2e user' - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 7ee5e596c5..0e1105e641 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -50,7 +50,7 @@ jobs: git config --global user.name 'GitHub e2e user' - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/verify_microsite.yml b/.github/workflows/verify_microsite.yml index f0705bedc7..6acaa4a781 100644 --- a/.github/workflows/verify_microsite.yml +++ b/.github/workflows/verify_microsite.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js 18.x - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: 18.x diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index fe481f9882..6f64d7c5a9 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -37,7 +37,7 @@ jobs: fetch-depth: 0 # Required to retrieve git history - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index f2c61938d8..c40e1c7bc7 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -36,7 +36,7 @@ jobs: - uses: actions/checkout@v3.6.0 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v3.8.2 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth From c1f357715cbbe2d7f1bb8e569540c9616e732e41 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 15:09:12 +0000 Subject: [PATCH 033/131] chore(deps): update actions/setup-python action to v4.7.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/verify_e2e-techdocs.yml | 2 +- .github/workflows/verify_e2e-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index 94f08a491f..de43a4f5ac 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -35,7 +35,7 @@ jobs: egress-policy: audit - uses: actions/checkout@v3.6.0 - - uses: actions/setup-python@v4.7.0 + - uses: actions/setup-python@v4.7.1 with: python-version: '3.9' diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 7ee5e596c5..7eba130ed8 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -56,7 +56,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: setup python - uses: actions/setup-python@v4.7.0 + uses: actions/setup-python@v4.7.1 with: python-version: '3.10' From 6c39010121679a50ee17b4697649cf020679a7ad Mon Sep 17 00:00:00 2001 From: David Festal Date: Tue, 24 Oct 2023 15:47:11 +0200 Subject: [PATCH 034/131] fix: CommonJSModuleLoader returning uncomplete list This fixes issue #20762 Signed-off-by: David Festal --- .../src/loader/CommonJSModuleLoader.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/backend-plugin-manager/src/loader/CommonJSModuleLoader.ts b/packages/backend-plugin-manager/src/loader/CommonJSModuleLoader.ts index dd64dc78f3..06a08117cd 100644 --- a/packages/backend-plugin-manager/src/loader/CommonJSModuleLoader.ts +++ b/packages/backend-plugin-manager/src/loader/CommonJSModuleLoader.ts @@ -24,8 +24,8 @@ export class CommonJSModuleLoader implements ModuleLoader { backstageRoot: string, dynamicPluginsPaths: string[], ): Promise { - const allowedNodeModulesPaths = [ - `${backstageRoot}/node_modules`, + const backstageRootNodeModulesPath = `${backstageRoot}/node_modules`; + const dynamicNodeModulesPaths = [ ...dynamicPluginsPaths.map(p => path.resolve(p, 'node_modules')), ]; const Module = require('module'); @@ -35,8 +35,12 @@ export class CommonJSModuleLoader implements ModuleLoader { if (!dynamicPluginsPaths.some(p => from.startsWith(p))) { return result; } - - const filtered = result.filter(p => allowedNodeModulesPaths.includes(p)); + const filtered = result.filter(nodeModulePath => { + return ( + nodeModulePath === backstageRootNodeModulesPath || + dynamicNodeModulesPaths.some(p => nodeModulePath.startsWith(p)) + ); + }); this.logger.debug( `Overriding node_modules search path for dynamic plugin ${from} to: ${filtered}`, ); From 88b673aa7652fee76fce52c973d5f23acbe11225 Mon Sep 17 00:00:00 2001 From: Phil Kuang Date: Tue, 24 Oct 2023 12:27:36 -0400 Subject: [PATCH 035/131] refactor(CatalogAnalysisExtensionPoint): update function signature Signed-off-by: Phil Kuang --- .changeset/blue-bags-warn.md | 1 - .changeset/unlucky-houses-end.md | 5 +++++ plugins/catalog-backend/src/service/CatalogPlugin.ts | 6 ++---- plugins/catalog-node/alpha-api-report.md | 4 +--- plugins/catalog-node/src/extensions.ts | 4 +--- 5 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 .changeset/unlucky-houses-end.md diff --git a/.changeset/blue-bags-warn.md b/.changeset/blue-bags-warn.md index 734910f848..17fa5e89d6 100644 --- a/.changeset/blue-bags-warn.md +++ b/.changeset/blue-bags-warn.md @@ -1,7 +1,6 @@ --- '@backstage/plugin-catalog-backend': minor '@backstage/plugin-catalog-node': minor -'@backstage/plugin-catalog-backend-module-github': patch --- Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` diff --git a/.changeset/unlucky-houses-end.md b/.changeset/unlucky-houses-end.md new file mode 100644 index 0000000000..48f5849002 --- /dev/null +++ b/.changeset/unlucky-houses-end.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Import `AnalyzeOptions` and `ScmLocationAnalyzer` types from `@backstage/plugin-catalog-node` diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index 1957ba816d..fa53ef510b 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -77,10 +77,8 @@ class CatalogAnalysisExtensionPointImpl { #locationAnalyzers = new Array(); - addLocationAnalyzers( - ...analyzers: Array> - ): void { - this.#locationAnalyzers.push(...analyzers.flat()); + addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void { + this.#locationAnalyzers.push(analyzer); } get locationAnalyzers() { diff --git a/plugins/catalog-node/alpha-api-report.md b/plugins/catalog-node/alpha-api-report.md index 754129f4a4..c4dc6b12e1 100644 --- a/plugins/catalog-node/alpha-api-report.md +++ b/plugins/catalog-node/alpha-api-report.md @@ -14,9 +14,7 @@ import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) export interface CatalogAnalysisExtensionPoint { // (undocumented) - addLocationAnalyzers( - ...analyzers: Array> - ): void; + addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; } // @alpha (undocumented) diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 0351c574f2..247ef142ad 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -46,9 +46,7 @@ export const catalogProcessingExtensionPoint = * @alpha */ export interface CatalogAnalysisExtensionPoint { - addLocationAnalyzers( - ...analyzers: Array> - ): void; + addLocationAnalyzer(analyzer: ScmLocationAnalyzer): void; } /** From 81efdd56abbd9d05710c7c8c2a05d36589fb7150 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 16:39:55 +0000 Subject: [PATCH 036/131] chore(deps): update dependency @types/archiver to v5.3.4 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 79972afd0b..74e8bb1262 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18102,11 +18102,11 @@ __metadata: linkType: hard "@types/archiver@npm:^5.1.0, @types/archiver@npm:^5.3.1": - version: 5.3.3 - resolution: "@types/archiver@npm:5.3.3" + version: 5.3.4 + resolution: "@types/archiver@npm:5.3.4" dependencies: "@types/readdir-glob": "*" - checksum: e660465ac9a622570ddbad86a306c7234c3272cb28eafe9c3ad7229f06e499dfadae9f0cb0caf41443318eea559b75ef662ea276ae64f19695e72018dae37ee7 + checksum: 4ef27b99091ada9b8f13017d5b9e6d42a439e35a7858b30e040c408e081d98d8db6307b0762500288b5da38cab9823c4756b6abae1fdd2658d42bfb09eb7c5fb languageName: node linkType: hard From 9ed0a6aff1d97faa1884d1869628d80d8132f2e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 25 Oct 2023 15:42:16 +0200 Subject: [PATCH 037/131] remove yarn 3 warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- docs/tutorials/yarn-migration.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/tutorials/yarn-migration.md b/docs/tutorials/yarn-migration.md index 9e041a5969..204829b093 100644 --- a/docs/tutorials/yarn-migration.md +++ b/docs/tutorials/yarn-migration.md @@ -4,8 +4,6 @@ title: Migration to Yarn 3 description: Guide for how to migrate a Backstage project to use Yarn 3 --- -> NOTE: We do not yet recommend all projects to migrate to Yarn 3. Only do so if you have specific reasons for it. - While Backstage projects created with `@backstage/create-app` use [Yarn 1](https://classic.yarnpkg.com/) by default, it is possible to switch them to instead use [Yarn 3](https://yarnpkg.com/). Tools like `yarn backstage-cli versions:bump` will still work, as they recognize both lockfile formats. From 507891226a1f5f44143c19adb8189c2330efbd02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 15:21:34 +0000 Subject: [PATCH 038/131] chore(deps): update dependency @types/d3-force to v3.0.7 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 1c7d335f57..758d8deaa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18435,9 +18435,9 @@ __metadata: linkType: hard "@types/d3-force@npm:^3.0.0": - version: 3.0.6 - resolution: "@types/d3-force@npm:3.0.6" - checksum: 092d7a4efc1bef06de4a087e1bdb609e21588429ba2ce978785bb13e1ed7371dd08692408379d9582e03ed945c6cf117dff3b3ed1dd2141d94aac9e12994498d + version: 3.0.7 + resolution: "@types/d3-force@npm:3.0.7" + checksum: fd846e5d79dabd8d375b68c64cd218b4867e229eb6cb584b302ed9b96105cb267300fee63b0cd762417c28168d0a64047b7e6eff2acc8b5c561fded74f86fa8c languageName: node linkType: hard From 8b4d44ed9d0b7a13d118c98fcd1013a242007952 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 16:24:43 +0000 Subject: [PATCH 039/131] chore(deps): update dependency @types/d3-shape to v3.1.4 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 710fc49f31..b8cebef446 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18481,20 +18481,20 @@ __metadata: linkType: hard "@types/d3-shape@npm:^1": - version: 1.3.9 - resolution: "@types/d3-shape@npm:1.3.9" + version: 1.3.10 + resolution: "@types/d3-shape@npm:1.3.10" dependencies: "@types/d3-path": ^1 - checksum: a4df0c09df4f97a017fbb229a096af6e25fe84e331dfb8c9b1f248a7f3df6f07c871879fabb31050cbec78f34127397a8134a16f2a2359ff681ec846cf886754 + checksum: c5fcb5da6388ffe5b0594d001940bf88589e174ca1b6cb6ffe3367fb8157b7bd70f15a555642abfa1acdf679860e0c1247bbc1f59395fcded29255638f661b55 languageName: node linkType: hard "@types/d3-shape@npm:^3.0.1, @types/d3-shape@npm:^3.1.0": - version: 3.1.3 - resolution: "@types/d3-shape@npm:3.1.3" + version: 3.1.4 + resolution: "@types/d3-shape@npm:3.1.4" dependencies: "@types/d3-path": "*" - checksum: ad17781ab4ce4b796954b86de7e14566c731726d39a1db7d73eaf50668a71e996d715450a0ff9f2720755e1b8643c3e88d47d45101a75c9d4ddbef51a636f6a0 + checksum: 3d529cc96127d8d58da05bc602e51bb7946171bdae96dcce9dae81c1549d3fd3f226a4e651c3302951a1ebf7803e86388c4afcdd654b0d40d203219ce68eb383 languageName: node linkType: hard From 042d58a31f224e3d8d70d969a64b3899411f4a0b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:00:04 +0000 Subject: [PATCH 040/131] chore(deps): update dependency @types/d3-zoom to v3.0.6 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 710fc49f31..f479fe8c9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18513,12 +18513,12 @@ __metadata: linkType: hard "@types/d3-zoom@npm:^3.0.1": - version: 3.0.5 - resolution: "@types/d3-zoom@npm:3.0.5" + version: 3.0.6 + resolution: "@types/d3-zoom@npm:3.0.6" dependencies: "@types/d3-interpolate": "*" "@types/d3-selection": "*" - checksum: acff15a30b2b81a99b46692c7aacc110c635a272e8d7e87af6aa5a01ebe9ebcafcaf475399d79ec73461a5ef037041dade49a6371d7587b759710123539b81b0 + checksum: 6b0ad10b6a7bab3acfdc92b0cd34c74698305a71e2fefb20eae1e3bac95cbf70c6434be5ea2c1c71bbe9fcb134c66da44fdd75673437199e9a90aea8aea0f7e7 languageName: node linkType: hard From b7f36ead90323d07b545afb0147f657130a836b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:00:18 +0000 Subject: [PATCH 041/131] chore(deps): update actions/checkout action to v4 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/automate_changeset_feedback.yml | 2 +- .github/workflows/automate_merge_message.yml | 2 +- .github/workflows/ci.yml | 6 +++--- .github/workflows/deploy_docker-image.yml | 2 +- .github/workflows/deploy_microsite.yml | 2 +- .github/workflows/deploy_nightly.yml | 2 +- .github/workflows/deploy_packages.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- .github/workflows/sync_code-formatting.yml | 2 +- .github/workflows/sync_dependabot-changesets.yml | 2 +- .github/workflows/sync_release-manifest.yml | 4 ++-- .github/workflows/sync_renovate-changesets.yml | 2 +- .github/workflows/sync_snyk-github-issues.yml | 2 +- .github/workflows/sync_snyk-monitor.yml | 2 +- .github/workflows/sync_version-packages.yml | 2 +- .github/workflows/uffizzi-build.yml | 4 ++-- .github/workflows/verify_accessibility.yml | 2 +- .github/workflows/verify_codeql.yml | 2 +- .github/workflows/verify_docs-quality.yml | 2 +- .github/workflows/verify_e2e-kubernetes.yml | 2 +- .github/workflows/verify_e2e-linux.yml | 2 +- .github/workflows/verify_e2e-techdocs.yml | 2 +- .github/workflows/verify_e2e-windows.yml | 2 +- .github/workflows/verify_fossa.yml | 2 +- .github/workflows/verify_microsite.yml | 2 +- .github/workflows/verify_storybook.yml | 2 +- .github/workflows/verify_windows.yml | 2 +- 27 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index eac020cb8e..56aa3f58f8 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -27,7 +27,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 with: # Fetch the commit that's merged into the base rather than the target ref # This will let us diff only the contents of the PR, without fetching more history diff --git a/.github/workflows/automate_merge_message.yml b/.github/workflows/automate_merge_message.yml index 4cbf6c69a2..c7a02db354 100644 --- a/.github/workflows/automate_merge_message.yml +++ b/.github/workflows/automate_merge_message.yml @@ -28,7 +28,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 with: ref: '${{ github.event.pull_request.merge_commit_sha }}' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e3ec626d7..bd5a0385fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 @@ -67,7 +67,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 @@ -196,7 +196,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: fetch branch master run: git fetch origin master diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index 69776da2d9..68dfe9419a 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: path: backstage ref: v${{ github.event.client_payload.version }} diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml index f614db31ca..7012a34205 100644 --- a/.github/workflows/deploy_microsite.yml +++ b/.github/workflows/deploy_microsite.yml @@ -28,7 +28,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js 18.x uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index 7184557e12..721278b89a 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -19,7 +19,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: use node.js 18.x uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 32f4b139f2..595d8f0792 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -60,7 +60,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 @@ -142,7 +142,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 0f99453bba..3b017e759c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -34,7 +34,7 @@ jobs: egress-policy: audit - name: 'Checkout code' - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: persist-credentials: false diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index 610ad323e2..af94d58d5a 100644 --- a/.github/workflows/sync_code-formatting.yml +++ b/.github/workflows/sync_code-formatting.yml @@ -14,7 +14,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: # Fetch changes to previous commit - required for 'only_changed' in Prettier action fetch-depth: 0 diff --git a/.github/workflows/sync_dependabot-changesets.yml b/.github/workflows/sync_dependabot-changesets.yml index 2ac6d7f0d0..40886015ca 100644 --- a/.github/workflows/sync_dependabot-changesets.yml +++ b/.github/workflows/sync_dependabot-changesets.yml @@ -16,7 +16,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: fetch-depth: 2 ref: ${{ github.head_ref }} diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 46d5d5382a..d56137412d 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -21,7 +21,7 @@ jobs: run: npm install semver@7.3.5 fs-extra@10.0.0 @manypkg/get-packages@1.1.1 - name: Checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: path: backstage # 'v' prefix is added here for the tag, we keep it out of the manifest logic @@ -29,7 +29,7 @@ jobs: # Checkout backstage/versions into /backstage/versions, which is where store the output - name: Checkout versions - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: repository: backstage/versions path: backstage/versions diff --git a/.github/workflows/sync_renovate-changesets.yml b/.github/workflows/sync_renovate-changesets.yml index 738abcf773..88b1430784 100644 --- a/.github/workflows/sync_renovate-changesets.yml +++ b/.github/workflows/sync_renovate-changesets.yml @@ -16,7 +16,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: fetch-depth: 2 ref: ${{ github.head_ref }} diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml index 551ef559a1..aecf64a1f4 100644 --- a/.github/workflows/sync_snyk-github-issues.yml +++ b/.github/workflows/sync_snyk-github-issues.yml @@ -16,7 +16,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js 18.x uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/sync_snyk-monitor.yml b/.github/workflows/sync_snyk-monitor.yml index 3c41aedee3..9268fc4975 100644 --- a/.github/workflows/sync_snyk-monitor.yml +++ b/.github/workflows/sync_snyk-monitor.yml @@ -29,7 +29,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: Monitor and Synchronize Snyk Policies uses: snyk/actions/node@39091e69b560da335383b404e50d65b408f4f812 # master with: diff --git a/.github/workflows/sync_version-packages.yml b/.github/workflows/sync_version-packages.yml index 929fb9cc89..4ff6ce94f3 100644 --- a/.github/workflows/sync_version-packages.yml +++ b/.github/workflows/sync_version-packages.yml @@ -18,7 +18,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 with: fetch-depth: 20000 fetch-tags: true diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index 375c6bdcd2..c53083307b 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -25,7 +25,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 - name: setup-node uses: actions/setup-node@v3.8.1 @@ -87,7 +87,7 @@ jobs: egress-policy: audit - name: Checkout git repo - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 - name: Render Compose File run: | BACKSTAGE_IMAGE=$(echo ${{ needs.build-backstage.outputs.tags }}) diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index f34f2f5506..ba85fcdb19 100644 --- a/.github/workflows/verify_accessibility.yml +++ b/.github/workflows/verify_accessibility.yml @@ -24,7 +24,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: Use Node.js 18.x uses: actions/setup-node@v3.8.1 with: diff --git a/.github/workflows/verify_codeql.yml b/.github/workflows/verify_codeql.yml index fb29fb78e1..59aa41ff55 100644 --- a/.github/workflows/verify_codeql.yml +++ b/.github/workflows/verify_codeql.yml @@ -47,7 +47,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. diff --git a/.github/workflows/verify_docs-quality.yml b/.github/workflows/verify_docs-quality.yml index ce457a234f..f1932d5afa 100644 --- a/.github/workflows/verify_docs-quality.yml +++ b/.github/workflows/verify_docs-quality.yml @@ -16,7 +16,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 # Vale does not support file excludes, so we use the script to generate a list of files instead # The action also does not allow args or a local config file to be passed in, so the files array diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index ea77609614..2491282a13 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -26,7 +26,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 6b61053628..9ec1672d0b 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -44,7 +44,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: Configure Git run: | diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index de43a4f5ac..96645c9b0b 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -34,7 +34,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - uses: actions/setup-python@v4.7.1 with: python-version: '3.9' diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 7eba130ed8..fa3568974a 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -42,7 +42,7 @@ jobs: git config --global core.autocrlf false git config --global core.eol lf - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: Configure Git run: | diff --git a/.github/workflows/verify_fossa.yml b/.github/workflows/verify_fossa.yml index 393bcf9631..7918efe333 100644 --- a/.github/workflows/verify_fossa.yml +++ b/.github/workflows/verify_fossa.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@v3.6.0 + uses: actions/checkout@v4.1.1 - name: Install Fossa run: "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash" diff --git a/.github/workflows/verify_microsite.yml b/.github/workflows/verify_microsite.yml index f0705bedc7..e69ca1fd3e 100644 --- a/.github/workflows/verify_microsite.yml +++ b/.github/workflows/verify_microsite.yml @@ -28,7 +28,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js 18.x uses: actions/setup-node@v3.8.1 diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index fe481f9882..3cf7e7e194 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -32,7 +32,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 with: fetch-depth: 0 # Required to retrieve git history diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index f2c61938d8..cbe312ed38 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -33,7 +33,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v4.1.1 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 From 3b9821cfa30774057e20e43c7fce89af78f3e790 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 18:28:44 +0000 Subject: [PATCH 042/131] chore(deps): update dependency @types/dagre to v0.7.51 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 710fc49f31..b613014db0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18523,9 +18523,9 @@ __metadata: linkType: hard "@types/dagre@npm:^0.7.44": - version: 0.7.50 - resolution: "@types/dagre@npm:0.7.50" - checksum: a128048b5202c501a4595bbc17288aafbef90f3535e79385ddaf0842237e69aa5998dbc12bc2867244eefe3fb6c5026d9785bfdedea46d813f006066e06e8f44 + version: 0.7.51 + resolution: "@types/dagre@npm:0.7.51" + checksum: 6a23cc406082fe867dc0be0a117ae0c493bcfb6e08b83ea55a09b4f43e6eb5efc34a102d1a039fa82d2df700d55ee5481c0c3febdf710b972bb345c8a7f6c316 languageName: node linkType: hard From 1956882a3615b8cb4b45e9adfc3c7585acce5371 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 19:00:25 +0000 Subject: [PATCH 043/131] chore(deps): update dependency @types/diff to v5.0.7 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 f479fe8c9b..8ba4eb6db7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18539,9 +18539,9 @@ __metadata: linkType: hard "@types/diff@npm:^5.0.0": - version: 5.0.6 - resolution: "@types/diff@npm:5.0.6" - checksum: 8ce79492a89d568b54792a8491d01b1ff69526e19560670ef2de078c467738cdc0aae81fc4f895e49f915a2b9bbf694f6f95a2e5544e7c0989448956eba9ff66 + version: 5.0.7 + resolution: "@types/diff@npm:5.0.7" + checksum: 38cad7b1e19789a11bfab2428409476ea204705e92c39dd13a9ba26b604930efcffb553352512296cb179adfb028e2d95e51f9df2b7443bb0a6ba306c8bc84d0 languageName: node linkType: hard From 4f727a81c314c6b10a6588f43f1f08985a2dafd6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 19:15:26 +0000 Subject: [PATCH 044/131] chore(deps): update dependency @types/dockerode to v3.3.21 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 ec28911e69..3babd864af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18556,12 +18556,12 @@ __metadata: linkType: hard "@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.8": - version: 3.3.20 - resolution: "@types/dockerode@npm:3.3.20" + version: 3.3.21 + resolution: "@types/dockerode@npm:3.3.21" dependencies: "@types/docker-modem": "*" "@types/node": "*" - checksum: cb2d7a923cfec9d92b69694e613f0becbea627d4d9d919ab349f28ea81d8f5fa71aa437d89b4bc5291a5edb7a07c643ccff2139e2d7ab92a58235d0b05d2a48d + checksum: 025c97cd2549f1b3f0dc6e117e24e3b7e56dcf3e482e2abe5f2d6961e56e637b0e1f1b4f032e065cd7245302064ac3ccdb9c7dfdb0fe43a5bfb2b5f4ccbf4a8d languageName: node linkType: hard From 0f4cad6da05a377c6ebc5121ff9b5ee1aa5789b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 25 Oct 2023 20:32:34 +0200 Subject: [PATCH 045/131] fix test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/hip-moose-boil.md | 5 +++++ .../src/components/CustomResources/DefaultCustomResource.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/hip-moose-boil.md diff --git a/.changeset/hip-moose-boil.md b/.changeset/hip-moose-boil.md new file mode 100644 index 0000000000..e14c557c62 --- /dev/null +++ b/.changeset/hip-moose-boil.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-react': patch +--- + +Internal refactor to avoid a null pointer problem diff --git a/plugins/kubernetes-react/src/components/CustomResources/DefaultCustomResource.tsx b/plugins/kubernetes-react/src/components/CustomResources/DefaultCustomResource.tsx index cee3fb9e6c..22629a1d6e 100644 --- a/plugins/kubernetes-react/src/components/CustomResources/DefaultCustomResource.tsx +++ b/plugins/kubernetes-react/src/components/CustomResources/DefaultCustomResource.tsx @@ -85,7 +85,7 @@ const DefaultCustomResourceAccordion = ({ /> - {customResource.hasOwnProperty('status') && ( + {Object.prototype.hasOwnProperty.call(customResource, 'status') && ( )} From d7def5d0cb1d6ef630b73323aca1b49e4ab82c3b Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Wed, 25 Oct 2023 21:49:23 +0100 Subject: [PATCH 046/131] PR Feedback * Tidy up passing of domain hint from initalisation to later methods * Tidy up change set Signed-off-by: Alex Crome --- .changeset/gentle-pumpkins-carry.md | 15 ++--------- .../src/authenticator.ts | 27 ++++++++++--------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/.changeset/gentle-pumpkins-carry.md b/.changeset/gentle-pumpkins-carry.md index 22abd16798..721fbe8195 100644 --- a/.changeset/gentle-pumpkins-carry.md +++ b/.changeset/gentle-pumpkins-carry.md @@ -1,16 +1,5 @@ --- -'@backstage/plugin-auth-backend-module-microsoft-provider': minor +'@backstage/plugin-auth-backend-module-microsoft-provider': patch --- -Added support for specifying a `domain_hint` on Microsoft authentication provider configuration. -This should typically be set to the same value as your `tenantId`. -If you allow users from multiple tenants to authenticate, then leave this blank. - -```yaml -auth: - providers: - microsoft: - development: - #... - domainHint: ${AZURE_TENANT_ID} -``` +Added support for specifying a domain hint on the Microsoft authentication provider configuration. diff --git a/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts index edf985b0f2..9687c7ce1a 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/authenticator.ts @@ -22,8 +22,6 @@ import { PassportProfile, } from '@backstage/plugin-auth-node'; -let domainHint: string | undefined = undefined; - /** @public */ export const microsoftAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: @@ -32,9 +30,9 @@ export const microsoftAuthenticator = createOAuthAuthenticator({ const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); const tenantId = config.getString('tenantId'); - domainHint = config.getOptionalString('domainHint'); + const domainHint = config.getOptionalString('domainHint'); - return PassportOAuthAuthenticatorHelper.from( + const helper = PassportOAuthAuthenticatorHelper.from( new MicrosoftStrategy( { clientID: clientId, @@ -58,25 +56,30 @@ export const microsoftAuthenticator = createOAuthAuthenticator({ }, ), ); + + return { + helper, + domainHint, + }; }, - async start(input, helper) { + async start(input, ctx) { const options: Record = { accessType: 'offline', }; - if (domainHint !== undefined) { - options.domain_hint = domainHint; + if (ctx.domainHint !== undefined) { + options.domain_hint = ctx.domainHint; } - return helper.start(input, options); + return ctx.helper.start(input, options); }, - async authenticate(input, helper) { - return helper.authenticate(input); + async authenticate(input, ctx) { + return ctx.helper.authenticate(input); }, - async refresh(input, helper) { - return helper.refresh(input); + async refresh(input, ctx) { + return ctx.helper.refresh(input); }, }); From 962717288041a48cb5fb026c464006921da0674f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 21:11:02 +0000 Subject: [PATCH 047/131] chore(deps): update dependency @types/ejs to v3.1.4 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 344d73fbb2..c172fb4163 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18575,9 +18575,9 @@ __metadata: linkType: hard "@types/ejs@npm:^3.1.3": - version: 3.1.3 - resolution: "@types/ejs@npm:3.1.3" - checksum: b1b1c6c9d331d237523ebc410789f42edcdbb1d4cdd4a7a37ac61d2ce9c3fbcfbfe7d7f1a7f61c9334812347a0036afd52258ad2198f85545ebfb26d63475a75 + version: 3.1.4 + resolution: "@types/ejs@npm:3.1.4" + checksum: 7e61b59a4a1a5232e081f0f2408b99ee5664446406004da088b29ac849b1490fbd6fbdf2c2a1aeb5049e690edb80f6c0cbe8387930a114e2c1c7dc0e67d0bc04 languageName: node linkType: hard From 08aa1d0dbee30cf06b30fe7e687c6b69418d6f99 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 21:11:33 +0000 Subject: [PATCH 048/131] chore(deps): update dependency @types/event-source-polyfill to v1.0.3 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 344d73fbb2..95a36da1e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18625,9 +18625,9 @@ __metadata: linkType: hard "@types/event-source-polyfill@npm:^1.0.0": - version: 1.0.2 - resolution: "@types/event-source-polyfill@npm:1.0.2" - checksum: f0813edfee0af768e6e0994b48f9f618df7a5d9023c383a8f35e9e805dec560222dc40fc583d5f1404977febb7353c27c1d0606c67d948a2d18634c18ae437a9 + version: 1.0.3 + resolution: "@types/event-source-polyfill@npm:1.0.3" + checksum: ba525e521ff82de5dad727066174c61fc59680a5703324c4c62cbb11c0a14fbabeabf4d17e6d5051ef995c232a40ff43a8d1f4cea0dde9564bf28c92bb361726 languageName: node linkType: hard From 692e2397c23d19a8edbc8eea4f9657688887e496 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Wed, 25 Oct 2023 22:36:08 +0100 Subject: [PATCH 049/131] Update api report Signed-off-by: Alex Crome --- plugins/auth-backend-module-microsoft-provider/api-report.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/auth-backend-module-microsoft-provider/api-report.md b/plugins/auth-backend-module-microsoft-provider/api-report.md index 60192c5cbc..21bf77d545 100644 --- a/plugins/auth-backend-module-microsoft-provider/api-report.md +++ b/plugins/auth-backend-module-microsoft-provider/api-report.md @@ -15,7 +15,10 @@ export const authModuleMicrosoftProvider: () => BackendFeature; // @public (undocumented) export const microsoftAuthenticator: OAuthAuthenticator< - PassportOAuthAuthenticatorHelper, + { + helper: PassportOAuthAuthenticatorHelper; + domainHint: string | undefined; + }, PassportProfile >; From c931c0cdf0c678175268c2c8aba492e798d3172d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 22:07:40 +0000 Subject: [PATCH 050/131] chore(deps): update dependency @types/express-serve-static-core to v4.17.39 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 95a36da1e6..0d04d0f0fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18639,14 +18639,14 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.30, @types/express-serve-static-core@npm:^4.17.33, @types/express-serve-static-core@npm:^4.17.5": - version: 4.17.37 - resolution: "@types/express-serve-static-core@npm:4.17.37" + version: 4.17.39 + resolution: "@types/express-serve-static-core@npm:4.17.39" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 2dab1380e45eb44e56ecc1be1c42c4b897364d2f2a08e03ca28fbcb1e6866e390217385435813711c046f9acd684424d088855dc32825d5cbecf72c60ecd037f + checksum: 4227b96a53f0cf19d01fdb77a74252660f8e70650b79167e591b04c66ec9c7330d0a00038939415f96664a67312b21798bbac150fe81bf613380849b96546c37 languageName: node linkType: hard From cbbd3bed2b6e8093c98a2972ee61088934757b1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 22:08:11 +0000 Subject: [PATCH 051/131] chore(deps): update dependency @types/express-session to v1.17.9 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 95a36da1e6..3043208e89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18651,11 +18651,11 @@ __metadata: linkType: hard "@types/express-session@npm:^1.17.2": - version: 1.17.8 - resolution: "@types/express-session@npm:1.17.8" + version: 1.17.9 + resolution: "@types/express-session@npm:1.17.9" dependencies: "@types/express": "*" - checksum: e1af8797b321ce05e0732c58aa982f00ab34b6edb337c289092e66c789ae1bbb4ca14d2caa0e0ff02522047402bcff828873b035e2785fb92f2381a0eb34240c + checksum: e66d50742a27389f3f1bb03b30eb96d74daf357db6cc5e549265e6610f2cff14539fec7e2b72c3f98ab1174eff7ed347e3fe4d3a2b9273a6d1367d78ee0add71 languageName: node linkType: hard From 0143fc7e1e6a54189d559b18d10c954bd9d7ce0f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 23:08:06 +0000 Subject: [PATCH 052/131] chore(deps): update dependency @types/git-url-parse to v9.0.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 3043208e89..bcec7042ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18688,9 +18688,9 @@ __metadata: linkType: hard "@types/git-url-parse@npm:^9.0.0": - version: 9.0.1 - resolution: "@types/git-url-parse@npm:9.0.1" - checksum: 9d1678a0aff50b6e77a172965070de34d2e89bc6ccc96c94ea3b2ecf250c602c0daff4b9f4e0eb830e53e81ee273b08f15f728d42ec087f1a95e4f51d57b594a + version: 9.0.2 + resolution: "@types/git-url-parse@npm:9.0.2" + checksum: af0a935b80d76f2441686f55b43755f5ccc3e5ddb21ae9663df0f55a4954aa9f1f4ddbcad729e3f2365cd09a2a38abb14baec95b9f26aa67e490fc90797d5e0b languageName: node linkType: hard From 474579409d3c1e3513951649ca3aaa57298725c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 23:08:37 +0000 Subject: [PATCH 053/131] chore(deps): update dependency @types/google-protobuf to v3.15.9 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 3043208e89..af9349f5a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18705,9 +18705,9 @@ __metadata: linkType: hard "@types/google-protobuf@npm:^3.7.2": - version: 3.15.7 - resolution: "@types/google-protobuf@npm:3.15.7" - checksum: d369f1442ec943150dfc1e8af6fbc5ae2402cf3ef44953e3f4d447c203affe64d6c5d614de59561df0e03f23151df85c456d58a7e5b26a7f3ccec5899b1c22be + version: 3.15.9 + resolution: "@types/google-protobuf@npm:3.15.9" + checksum: e154014f29bfbe1a9b0a3fcdfc6a754f01a7250c47d34d445656abe6fb1e6d7fcab85aa38eb0ffe5f43abbe20290401640f612293abbfcf4286143402f2ba82a languageName: node linkType: hard From ee483ddb7b7b70a127cf29e2b717c3e25d82edb5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 00:38:53 +0000 Subject: [PATCH 054/131] chore(deps): update dependency @types/http-errors to v2.0.3 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 bcec7042ce..3d00feb37a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18763,9 +18763,9 @@ __metadata: linkType: hard "@types/http-errors@npm:^2.0.0": - version: 2.0.2 - resolution: "@types/http-errors@npm:2.0.2" - checksum: d7f14045240ac4b563725130942b8e5c8080bfabc724c8ff3f166ea928ff7ae02c5194763bc8f6aaf21897e8a44049b0492493b9de3e058247e58fdfe0f86692 + version: 2.0.3 + resolution: "@types/http-errors@npm:2.0.3" + checksum: ea9530fb6e8a0400c4f9aac4dd628c5074f0adc8d01e2cdb917c0b97c230dedf4fcc67eadb491377b0eff5778e566648e63613a9719e383185318b9ec8c009b9 languageName: node linkType: hard From be93086cc8791c86583356aaa6b0b9683093b97d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 00:39:24 +0000 Subject: [PATCH 055/131] chore(deps): update dependency @types/http-proxy to v1.17.13 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 bcec7042ce..d88080e9aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18781,11 +18781,11 @@ __metadata: linkType: hard "@types/http-proxy@npm:*, @types/http-proxy@npm:^1.17.4, @types/http-proxy@npm:^1.17.8": - version: 1.17.12 - resolution: "@types/http-proxy@npm:1.17.12" + version: 1.17.13 + resolution: "@types/http-proxy@npm:1.17.13" dependencies: "@types/node": "*" - checksum: 89700c8e3c8f2c59c87c8db8e7a070c97a3b30a4a38223aca6b8b817e6f2ca931f5a500e16ecadc1ebcfed2676cc60e073d8f887e621d84420298728ec6fd000 + checksum: 09e2d59db4689c46a6676496c355cac5499457ce61085121bfab64b8a825fde320574f22f981a8db3f1e9e977ddef55889f99da7f1ff485ac51f22b94308bf12 languageName: node linkType: hard From 557da147d23ec576a222e41c560a83ce738cc3b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 01:41:12 +0000 Subject: [PATCH 056/131] chore(deps): update dependency @types/humanize-duration to v3.27.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 3d00feb37a..1313e15eb1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18790,9 +18790,9 @@ __metadata: linkType: hard "@types/humanize-duration@npm:^3.18.1, @types/humanize-duration@npm:^3.25.1, @types/humanize-duration@npm:^3.27.1": - version: 3.27.1 - resolution: "@types/humanize-duration@npm:3.27.1" - checksum: d3d69b64918d0cee4aa69580dd04d1b96e3385645d398e27b1535f8c6d0252b0235defb16619379a6196c6bbdfc7b6032f010b25cac44903a32b09db8aa06f30 + version: 3.27.2 + resolution: "@types/humanize-duration@npm:3.27.2" + checksum: e33fd83f859085cc8e34884f492ec028d5a5d9992c3b1be66f7b4949daef6b248b299d3f96b09a5ee077b2884c2bd99cdc3bd98531863c86527d6e662b3e8a82 languageName: node linkType: hard From 08eb49248931c68551bb669d7a23bfdcf88d3e54 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 01:41:44 +0000 Subject: [PATCH 057/131] chore(deps): update dependency @types/inquirer to v8.2.9 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 3d00feb37a..de7c43007c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18797,12 +18797,12 @@ __metadata: linkType: hard "@types/inquirer@npm:^8.1.3": - version: 8.2.7 - resolution: "@types/inquirer@npm:8.2.7" + version: 8.2.9 + resolution: "@types/inquirer@npm:8.2.9" dependencies: "@types/through": "*" rxjs: ^7.2.0 - checksum: 8f021bc2ad0cdcccbd55abd11a8ecc73f716ea108f2ffb5f8f605d23519b47acb46fdcac032d8c81e7c05f183c0f2300a0a394c449ad8980bc11f333708d4387 + checksum: eee240953215ec85901fdfa391595c2ee0b2e61fb9abf1c5708f665ae558effd1359252375956d3eb73364621c9edf5f74329e0c535814cd5fef68bc192408ca languageName: node linkType: hard From 38e6a415f01906c643249b30bb1aaa0bdc123822 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 02:11:43 +0000 Subject: [PATCH 058/131] chore(deps): update dependency @types/is-glob to v4.0.3 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 986b0a0a69..76761802a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18816,9 +18816,9 @@ __metadata: linkType: hard "@types/is-glob@npm:^4.0.2": - version: 4.0.2 - resolution: "@types/is-glob@npm:4.0.2" - checksum: 50b0a52b6d179781b36bfce35155e1e0dc66b62e2943153d7d7c7079c40ba6236528a254de8be6c52ff9a7a351996887802efd7fd763da3e2121315e4ffe2edf + version: 4.0.3 + resolution: "@types/is-glob@npm:4.0.3" + checksum: 65686e645f1e8125b5a01df5b2d2b247c8e5a23790363538005454d68ba7bd9662cd3bcfbdda9f8eb0a85fb5fccd164645555c8e0c34db63c8c65998fd5909dd languageName: node linkType: hard From dd832203644e29be996a39475c611d23ae76a28a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 02:35:14 +0000 Subject: [PATCH 059/131] chore(deps): update dependency @types/jest-when to v3.5.4 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 7a2a759203..e82039b1df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18857,11 +18857,11 @@ __metadata: linkType: hard "@types/jest-when@npm:^3.5.0": - version: 3.5.3 - resolution: "@types/jest-when@npm:3.5.3" + version: 3.5.4 + resolution: "@types/jest-when@npm:3.5.4" dependencies: "@types/jest": "*" - checksum: 5dc2661ad570b80b8f97d7dabc50a0229f21818eefc73024b88a70216c2666f56bd97769fef565263d7242878f8187531bb14427dcb06709e9b98a1671668e9d + checksum: 58a9a7b2dd81cb2c87c3d3539d03dc82c72a66282b3930237ad30641d0c27d7c2b9de2cb9da05b0d287bb6d890f82601935ca4e616a1828e5e05ebb4fc444270 languageName: node linkType: hard From 00c779224466245666bb76bdecbf644cb9628c61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 03:12:22 +0000 Subject: [PATCH 060/131] chore(deps): update dependency @types/jquery to v3.5.25 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 1885ca7d2a..2ae2441f8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18886,11 +18886,11 @@ __metadata: linkType: hard "@types/jquery@npm:^3.3.34": - version: 3.5.22 - resolution: "@types/jquery@npm:3.5.22" + version: 3.5.25 + resolution: "@types/jquery@npm:3.5.25" dependencies: "@types/sizzle": "*" - checksum: b81c95e27bb30686c1ad5d3f414781243d0cbb468b91d5584dedd3d3ca07ac99796d876e257a7246d6d9b69916bbb0cd0508142ab9f88848605c6d431144d729 + checksum: 912ce4212447a7c640147345c6b46bde5b12bafc2c97e1abc76939174c3109e3dbb361a534af717be2da4e907bc257558a6bc631971fcc47f7e5f044d315183e languageName: node linkType: hard From 5ed18a2f86632666ae2367a843e4f3cc8b64765b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 03:12:53 +0000 Subject: [PATCH 061/131] chore(deps): update dependency @types/js-yaml to v4.0.8 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 1885ca7d2a..244637453d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18909,9 +18909,9 @@ __metadata: linkType: hard "@types/js-yaml@npm:^4.0.0, @types/js-yaml@npm:^4.0.1": - version: 4.0.7 - resolution: "@types/js-yaml@npm:4.0.7" - checksum: e02eca876f3f19dbba62a26a18e59ec5df4e29300b99808fb0b4ca980cbfbb60e4a2c7d75d521728f5b2a3b92a0da5b9343497b2acf621b8ea019d48b40bbd78 + version: 4.0.8 + resolution: "@types/js-yaml@npm:4.0.8" + checksum: a5a77a5a1eac7e7fb667156c251c2b947ca4ddfdda570726369dd50bd5b2b1d0da2d0fb4273d1b10aa1782406d7b3da8923d957df4fb89dbfa1db06f43297de2 languageName: node linkType: hard From d38570ec2527657be5acaf36d9bd8d4d42cf621d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 04:10:59 +0000 Subject: [PATCH 062/131] chore(deps): update dependency @types/jscodeshift to v0.11.9 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 bd78794ab0..2ad4486c4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18916,12 +18916,12 @@ __metadata: linkType: hard "@types/jscodeshift@npm:^0.11.0": - version: 0.11.7 - resolution: "@types/jscodeshift@npm:0.11.7" + version: 0.11.9 + resolution: "@types/jscodeshift@npm:0.11.9" dependencies: ast-types: ^0.14.1 recast: ^0.20.3 - checksum: c6b81d537dca08c24db76e5e75d6056ef7c5b7651aebc319277321e2f2421984cc237ac71593dec374e49f9eae28c22150a37de3a572f141d55382c193091899 + checksum: a5b0bc6250dad3dfbaa9af71f56e65979cbfb632ee3d8da43bd79e729eaf231bc15356cc5de45c7e1f634881ab541f712cdbf554f89032273819c49bc397882e languageName: node linkType: hard From b282e278560a58559b1bbbcfb4a9c5472c0d1956 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 04:11:29 +0000 Subject: [PATCH 063/131] chore(deps): update dependency @types/json-schema to v7.0.14 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 bd78794ab0..2dd5b53a74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18946,9 +18946,9 @@ __metadata: linkType: hard "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.13 - resolution: "@types/json-schema@npm:7.0.13" - checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab + version: 7.0.14 + resolution: "@types/json-schema@npm:7.0.14" + checksum: 4b3dd99616c7c808201c56f6c7f6552eb67b5c0c753ab3fa03a6cb549aae950da537e9558e53fa65fba23d1be624a1e4e8d20c15027efbe41e03ca56f2b04fb0 languageName: node linkType: hard From 2ea62e626f5cb3372bc6cceae9eb7497ec5cb20e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 05:07:39 +0000 Subject: [PATCH 064/131] chore(deps): update dependency @types/json-schema-merge-allof to v0.6.3 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 2ad4486c4e..a2d375d9fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18937,11 +18937,11 @@ __metadata: linkType: hard "@types/json-schema-merge-allof@npm:^0.6.0": - version: 0.6.2 - resolution: "@types/json-schema-merge-allof@npm:0.6.2" + version: 0.6.3 + resolution: "@types/json-schema-merge-allof@npm:0.6.3" dependencies: "@types/json-schema": "*" - checksum: 2be8f35eb47cb6f2344c15625010edd0983d258b0eba76e4193a1e80a3b3334bcb7efe1060594a8420cdcb092201e5ad3d78442f7af2edc548661c19c9a65440 + checksum: c59ddbe5ffb97bbd90dd1654f3745e60ff8854db3b99ba2059c54b71f8d303936577a8262cd875e738200c0e4d59657d8195b415f88bf9fc93dc61aeecde68d1 languageName: node linkType: hard From 1e792594101baec3db469fb50a70dc8d2ec9771e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 05:16:20 +0000 Subject: [PATCH 065/131] chore(deps): update dependency @types/libsodium-wrappers to v0.7.12 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 a3392068f7..33232f03ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19022,9 +19022,9 @@ __metadata: linkType: hard "@types/libsodium-wrappers@npm:^0.7.10": - version: 0.7.11 - resolution: "@types/libsodium-wrappers@npm:0.7.11" - checksum: e3c3acdfc178a466a04d81c030ba1b748abc9335b1d66421125eb55b32cbaf6a9076e32a98744fcb84ba2fa2af342203ff29054262dcc465c12c4feddddb64ac + version: 0.7.12 + resolution: "@types/libsodium-wrappers@npm:0.7.12" + checksum: 8f25b4ffe6b60c36f3c59b3dea2e952b8790c9b8375ee5235e6d294c1519a578b7882d773f168005eb0f3fdb4f11e06ba27b30b89d2c3b8be3f985c7eedd0491 languageName: node linkType: hard From c908b18ed38b2427a19bec39bd08e23e2aa79a30 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 26 Oct 2023 16:52:20 +1100 Subject: [PATCH 066/131] Add existing OpenCost plugin to the Backstage Plugin Directory Signed-off-by: Matt Ray --- microsite/data/plugins/opencost.yaml | 10 ++++++++++ microsite/static/img/opencost.png | Bin 0 -> 11349 bytes 2 files changed, 10 insertions(+) create mode 100644 microsite/data/plugins/opencost.yaml create mode 100644 microsite/static/img/opencost.png diff --git a/microsite/data/plugins/opencost.yaml b/microsite/data/plugins/opencost.yaml new file mode 100644 index 0000000000..dbf65979ca --- /dev/null +++ b/microsite/data/plugins/opencost.yaml @@ -0,0 +1,10 @@ +--- +title: OpenCost +author: Matt Ray +authorUrl: https://opencost.io +category: Monitoring +description: OpenCost provides cloud cost monitoring for your cloud native environments. +documentation: https://github.com/backstage/backstage/blob/master/plugins/opencost/README.md +iconUrl: img/opencost.png +npmPackageName: '@backstage/plugin-opencost' +addedDate: '2023-10-26' diff --git a/microsite/static/img/opencost.png b/microsite/static/img/opencost.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcd2965be56fed6ddd02ead5e6c3e98091271a9 GIT binary patch literal 11349 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 literal 0 HcmV?d00001 From d86b2acec47bf571883f3b71faab451b873834ed Mon Sep 17 00:00:00 2001 From: Benjamin Date: Tue, 24 Oct 2023 10:55:25 -0400 Subject: [PATCH 067/131] Fix VisitsStorageApi retrieveAll method to return all visits synchronously Signed-off-by: Benjamin --- .changeset/curvy-carrots-thank.md | 5 ++++ plugins/home/src/api/VisitsStorageApi.ts | 38 +++++++++++++++++------- 2 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 .changeset/curvy-carrots-thank.md diff --git a/.changeset/curvy-carrots-thank.md b/.changeset/curvy-carrots-thank.md new file mode 100644 index 0000000000..6303125314 --- /dev/null +++ b/.changeset/curvy-carrots-thank.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Fix bug where `retrieveAll` method wasn't fetching visits diff --git a/plugins/home/src/api/VisitsStorageApi.ts b/plugins/home/src/api/VisitsStorageApi.ts index daf24d716b..c72d4c5d64 100644 --- a/plugins/home/src/api/VisitsStorageApi.ts +++ b/plugins/home/src/api/VisitsStorageApi.ts @@ -117,23 +117,39 @@ export class VisitsStorageApi implements VisitsApi { } private async persistAll(visits: Array) { - const { userEntityRef } = await this.identityApi.getBackstageIdentity(); - const storageKey = `${this.storageKeyPrefix}:${userEntityRef}`; - + const storageKey = await this.getStorageKey(); return this.storageApi.set>(storageKey, visits); } private async retrieveAll(): Promise> { + const storageKey = await this.getStorageKey(); + // Handles for case when snapshot is and is not referenced per storaged type used + const snapshot = this.storageApi.snapshot>(storageKey); + if (snapshot?.presence !== 'unknown') { + return snapshot?.value ?? []; + } + + return new Promise((resolve, reject) => { + const subsription = this.storageApi + .observe$(storageKey) + .subscribe({ + next: next => { + const visits = next.value ?? []; + subsription.unsubscribe(); + resolve(visits); + }, + error: err => { + subsription.unsubscribe(); + reject(err); + }, + }); + }); + } + + private async getStorageKey(): Promise { const { userEntityRef } = await this.identityApi.getBackstageIdentity(); const storageKey = `${this.storageKeyPrefix}:${userEntityRef}`; - let visits: Array; - - try { - visits = this.storageApi.snapshot>(storageKey).value ?? []; - } catch { - visits = []; - } - return visits; + return storageKey; } // This assumes Visit fields are either numbers or strings From 62b5922916874d8d35b459a0cbe0dcc329641f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 25 Oct 2023 21:13:41 +0200 Subject: [PATCH 068/131] remove unnecessary usage of deprecated `BackstageTheme` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/six-books-arrive.md | 23 ++ .../AsyncApiDefinition.tsx | 3 +- .../components/ProjectCard/ProjectCard.tsx | 3 +- .../EntityRelationsGraph/CustomLabel.tsx | 3 +- .../EntityRelationsGraph/CustomNode.tsx | 3 +- .../EntityContextMenu/EntityContextMenu.tsx | 5 +- .../SystemDiagramCard/SystemDiagramCard.tsx | 3 +- .../CodeClimateTable/CodeClimateTable.tsx | 9 +- .../CostInsightsThemeProvider.tsx | 4 +- plugins/cost-insights/src/utils/styles.ts | 332 +++++++++--------- .../GroupsExplorerContent/GroupsDiagram.tsx | 3 +- .../components/CalendarCard/AttendeeChip.tsx | 7 +- .../src/components/AttendeeChip.tsx | 7 +- .../GroupListPicker/GroupListPickerButton.tsx | 3 +- .../Cards/OwnershipCard/ComponentsGrid.tsx | 3 +- .../components/PlaylistCard/PlaylistCard.tsx | 4 +- .../ScaffolderPageContextMenu.tsx | 3 +- .../next/components/TaskSteps/StepIcon.tsx | 5 +- .../next/components/TaskSteps/TaskBorder.tsx | 4 +- .../src/legacy/TaskPage/TaskPage.tsx | 3 +- .../DryRunResults/DryRunResults.tsx | 3 +- .../DryRunResults/DryRunResultsList.tsx | 3 +- .../components/SearchType/SearchType.Tabs.tsx | 3 +- .../components/SonarQubeCard/Percentage.tsx | 5 +- .../src/components/SonarQubeCard/Rating.tsx | 3 +- .../src/components/SonarQubeCard/Value.tsx | 3 +- .../ScorecardsInfo/ScorecardInfo.tsx | 3 +- .../ScorecardsList/ScorecardsList.tsx | 3 +- .../src/TextSize/TextSize.tsx | 8 +- .../src/components/Accordion/Accordion.tsx | 4 +- .../components/BuildDetails/BuildDetails.tsx | 4 +- .../src/components/BuildList/BuildList.tsx | 4 +- .../BuildTimeline/BuildTimeline.tsx | 3 +- .../PreformattedText/PreformattedText.tsx | 3 +- 34 files changed, 232 insertions(+), 250 deletions(-) create mode 100644 .changeset/six-books-arrive.md diff --git a/.changeset/six-books-arrive.md b/.changeset/six-books-arrive.md new file mode 100644 index 0000000000..785424f635 --- /dev/null +++ b/.changeset/six-books-arrive.md @@ -0,0 +1,23 @@ +--- +'@backstage/plugin-techdocs-module-addons-contrib': patch +'@backstage/plugin-microsoft-calendar': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-catalog-graph': patch +'@backstage/plugin-cost-insights': patch +'@backstage/plugin-tech-insights': patch +'@backstage/plugin-code-climate': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-gcalendar': patch +'@backstage/plugin-org-react': patch +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-xcmetrics': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-playlist': patch +'@backstage/plugin-catalog': patch +'@backstage/plugin-explore': patch +'@backstage/plugin-bazaar': patch +'@backstage/plugin-search': patch +'@backstage/plugin-org': patch +--- + +Internal theme type updates diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx index 64452b7191..3e2fbd1078 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx @@ -17,11 +17,10 @@ import AsyncApi from '@asyncapi/react-component'; import '@asyncapi/react-component/styles/default.css'; import { makeStyles, alpha, darken } from '@material-ui/core/styles'; -import { BackstageTheme } from '@backstage/theme'; import React from 'react'; import { useTheme } from '@material-ui/core'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ root: { fontFamily: 'inherit', '& .bg-white': { diff --git a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx index 61d1dfebb9..eb125d2111 100644 --- a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx +++ b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx @@ -29,7 +29,6 @@ import { BazaarProject } from '../../types'; import { DateTime } from 'luxon'; import { HomePageBazaarInfoCard } from '../HomePageBazaarInfoCard'; import { Entity } from '@backstage/catalog-model'; -import { BackstageTheme } from '@backstage/theme'; type Props = { project: BazaarProject; @@ -42,7 +41,7 @@ type StyleProps = { height: 'large' | 'small'; }; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ description: (props: StyleProps) => ({ height: props.height === 'large' ? '10rem' : '4rem', WebkitBackgroundClip: 'text', diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomLabel.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomLabel.tsx index 19082cfe81..2717d813cc 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomLabel.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomLabel.tsx @@ -14,14 +14,13 @@ * limitations under the License. */ import { DependencyGraphTypes } from '@backstage/core-components'; -import { BackstageTheme } from '@backstage/theme'; import makeStyles from '@material-ui/core/styles/makeStyles'; import React from 'react'; import { EntityEdgeData } from './types'; import classNames from 'classnames'; const useStyles = makeStyles( - (theme: BackstageTheme) => ({ + theme => ({ text: { fill: theme.palette.textContrast, }, diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomNode.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomNode.tsx index edcdb97fcb..1229ad28f9 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomNode.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/CustomNode.tsx @@ -15,7 +15,6 @@ */ import { DependencyGraphTypes } from '@backstage/core-components'; import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; -import { BackstageTheme } from '@backstage/theme'; import { makeStyles } from '@material-ui/core/styles'; import classNames from 'classnames'; import React, { useLayoutEffect, useRef, useState } from 'react'; @@ -23,7 +22,7 @@ import { EntityKindIcon } from './EntityKindIcon'; import { EntityNodeData } from './types'; const useStyles = makeStyles( - (theme: BackstageTheme) => ({ + theme => ({ node: { fill: theme.palette.grey[300], stroke: theme.palette.grey[300], diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx index 5e6e8ff3a9..9cd377b447 100644 --- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx +++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx @@ -24,7 +24,7 @@ import { Popover, Tooltip, } from '@material-ui/core'; -import { makeStyles } from '@material-ui/core/styles'; +import { Theme, makeStyles } from '@material-ui/core/styles'; import BugReportIcon from '@material-ui/icons/BugReport'; import MoreVert from '@material-ui/icons/MoreVert'; import FileCopyTwoToneIcon from '@material-ui/icons/FileCopyTwoTone'; @@ -32,7 +32,6 @@ import React, { useCallback, useState } from 'react'; import { IconComponent } from '@backstage/core-plugin-api'; import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha'; import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common/alpha'; -import { BackstageTheme } from '@backstage/theme'; import { UnregisterEntity, UnregisterEntityOptions } from './UnregisterEntity'; import { useApi, alertApiRef } from '@backstage/core-plugin-api'; @@ -40,7 +39,7 @@ import { useApi, alertApiRef } from '@backstage/core-plugin-api'; export type EntityContextMenuClassKey = 'button'; const useStyles = makeStyles( - (theme: BackstageTheme) => { + (theme: Theme) => { return { button: { color: theme.page.fontColor, diff --git a/plugins/catalog/src/components/SystemDiagramCard/SystemDiagramCard.tsx b/plugins/catalog/src/components/SystemDiagramCard/SystemDiagramCard.tsx index ec4d13a2f2..f3cc265653 100644 --- a/plugins/catalog/src/components/SystemDiagramCard/SystemDiagramCard.tsx +++ b/plugins/catalog/src/components/SystemDiagramCard/SystemDiagramCard.tsx @@ -33,7 +33,6 @@ import { Box, makeStyles, Typography, useTheme } from '@material-ui/core'; import ZoomOutMap from '@material-ui/icons/ZoomOutMap'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -import { BackstageTheme } from '@backstage/theme'; import { DependencyGraph, @@ -55,7 +54,7 @@ export type SystemDiagramCardClassKey = | 'resourceNode'; const useStyles = makeStyles( - (theme: BackstageTheme) => ({ + theme => ({ domainNode: { fill: theme.palette.primary.main, stroke: theme.palette.border, diff --git a/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.tsx b/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.tsx index 5aae7d4194..ca5b24565c 100644 --- a/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.tsx +++ b/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.tsx @@ -17,10 +17,9 @@ import React from 'react'; import { CodeClimateData } from '../../api'; import { Link } from '@backstage/core-components'; -import { Box, makeStyles, Typography } from '@material-ui/core'; -import { BackstageTheme } from '@backstage/theme'; +import { Box, makeStyles, Theme, Typography } from '@material-ui/core'; -const letterStyle = (theme: BackstageTheme) => ({ +const letterStyle = (theme: Theme) => ({ color: theme.palette.common.white, border: 0, borderRadius: '3px', @@ -32,7 +31,7 @@ const fontSize = { fontSize: '25px', }; -const letterColor = (letter: string, theme: BackstageTheme) => { +const letterColor = (letter: string, theme: Theme) => { if (letter === 'A') { return theme.palette.success.main || '#45d298'; } else if (letter === 'B') { @@ -49,7 +48,7 @@ const letterColor = (letter: string, theme: BackstageTheme) => { }; const useStyles = makeStyles< - BackstageTheme, + Theme, { maintainabilityLetter: string; testCoverageLetter: string; diff --git a/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsThemeProvider.tsx b/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsThemeProvider.tsx index 7c64c41116..40745c4301 100644 --- a/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsThemeProvider.tsx +++ b/plugins/cost-insights/src/components/CostInsightsPage/CostInsightsThemeProvider.tsx @@ -17,9 +17,9 @@ import React, { PropsWithChildren } from 'react'; import { createTheme as createMuiTheme, + Theme, ThemeProvider, } from '@material-ui/core'; -import { BackstageTheme } from '@backstage/theme'; import { costInsightsDarkTheme, costInsightsLightTheme, @@ -31,7 +31,7 @@ export const CostInsightsThemeProvider = ({ }: PropsWithChildren<{}>) => { return ( + theme={(theme: Theme) => createMuiTheme({ ...theme, palette: { diff --git a/plugins/cost-insights/src/utils/styles.ts b/plugins/cost-insights/src/utils/styles.ts index 6ccc81c963..cec9c0150d 100644 --- a/plugins/cost-insights/src/utils/styles.ts +++ b/plugins/cost-insights/src/utils/styles.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createStyles, emphasize, @@ -21,8 +22,8 @@ import { lighten, makeStyles, } from '@material-ui/core'; -import { BackstageTheme } from '@backstage/theme'; import { CostInsightsTheme, CostInsightsThemeOptions } from '../types'; +import { BackstageTheme } from '@backstage/theme'; export const costInsightsLightTheme = { palette: { @@ -155,7 +156,7 @@ export const useBarChartStyles = (theme: CostInsightsTheme) => ({ }, }); -export const useBarChartLayoutStyles = makeStyles(theme => +export const useBarChartLayoutStyles = makeStyles(theme => createStyles({ wrapper: { display: 'flex', @@ -197,7 +198,7 @@ export const useBarChartStepperButtonStyles = makeStyles( }), ); -export const useBarChartLabelStyles = makeStyles(theme => +export const useBarChartLabelStyles = makeStyles(theme => createStyles({ foreignObject: { textAlign: 'center', @@ -222,7 +223,7 @@ export const useBarChartLabelStyles = makeStyles(theme => }), ); -export const useCostInsightsStyles = makeStyles(theme => ({ +export const useCostInsightsStyles = makeStyles(theme => ({ h6Subtle: { ...theme.typography.h6, fontWeight: 'normal', @@ -230,84 +231,80 @@ export const useCostInsightsStyles = makeStyles(theme => ({ }, })); -export const useCostInsightsTabsStyles = makeStyles( - (theme: BackstageTheme) => ({ - tabs: { - borderBottom: `1px solid ${theme.palette.textVerySubtle}`, - backgroundColor: brighten(theme.palette.background.default), - padding: theme.spacing(0, 4), +export const useCostInsightsTabsStyles = makeStyles(theme => ({ + tabs: { + borderBottom: `1px solid ${theme.palette.textVerySubtle}`, + backgroundColor: brighten(theme.palette.background.default), + padding: theme.spacing(0, 4), + }, + tab: { + minHeight: 68, + minWidth: 180, + padding: theme.spacing(1, 4), + '&:hover': { + color: 'inherit', + backgroundColor: 'inherit', }, - tab: { - minHeight: 68, - minWidth: 180, - padding: theme.spacing(1, 4), - '&:hover': { - color: 'inherit', - backgroundColor: 'inherit', - }, + }, + indicator: { + backgroundColor: theme.palette.navigation.indicator, + height: 4, + }, + tabLabel: { + display: 'flex', + alignItems: 'center', + }, + tabLabelText: { + fontSize: theme.typography.fontSize, + fontWeight: theme.typography.fontWeightBold, + }, + menuItem: { + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + minWidth: 180, + padding: theme.spacing(2, 2), + }, + menuItemSelected: { + backgroundColor: lighten(theme.palette.background.default, 0.3), + }, +})); + +export const useAlertCardActionHeaderStyles = makeStyles(theme => + createStyles({ + root: { + paddingBottom: theme.spacing(2), + borderRadius: 'unset', }, - indicator: { - backgroundColor: theme.palette.navigation.indicator, - height: 4, - }, - tabLabel: { - display: 'flex', - alignItems: 'center', - }, - tabLabelText: { + title: { fontSize: theme.typography.fontSize, fontWeight: theme.typography.fontWeightBold, + lineHeight: 1.5, }, - menuItem: { - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - minWidth: 180, - padding: theme.spacing(2, 2), - }, - menuItemSelected: { - backgroundColor: lighten(theme.palette.background.default, 0.3), + action: { + margin: 0, }, }), ); -export const useAlertCardActionHeaderStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - root: { - paddingBottom: theme.spacing(2), - borderRadius: 'unset', - }, - title: { - fontSize: theme.typography.fontSize, - fontWeight: theme.typography.fontWeightBold, - lineHeight: 1.5, - }, - action: { - margin: 0, - }, - }), +export const useCostGrowthStyles = makeStyles(theme => + createStyles({ + excess: { + color: theme.palette.status.error, + }, + savings: { + color: theme.palette.status.ok, + }, + indicator: { + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'flex-end', + }, + }), ); -export const useCostGrowthStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - excess: { - color: theme.palette.status.error, - }, - savings: { - color: theme.palette.status.ok, - }, - indicator: { - display: 'flex', - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'flex-end', - }, - }), -); - -export const useCostGrowthLegendStyles = makeStyles(theme => ({ +export const useCostGrowthLegendStyles = makeStyles(theme => ({ h5: { ...theme.typography.h5, fontWeight: 500, @@ -339,44 +336,43 @@ export const useCostGrowthLegendStyles = makeStyles(theme => ({ }, })); -export const useBarChartStepperStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - paper: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-around', - alignItems: 'center', - background: 'transparent', - padding: 8, - }, - step: { - backgroundColor: theme.palette.action.disabled, - borderRadius: '50%', - width: 9, - height: 9, - margin: '0 2px', - }, - stepActive: { - backgroundColor: theme.palette.primary.main, - }, - steps: { - display: 'flex', - flexDirection: 'row', - }, - backButton: { - position: 'absolute', - left: 0, - top: 'calc(50% - 60px)', - zIndex: 100, - }, - nextButton: { - position: 'absolute', - right: 0, - top: 'calc(50% - 60px)', - zIndex: 100, - }, - }), +export const useBarChartStepperStyles = makeStyles(theme => + createStyles({ + paper: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-around', + alignItems: 'center', + background: 'transparent', + padding: 8, + }, + step: { + backgroundColor: theme.palette.action.disabled, + borderRadius: '50%', + width: 9, + height: 9, + margin: '0 2px', + }, + stepActive: { + backgroundColor: theme.palette.primary.main, + }, + steps: { + display: 'flex', + flexDirection: 'row', + }, + backButton: { + position: 'absolute', + left: 0, + top: 'calc(50% - 60px)', + zIndex: 100, + }, + nextButton: { + position: 'absolute', + right: 0, + top: 'calc(50% - 60px)', + zIndex: 100, + }, + }), ); export const useNavigationStyles = makeStyles( @@ -451,32 +447,30 @@ export const useTooltipStyles = makeStyles( }), ); -export const useAlertInsightsSectionStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - button: { - backgroundColor: theme.palette.textVerySubtle, - color: theme.palette.text.primary, - }, - }), +export const useAlertInsightsSectionStyles = makeStyles(theme => + createStyles({ + button: { + backgroundColor: theme.palette.textVerySubtle, + color: theme.palette.text.primary, + }, + }), ); -export const useSelectStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - select: { - minWidth: 200, - textAlign: 'start', - backgroundColor: theme.palette.background.paper, +export const useSelectStyles = makeStyles(theme => + createStyles({ + select: { + minWidth: 200, + textAlign: 'start', + backgroundColor: theme.palette.background.paper, + }, + menuItem: { + minWidth: 200, + padding: theme.spacing(2), + '&.compact': { + padding: theme.spacing(1, 2), }, - menuItem: { - minWidth: 200, - padding: theme.spacing(2), - '&.compact': { - padding: theme.spacing(1, 2), - }, - }, - }), + }, + }), ); export const useActionItemCardStyles = makeStyles( @@ -513,52 +507,48 @@ export const useActionItemCardStyles = makeStyles( }), ); -export const useProductInsightsCardStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - root: { - padding: theme.spacing(2, 2, 2, 2.5), // restore backstage default padding - }, - action: { - margin: 0, // unset negative margins - }, - }), +export const useProductInsightsCardStyles = makeStyles(theme => + createStyles({ + root: { + padding: theme.spacing(2, 2, 2, 2.5), // restore backstage default padding + }, + action: { + margin: 0, // unset negative margins + }, + }), ); -export const useProductInsightsChartStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - indicator: { - fontWeight: theme.typography.fontWeightBold, - fontSize: '1.25rem', - }, - actions: { - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - }, - }), +export const useProductInsightsChartStyles = makeStyles(theme => + createStyles({ + indicator: { + fontWeight: theme.typography.fontWeightBold, + fontSize: '1.25rem', + }, + actions: { + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + }, + }), ); -export const useBackdropStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - root: { - zIndex: theme.zIndex.modal, - }, - }), +export const useBackdropStyles = makeStyles(theme => + createStyles({ + root: { + zIndex: theme.zIndex.modal, + }, + }), ); -export const useSubtleTypographyStyles = makeStyles( - (theme: BackstageTheme) => - createStyles({ - root: { - color: theme.palette.textSubtle, - }, - }), +export const useSubtleTypographyStyles = makeStyles(theme => + createStyles({ + root: { + color: theme.palette.textSubtle, + }, + }), ); -export const useEntityDialogStyles = makeStyles(theme => +export const useEntityDialogStyles = makeStyles(theme => createStyles({ dialogContent: { padding: 0, @@ -597,7 +587,7 @@ export const useEntityDialogStyles = makeStyles(theme => }), ); -export const useAlertDialogStyles = makeStyles((theme: BackstageTheme) => +export const useAlertDialogStyles = makeStyles(theme => createStyles({ content: { padding: theme.spacing(0, 5, 2, 5), diff --git a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx index 2c8f6f6a6e..ea989c2834 100644 --- a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx +++ b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx @@ -34,7 +34,6 @@ import { humanizeEntityRef, getEntityRelations, } from '@backstage/plugin-catalog-react'; -import { BackstageTheme } from '@backstage/theme'; import { makeStyles, Typography, useTheme } from '@material-ui/core'; import ZoomOutMap from '@material-ui/icons/ZoomOutMap'; import classNames from 'classnames'; @@ -42,7 +41,7 @@ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; const useStyles = makeStyles( - (theme: BackstageTheme) => ({ + theme => ({ graph: { minHeight: '100%', flex: 1, diff --git a/plugins/gcalendar/src/components/CalendarCard/AttendeeChip.tsx b/plugins/gcalendar/src/components/CalendarCard/AttendeeChip.tsx index 4e36eff55a..9008f263bf 100644 --- a/plugins/gcalendar/src/components/CalendarCard/AttendeeChip.tsx +++ b/plugins/gcalendar/src/components/CalendarCard/AttendeeChip.tsx @@ -13,17 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; - -import { BackstageTheme } from '@backstage/theme'; - import { Badge, Chip, makeStyles } from '@material-ui/core'; import CancelIcon from '@material-ui/icons/Cancel'; import CheckIcon from '@material-ui/icons/CheckCircle'; - import { EventAttendee, ResponseStatus } from '../../api'; -const useStyles = makeStyles((theme: BackstageTheme) => { +const useStyles = makeStyles(theme => { const getIconColor = (responseStatus?: string) => { if (!responseStatus) return theme.palette.primary.light; diff --git a/plugins/microsoft-calendar/src/components/AttendeeChip.tsx b/plugins/microsoft-calendar/src/components/AttendeeChip.tsx index b3b5b98301..25358519e6 100644 --- a/plugins/microsoft-calendar/src/components/AttendeeChip.tsx +++ b/plugins/microsoft-calendar/src/components/AttendeeChip.tsx @@ -13,17 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; - -import { BackstageTheme } from '@backstage/theme'; - import { Badge, Chip, makeStyles } from '@material-ui/core'; import CancelIcon from '@material-ui/icons/Cancel'; import CheckIcon from '@material-ui/icons/CheckCircle'; - import { Attendee, ResponseStatusMap } from '../api'; -const useStyles = makeStyles((theme: BackstageTheme) => { +const useStyles = makeStyles(theme => { const getIconColor = (responseStatus?: string) => { if (!responseStatus) return theme.palette.primary.light; diff --git a/plugins/org-react/src/components/GroupListPicker/GroupListPickerButton.tsx b/plugins/org-react/src/components/GroupListPicker/GroupListPickerButton.tsx index 01ffe7e58b..f4255a18be 100644 --- a/plugins/org-react/src/components/GroupListPicker/GroupListPickerButton.tsx +++ b/plugins/org-react/src/components/GroupListPicker/GroupListPickerButton.tsx @@ -15,12 +15,11 @@ */ import React from 'react'; -import { BackstageTheme } from '@backstage/theme'; import { makeStyles, Typography, Button } from '@material-ui/core'; import KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'; import PeopleIcon from '@material-ui/icons/People'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ btn: { padding: '10px', width: '100%', diff --git a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx index 2725991d0d..cffed95c7a 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/ComponentsGrid.tsx @@ -22,7 +22,6 @@ import { ResponseErrorPanel, } from '@backstage/core-components'; import { useRouteRef } from '@backstage/core-plugin-api'; -import { BackstageTheme } from '@backstage/theme'; import { Box, createStyles, @@ -36,7 +35,7 @@ import { catalogIndexRouteRef } from '../../../routes'; import { useGetEntities } from './useGetEntities'; import { EntityRelationAggregation } from './types'; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ card: { border: `1px solid ${theme.palette.divider}`, diff --git a/plugins/playlist/src/components/PlaylistCard/PlaylistCard.tsx b/plugins/playlist/src/components/PlaylistCard/PlaylistCard.tsx index 1bf698f6be..1408607133 100644 --- a/plugins/playlist/src/components/PlaylistCard/PlaylistCard.tsx +++ b/plugins/playlist/src/components/PlaylistCard/PlaylistCard.tsx @@ -22,7 +22,6 @@ import { import { useRouteRef } from '@backstage/core-plugin-api'; import { EntityRefLinks } from '@backstage/plugin-catalog-react'; import { Playlist } from '@backstage/plugin-playlist-common'; -import { BackstageTheme } from '@backstage/theme'; import { Box, Card, @@ -36,10 +35,9 @@ import { } from '@material-ui/core'; import LockIcon from '@material-ui/icons/Lock'; import React from 'react'; - import { playlistRouteRef } from '../../routes'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ cardHeader: { position: 'relative', }, diff --git a/plugins/scaffolder-react/src/next/components/ScaffolderPageContextMenu/ScaffolderPageContextMenu.tsx b/plugins/scaffolder-react/src/next/components/ScaffolderPageContextMenu/ScaffolderPageContextMenu.tsx index 7ccbe4ef8d..8326b361e1 100644 --- a/plugins/scaffolder-react/src/next/components/ScaffolderPageContextMenu/ScaffolderPageContextMenu.tsx +++ b/plugins/scaffolder-react/src/next/components/ScaffolderPageContextMenu/ScaffolderPageContextMenu.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ -import { BackstageTheme } from '@backstage/theme'; import IconButton from '@material-ui/core/IconButton'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; @@ -28,7 +27,7 @@ import List from '@material-ui/icons/List'; import MoreVert from '@material-ui/icons/MoreVert'; import React, { useState } from 'react'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ button: { color: theme.page.fontColor, }, diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/StepIcon.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/StepIcon.tsx index cecf682596..58f2eb9050 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/StepIcon.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/StepIcon.tsx @@ -13,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; -import { BackstageTheme } from '@backstage/theme'; +import React from 'react'; import { CircularProgress, makeStyles, StepIconProps } from '@material-ui/core'; import RemoveCircleOutline from '@material-ui/icons/RemoveCircleOutline'; import PanoramaFishEyeIcon from '@material-ui/icons/PanoramaFishEye'; @@ -23,7 +22,7 @@ import classNames from 'classnames'; import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline'; import ErrorOutline from '@material-ui/icons/ErrorOutline'; -const useStepIconStyles = makeStyles((theme: BackstageTheme) => ({ +const useStepIconStyles = makeStyles(theme => ({ root: { color: theme.palette.text.disabled, }, diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskBorder.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskBorder.tsx index 2d8e99bfe7..d7a96e3864 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskBorder.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskBorder.tsx @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; import { LinearProgress, makeStyles } from '@material-ui/core'; -import { BackstageTheme } from '@backstage/theme'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ failed: { backgroundColor: theme.palette.error.main, }, diff --git a/plugins/scaffolder/src/legacy/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/legacy/TaskPage/TaskPage.tsx index e2165ed358..affb9a31b7 100644 --- a/plugins/scaffolder/src/legacy/TaskPage/TaskPage.tsx +++ b/plugins/scaffolder/src/legacy/TaskPage/TaskPage.tsx @@ -28,7 +28,6 @@ import { useRouteRef, useRouteRefParams, } from '@backstage/core-plugin-api'; -import { BackstageTheme } from '@backstage/theme'; import { Button, CircularProgress, @@ -125,7 +124,7 @@ const StepTimeTicker = ({ step }: { step: TaskStep }) => { return {time}; }; -const useStepIconStyles = makeStyles((theme: BackstageTheme) => +const useStepIconStyles = makeStyles(theme => createStyles({ root: { color: theme.palette.text.disabled, diff --git a/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResults.tsx b/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResults.tsx index ae9374438f..9319f5e836 100644 --- a/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResults.tsx +++ b/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResults.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ -import { BackstageTheme } from '@backstage/theme'; import Accordion from '@material-ui/core/Accordion'; import AccordionDetails from '@material-ui/core/AccordionDetails'; import AccordionSummary from '@material-ui/core/AccordionSummary'; @@ -28,7 +27,7 @@ import { useDryRun } from '../DryRunContext'; import { DryRunResultsList } from './DryRunResultsList'; import { DryRunResultsView } from './DryRunResultsView'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ header: { height: 48, minHeight: 0, diff --git a/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResultsList.tsx b/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResultsList.tsx index df6e8ef5f2..38cc3f1762 100644 --- a/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResultsList.tsx +++ b/plugins/scaffolder/src/next/TemplateEditorPage/DryRunResults/DryRunResultsList.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ -import { BackstageTheme } from '@backstage/theme'; import IconButton from '@material-ui/core/IconButton'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; @@ -30,7 +29,7 @@ import React from 'react'; import { useDryRun } from '../DryRunContext'; import { downloadBlob } from '../../../lib/download'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ root: { overflowY: 'auto', background: theme.palette.background.default, diff --git a/plugins/search/src/components/SearchType/SearchType.Tabs.tsx b/plugins/search/src/components/SearchType/SearchType.Tabs.tsx index 57a311b00c..5b3990f7bb 100644 --- a/plugins/search/src/components/SearchType/SearchType.Tabs.tsx +++ b/plugins/search/src/components/SearchType/SearchType.Tabs.tsx @@ -16,10 +16,9 @@ import React, { useEffect } from 'react'; import { useSearch } from '@backstage/plugin-search-react'; -import { BackstageTheme } from '@backstage/theme'; import { makeStyles, Tab, Tabs } from '@material-ui/core'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ tabs: { borderBottom: `1px solid ${theme.palette.textVerySubtle}`, }, diff --git a/plugins/sonarqube/src/components/SonarQubeCard/Percentage.tsx b/plugins/sonarqube/src/components/SonarQubeCard/Percentage.tsx index 406817de4b..efc19d4bf5 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/Percentage.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/Percentage.tsx @@ -14,13 +14,12 @@ * limitations under the License. */ -import { BackstageTheme } from '@backstage/theme'; import { makeStyles } from '@material-ui/core/styles'; import { useTheme } from '@material-ui/core'; import { Circle } from 'rc-progress'; import React from 'react'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ root: { height: theme.spacing(3), width: theme.spacing(3), @@ -29,7 +28,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({ export const Percentage = ({ value }: { value?: string }) => { const classes = useStyles(); - const theme = useTheme(); + const theme = useTheme(); return ( { +const useStyles = makeStyles(theme => { const commonCardRating: CSSProperties = { height: theme.spacing(3), width: theme.spacing(3), diff --git a/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx b/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx index 2f136cc5fe..af1b5059ba 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx @@ -14,12 +14,11 @@ * limitations under the License. */ -import { BackstageTheme } from '@backstage/theme'; import { makeStyles } from '@material-ui/core/styles'; import Typography from '@material-ui/core/Typography'; import React from 'react'; -const useStyles = makeStyles((theme: BackstageTheme) => { +const useStyles = makeStyles(theme => { return { value: { fontSize: '1.5rem', diff --git a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx index 8002784c9e..cfff074368 100644 --- a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx +++ b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx @@ -18,11 +18,10 @@ import React from 'react'; import { makeStyles, Grid, Typography } from '@material-ui/core'; import { InfoCard } from '@backstage/core-components'; import { CheckResult } from '@backstage/plugin-tech-insights-common'; -import { BackstageTheme } from '@backstage/theme'; import { Alert } from '@material-ui/lab'; import { ScorecardsList } from '../ScorecardsList'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ subheader: { fontWeight: 'bold', paddingLeft: theme.spacing(0.5), diff --git a/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx b/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx index e8e57b0afe..1a9d04a9de 100644 --- a/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx +++ b/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx @@ -19,11 +19,10 @@ import { useApi } from '@backstage/core-plugin-api'; import { makeStyles, List, ListItem, ListItemText } from '@material-ui/core'; import { techInsightsApiRef } from '../../api'; import { CheckResult } from '@backstage/plugin-tech-insights-common'; -import { BackstageTheme } from '@backstage/theme'; import { Alert } from '@material-ui/lab'; import { MarkdownContent } from '@backstage/core-components'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ listItemText: { paddingRight: theme.spacing(0.5), }, diff --git a/plugins/techdocs-module-addons-contrib/src/TextSize/TextSize.tsx b/plugins/techdocs-module-addons-contrib/src/TextSize/TextSize.tsx index fc865c7826..50cc59b814 100644 --- a/plugins/techdocs-module-addons-contrib/src/TextSize/TextSize.tsx +++ b/plugins/techdocs-module-addons-contrib/src/TextSize/TextSize.tsx @@ -33,11 +33,11 @@ import { Slider, IconButton, Typography, + Theme, } from '@material-ui/core'; import AddIcon from '@material-ui/icons/Add'; import RemoveIcon from '@material-ui/icons/Remove'; -import { BackstageTheme } from '@backstage/theme'; import { useShadowRootElements } from '@backstage/plugin-techdocs-react'; const boxShadow = @@ -116,7 +116,7 @@ const marks = [ }, ]; -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ container: { color: theme.palette.textSubtle, display: 'flex', @@ -139,7 +139,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({ export const TextSizeAddon = () => { const classes = useStyles(); - const theme = useTheme(); + const theme = useTheme(); const [body] = useShadowRootElements(['body']); const [value, setValue] = useState(() => { @@ -182,7 +182,7 @@ export const TextSizeAddon = () => { if (!body) return; const htmlFontSize = ( - theme.typography as BackstageTheme['typography'] & { + theme.typography as Theme['typography'] & { htmlFontSize?: number; } )?.htmlFontSize ?? 16; diff --git a/plugins/xcmetrics/src/components/Accordion/Accordion.tsx b/plugins/xcmetrics/src/components/Accordion/Accordion.tsx index 2e2100a816..5c418de496 100644 --- a/plugins/xcmetrics/src/components/Accordion/Accordion.tsx +++ b/plugins/xcmetrics/src/components/Accordion/Accordion.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { Accordion as MuiAccordion, AccordionSummary as MuiAccordionSummary, @@ -23,9 +24,8 @@ import { } from '@material-ui/core'; import React, { PropsWithChildren } from 'react'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import { BackstageTheme } from '@backstage/theme'; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ heading: { flexBasis: '33.33%', diff --git a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx index 949f430ce2..86db3be858 100644 --- a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx +++ b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createStyles, Divider, Grid, makeStyles } from '@material-ui/core'; import React from 'react'; import { BuildResponse, xcmetricsApiRef } from '../../api'; @@ -22,12 +23,11 @@ import useAsync from 'react-use/lib/useAsync'; import { useApi } from '@backstage/core-plugin-api'; import { formatDuration, formatStatus, formatTime } from '../../utils'; import { StatusIcon } from '../StatusIcon'; -import { BackstageTheme } from '@backstage/theme'; import { Accordion } from '../Accordion'; import { BuildTimeline } from '../BuildTimeline'; import { PreformattedText } from '../PreformattedText'; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ divider: { marginTop: theme.spacing(2), diff --git a/plugins/xcmetrics/src/components/BuildList/BuildList.tsx b/plugins/xcmetrics/src/components/BuildList/BuildList.tsx index 20924b181b..85eee6009d 100644 --- a/plugins/xcmetrics/src/components/BuildList/BuildList.tsx +++ b/plugins/xcmetrics/src/components/BuildList/BuildList.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React, { useRef, useState } from 'react'; import { Table } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; @@ -22,9 +23,8 @@ import { BuildListFilter as Filters } from '../BuildListFilter'; import { DateTime } from 'luxon'; import { buildPageColumns } from '../BuildTableColumns'; import { BuildDetails, withRequest } from '../BuildDetails'; -import { BackstageTheme } from '@backstage/theme'; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ detailPanel: { padding: theme.spacing(2), diff --git a/plugins/xcmetrics/src/components/BuildTimeline/BuildTimeline.tsx b/plugins/xcmetrics/src/components/BuildTimeline/BuildTimeline.tsx index 54d84ff6c6..5c0a1b1e67 100644 --- a/plugins/xcmetrics/src/components/BuildTimeline/BuildTimeline.tsx +++ b/plugins/xcmetrics/src/components/BuildTimeline/BuildTimeline.tsx @@ -27,13 +27,12 @@ import { XAxis, YAxis, } from 'recharts'; -import { BackstageTheme } from '@backstage/theme'; import { Target } from '../../api'; import { formatSecondsInterval, formatPercentage } from '../../utils'; const EMPTY_HEIGHT = 100; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ toolTip: { backgroundColor: theme.palette.background.paper, diff --git a/plugins/xcmetrics/src/components/PreformattedText/PreformattedText.tsx b/plugins/xcmetrics/src/components/PreformattedText/PreformattedText.tsx index c2c3f8ce25..2b6a77cc9d 100644 --- a/plugins/xcmetrics/src/components/PreformattedText/PreformattedText.tsx +++ b/plugins/xcmetrics/src/components/PreformattedText/PreformattedText.tsx @@ -26,10 +26,9 @@ import { } from '@material-ui/core'; import CloseIcon from '@material-ui/icons/Close'; import React, { useState } from 'react'; -import { BackstageTheme } from '@backstage/theme'; import { cn } from '../../utils'; -const useStyles = makeStyles((theme: BackstageTheme) => +const useStyles = makeStyles(theme => createStyles({ pre: { whiteSpace: 'pre-line', From a1954468612589aab79f9eaf4e73db5286d34af9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:59:16 +0000 Subject: [PATCH 069/131] chore(deps): update chromaui/action digest to c7e9d12 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/verify_storybook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index 8ae1d19ae6..c428375a40 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -51,7 +51,7 @@ jobs: - run: yarn build-storybook - - uses: chromaui/action@723135c179d14b28039985d79da5c3d6ee1ac32e # v1 + - uses: chromaui/action@c7e9d129ad2b8e728e10522270e14596473a7958 # v1 with: token: ${{ secrets.GITHUB_TOKEN }} # projectToken intentionally shared to allow collaborators to run Chromatic on forks From f166f2328d5a98ae6efe37ab5668ca37c22a3d61 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:25:29 +0200 Subject: [PATCH 070/131] chore: reverting a deprecating the MissingAnnotationEmptyState component Signed-off-by: blam --- .../MissingAnnotationEmptyState.tsx | 87 ++++++++----------- 1 file changed, 37 insertions(+), 50 deletions(-) diff --git a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx index c89129670a..b8798043db 100644 --- a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx +++ b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx @@ -25,16 +25,29 @@ import { CodeSnippet } from '../CodeSnippet'; import { Link } from '../Link'; import { EmptyState } from './EmptyState'; -import { useEntity } from '@backstage/plugin-catalog-react'; -import { Entity } from '@backstage/catalog-model'; +const COMPONENT_YAML_TEMPLATE = `apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: example + description: example.com + annotations: + ANNOTATION: value +spec: + type: website + lifecycle: production + owner: user:guest`; + +const ANNOTATION_REGEXP = /^.*ANNOTATION.*$/m; +const ANNOTATION_YAML = COMPONENT_YAML_TEMPLATE.match(ANNOTATION_REGEXP)![0]; +const ANNOTATION_LINE = COMPONENT_YAML_TEMPLATE.split('\n').findIndex(line => + ANNOTATION_REGEXP.test(line), +); type Props = { annotation: string | string[]; readMoreUrl?: string; }; - export type MissingAnnotationEmptyStateClassKey = 'code'; - const useStyles = makeStyles( theme => ({ code: { @@ -47,38 +60,18 @@ const useStyles = makeStyles( { name: 'BackstageMissingAnnotationEmptyState' }, ); -function generateYamlExample( - annotations: string[], - entity?: Entity, -): { yamlText: string; lineNumbers: number[] } { - const kind = entity?.kind || 'Component'; - const name = entity?.metadata.name || 'example'; - const type = entity?.spec?.type || 'website'; - const owner = entity?.spec?.owner || 'user:default/guest'; - - const yamlText = `apiVersion: backstage.io/v1alpha1 -kind: ${kind} -metadata: - name: ${name} - annotations:${annotations.map(ann => `\n ${ann}: value`).join('')} -spec: - type: ${type} - owner: ${owner}`; - - let line = 6; // Line 6 is the line number that annotations are added to. - const lineNumbers: number[] = []; - annotations.forEach(() => { - lineNumbers.push(line); - line++; - }); - - return { - yamlText, - lineNumbers, - }; +function generateLineNumbers(lineCount: number) { + return Array.from(Array(lineCount + 1).keys(), i => i + ANNOTATION_LINE); } -function generateDescription(annotations: string[], entityKind = 'Component') { +function generateComponentYaml(annotations: string[]) { + const annotationYaml = annotations + .map(ann => ANNOTATION_YAML.replace('ANNOTATION', ann)) + .join('\n'); + return COMPONENT_YAML_TEMPLATE.replace(ANNOTATION_YAML, annotationYaml); +} + +function generateDescription(annotations: string[]) { const isSingular = annotations.length <= 1; return ( <> @@ -91,21 +84,17 @@ function generateDescription(annotations: string[], entityKind = 'Component') { ))}{' '} {isSingular ? 'is' : 'are'} missing. You need to add the{' '} - {isSingular ? 'annotation' : 'annotations'} to your {entityKind} if you - want to enable this tool. + {isSingular ? 'annotation' : 'annotations'} to your component if you want + to enable this tool. ); } +/** + * @public + * @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyuseState} instead + */ export function MissingAnnotationEmptyState(props: Props) { - let entity: Entity | undefined; - try { - const entityContext = useEntity(); - entity = entityContext.entity; - } catch (err) { - // ignore when entity context doesnt exist - } - const { annotation, readMoreUrl } = props; const annotations = Array.isArray(annotation) ? annotation : [annotation]; const url = @@ -113,25 +102,23 @@ export function MissingAnnotationEmptyState(props: Props) { 'https://backstage.io/docs/features/software-catalog/well-known-annotations'; const classes = useStyles(); - const entityKind = entity?.kind || 'Component'; - const { yamlText, lineNumbers } = generateYamlExample(annotations, entity); return ( - Add the annotation to your {entityKind} YAML as shown in the + Add the annotation to your component YAML as shown in the highlighted example below: From 0c5b78650c97b574b89b323d33728ed1e827bcb3 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:26:40 +0200 Subject: [PATCH 071/131] chore: deprecate changeset Signed-off-by: blam --- .changeset/real-pears-study.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/real-pears-study.md diff --git a/.changeset/real-pears-study.md b/.changeset/real-pears-study.md new file mode 100644 index 0000000000..9cbf9d8a28 --- /dev/null +++ b/.changeset/real-pears-study.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Reverting the `MissingAnnotationEmptyState` component due to cyclical dependency. This component is now deprecated, please use the import from `@backstage/plugin-catalog-react` instead to use the new functionality From 6c357184e27d86796fac6005ec6a597f994aa19d Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:35:55 +0200 Subject: [PATCH 072/131] feat: move the MissingAnnotationEmptyState to catalog-react Signed-off-by: blam --- .changeset/wet-shrimps-approve.md | 5 + .../MissingAnnotationEmptyState.tsx | 146 ++++++++++++++++++ .../MissingAnnotationEmptyState/index.ts | 16 ++ plugins/catalog-react/src/components/index.ts | 1 + 4 files changed, 168 insertions(+) create mode 100644 .changeset/wet-shrimps-approve.md create mode 100644 plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx create mode 100644 plugins/catalog-react/src/components/MissingAnnotationEmptyState/index.ts diff --git a/.changeset/wet-shrimps-approve.md b/.changeset/wet-shrimps-approve.md new file mode 100644 index 0000000000..b75a28f355 --- /dev/null +++ b/.changeset/wet-shrimps-approve.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Export `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` diff --git a/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx new file mode 100644 index 0000000000..887cb68648 --- /dev/null +++ b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx @@ -0,0 +1,146 @@ +/* + * 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 { BackstageTheme } from '@backstage/theme'; +import Box from '@material-ui/core/Box'; +import Button from '@material-ui/core/Button'; +import { makeStyles } from '@material-ui/core/styles'; +import Typography from '@material-ui/core/Typography'; +import React from 'react'; +import { CodeSnippet, Link, EmptyState } from '@backstage/core-components'; +import { Entity } from '@backstage/catalog-model'; +import { useEntity } from '../../hooks'; + +type Props = { + annotation: string | string[]; + readMoreUrl?: string; +}; + +/** @public */ +export type MissingAnnotationEmptyStateClassKey = 'code'; + +const useStyles = makeStyles( + theme => ({ + code: { + borderRadius: 6, + margin: theme.spacing(2, 0), + background: + theme.palette.type === 'dark' ? '#444' : theme.palette.common.white, + }, + }), + { name: 'BackstageMissingAnnotationEmptyState' }, +); + +function generateYamlExample( + annotations: string[], + entity?: Entity, +): { yamlText: string; lineNumbers: number[] } { + const kind = entity?.kind || 'Component'; + const name = entity?.metadata.name || 'example'; + const type = entity?.spec?.type || 'website'; + const owner = entity?.spec?.owner || 'user:default/guest'; + + const yamlText = `apiVersion: backstage.io/v1alpha1 +kind: ${kind} +metadata: + name: ${name} + annotations:${annotations.map(ann => `\n ${ann}: value`).join('')} +spec: + type: ${type} + owner: ${owner}`; + + let line = 6; // Line 6 is the line number that annotations are added to. + const lineNumbers: number[] = []; + annotations.forEach(() => { + lineNumbers.push(line); + line++; + }); + + return { + yamlText, + lineNumbers, + }; +} + +function generateDescription(annotations: string[], entityKind = 'Component') { + const isSingular = annotations.length <= 1; + return ( + <> + The {isSingular ? 'annotation' : 'annotations'}{' '} + {annotations + .map(ann => {ann}) + .reduce((prev, curr) => ( + <> + {prev}, {curr} + + ))}{' '} + {isSingular ? 'is' : 'are'} missing. You need to add the{' '} + {isSingular ? 'annotation' : 'annotations'} to your {entityKind} if you + want to enable this tool. + + ); +} + +/** + * @public + * Renders an empty state when an annotation is missing from an entity. + */ +export function MissingAnnotationEmptyState(props: Props) { + let entity: Entity | undefined; + try { + const entityContext = useEntity(); + entity = entityContext.entity; + } catch (err) { + // ignore when entity context doesnt exist + } + + const { annotation, readMoreUrl } = props; + const annotations = Array.isArray(annotation) ? annotation : [annotation]; + const url = + readMoreUrl || + 'https://backstage.io/docs/features/software-catalog/well-known-annotations'; + const classes = useStyles(); + + const entityKind = entity?.kind || 'Component'; + const { yamlText, lineNumbers } = generateYamlExample(annotations, entity); + return ( + + + Add the annotation to your {entityKind} YAML as shown in the + highlighted example below: + + + + + + + } + /> + ); +} diff --git a/plugins/catalog-react/src/components/MissingAnnotationEmptyState/index.ts b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/index.ts new file mode 100644 index 0000000000..96f6ee2b09 --- /dev/null +++ b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './MissingAnnotationEmptyState'; diff --git a/plugins/catalog-react/src/components/index.ts b/plugins/catalog-react/src/components/index.ts index 5b7247cdbd..a805550b1b 100644 --- a/plugins/catalog-react/src/components/index.ts +++ b/plugins/catalog-react/src/components/index.ts @@ -32,3 +32,4 @@ export * from './UserListPicker'; export * from './EntityProcessingStatusPicker'; export * from './EntityNamespacePicker'; export * from './EntityAutocompletePicker'; +export * from './MissingAnnotationEmptyState'; From 1c8b7a4b177280c4009d74ecbaa1241b2bacdf22 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:37:05 +0200 Subject: [PATCH 073/131] chore: change usage of the component Signed-off-by: blam --- .../EmptyState/MissingAnnotationEmptyState.tsx | 8 +++++++- .../components/EntityAdrContent/EntityAdrContent.tsx | 6 ++++-- .../EntityAirbrakeWidget/EntityAirbrakeWidget.tsx | 2 +- .../AllureReportComponent/AllureReportComponent.tsx | 10 +++++----- .../AzureSitesOverview.tsx | 7 +++---- .../BitriseBuildsComponent.tsx | 12 +++++------- plugins/circleci/src/components/Router.tsx | 6 ++++-- plugins/cloudbuild/src/components/Router.tsx | 6 ++++-- .../CodeClimateCardContents.tsx | 8 +++----- plugins/code-coverage/src/components/Router.tsx | 6 ++++-- .../src/components/DynatraceTab/DynatraceTab.tsx | 7 +++---- plugins/fossa/src/components/FossaCard/FossaCard.tsx | 6 ++++-- plugins/github-actions/src/components/Router.tsx | 6 ++++-- .../src/components/GithubDeploymentsCard.tsx | 11 +++++------ .../GoCdBuildsComponent/GoCdBuildsComponent.tsx | 6 ++++-- plugins/jenkins/src/components/Router.tsx | 6 +++--- plugins/kafka/src/Router.tsx | 6 ++++-- plugins/kubernetes-cluster/src/Router.tsx | 6 ++++-- plugins/kubernetes/src/Router.tsx | 6 ++++-- plugins/lighthouse/src/Router.tsx | 6 ++++-- plugins/newrelic-dashboard/src/Router.tsx | 6 ++++-- plugins/nomad/src/Router.tsx | 6 ++++-- .../EntityNomadAllocationListTable.tsx | 6 ++++-- .../EntityNomadJobVersionListCard.tsx | 6 ++++-- plugins/puppetdb/src/components/Router.tsx | 6 ++++-- plugins/rollbar/src/components/Router.tsx | 6 ++++-- .../SentryIssuesWidget/SentryIssuesWidget.tsx | 2 +- .../src/components/SonarQubeCard/SonarQubeCard.tsx | 6 ++++-- .../SonarQubeContentPage/SonarQubeContentPage.tsx | 6 ++++-- .../src/components/EntitySplunkOnCallCard.tsx | 6 ++++-- plugins/techdocs/src/Router.tsx | 6 ++++-- .../components/EntityVaultCard/EntityVaultCard.tsx | 6 ++++-- 32 files changed, 124 insertions(+), 81 deletions(-) diff --git a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx index b8798043db..efbfdb9999 100644 --- a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx +++ b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx @@ -47,7 +47,13 @@ type Props = { annotation: string | string[]; readMoreUrl?: string; }; + +/** + * @public + * @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyStateClassKey} instead + */ export type MissingAnnotationEmptyStateClassKey = 'code'; + const useStyles = makeStyles( theme => ({ code: { @@ -92,7 +98,7 @@ function generateDescription(annotations: string[]) { /** * @public - * @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyuseState} instead + * @deprecated This component is deprecated, please use {@link @backstage/plugin-catalog-react#MissingAnnotationEmptyState} instead */ export function MissingAnnotationEmptyState(props: Props) { const { annotation, readMoreUrl } = props; diff --git a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx b/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx index b1abd4f02c..261dd994fb 100644 --- a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx +++ b/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx @@ -24,7 +24,6 @@ import { Content, ContentHeader, InfoCard, - MissingAnnotationEmptyState, Progress, SupportButton, WarningPanel, @@ -38,7 +37,10 @@ import { isAdrAvailable, madrFilePathFilter, } from '@backstage/plugin-adr-common'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Box, Chip, diff --git a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx b/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx index 6780b80dbc..3e82d60d81 100644 --- a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx +++ b/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx @@ -19,7 +19,6 @@ import { EmptyState, ErrorPanel, InfoCard, - MissingAnnotationEmptyState, Progress, } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; @@ -29,6 +28,7 @@ import { makeStyles } from '@material-ui/core/styles'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { airbrakeApiRef } from '../../api'; +import { MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react'; import { AIRBRAKE_PROJECT_ID_ANNOTATION, useProjectId } from '../useProjectId'; const useStyles = makeStyles(() => ({ diff --git a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx index e7564dd097..21846af529 100644 --- a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx +++ b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx @@ -16,16 +16,16 @@ import React from 'react'; import { useApi } from '@backstage/core-plugin-api'; import { allureApiRef } from '../../api'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { ALLURE_PROJECT_ID_ANNOTATION, isAllureReportAvailable, getAllureProjectId, } from '../annotationHelpers'; -import { - MissingAnnotationEmptyState, - Progress, -} from '@backstage/core-components'; +import { Progress } from '@backstage/core-components'; import useAsync from 'react-use/lib/useAsync'; import { Entity } from '@backstage/catalog-model'; diff --git a/plugins/azure-sites/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx b/plugins/azure-sites/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx index 755a42f5da..dbed6cdbd6 100644 --- a/plugins/azure-sites/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx +++ b/plugins/azure-sites/src/components/AzureSitesOverviewComponent/AzureSitesOverview.tsx @@ -21,12 +21,11 @@ import { AZURE_WEB_SITE_NAME_ANNOTATION, useServiceEntityAnnotations, } from '../../hooks/useServiceEntityAnnotations'; +import { ErrorBoundary, ResponseErrorPanel } from '@backstage/core-components'; import { - ErrorBoundary, + useEntity, MissingAnnotationEmptyState, - ResponseErrorPanel, -} from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +} from '@backstage/plugin-catalog-react'; import { AzureSitesOverviewTable } from '../AzureSitesOverviewTableComponent/AzureSitesOverviewTable'; /** @public */ diff --git a/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.tsx b/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.tsx index 3c93fb20d7..f8a7f7ece4 100644 --- a/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.tsx +++ b/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.tsx @@ -15,18 +15,16 @@ */ import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import React, { useState } from 'react'; import { useBitriseBuildWorkflows } from '../../hooks/useBitriseBuildWorkflows'; import { AsyncState } from 'react-use/lib/useAsync'; import { BitriseBuildsTable } from '../BitriseBuildsTableComponent'; import { Item, Select } from '../Select'; -import { - Content, - ContentHeader, - MissingAnnotationEmptyState, - Page, -} from '@backstage/core-components'; +import { Content, ContentHeader, Page } from '@backstage/core-components'; export type Props = { entity: Entity; diff --git a/plugins/circleci/src/components/Router.tsx b/plugins/circleci/src/components/Router.tsx index 33e7d43dee..78261108ae 100644 --- a/plugins/circleci/src/components/Router.tsx +++ b/plugins/circleci/src/components/Router.tsx @@ -21,8 +21,10 @@ import { BuildWithStepsPage } from './BuildWithStepsPage/'; import { BuildsPage } from './BuildsPage'; import { CIRCLECI_ANNOTATION } from '../constants'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; /** @public */ export const isCircleCIAvailable = (entity: Entity) => diff --git a/plugins/cloudbuild/src/components/Router.tsx b/plugins/cloudbuild/src/components/Router.tsx index 2041416cfc..8c7687ee90 100644 --- a/plugins/cloudbuild/src/components/Router.tsx +++ b/plugins/cloudbuild/src/components/Router.tsx @@ -15,13 +15,15 @@ */ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Routes, Route } from 'react-router-dom'; import { buildRouteRef } from '../routes'; import { WorkflowRunDetails } from './WorkflowRunDetails'; import { WorkflowRunsTable } from './WorkflowRunsTable'; import { CLOUDBUILD_ANNOTATION } from './useProjectName'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** @public */ export const isCloudbuildAvailable = (entity: Entity) => diff --git a/plugins/code-climate/src/components/CodeClimateCardContents/CodeClimateCardContents.tsx b/plugins/code-climate/src/components/CodeClimateCardContents/CodeClimateCardContents.tsx index c9dc1894fc..4bf45c4b1d 100644 --- a/plugins/code-climate/src/components/CodeClimateCardContents/CodeClimateCardContents.tsx +++ b/plugins/code-climate/src/components/CodeClimateCardContents/CodeClimateCardContents.tsx @@ -19,13 +19,11 @@ import useAsync from 'react-use/lib/useAsync'; import { codeClimateApiRef } from '../../api'; import { CodeClimateTable } from '../CodeClimateTable'; import { CODECLIMATE_REPO_ID_ANNOTATION } from '../../plugin'; -import { useEntity } from '@backstage/plugin-catalog-react'; import { - EmptyState, - ErrorPanel, + useEntity, MissingAnnotationEmptyState, - Progress, -} from '@backstage/core-components'; +} from '@backstage/plugin-catalog-react'; +import { EmptyState, ErrorPanel, Progress } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; export const CodeClimateCardContents = () => { diff --git a/plugins/code-coverage/src/components/Router.tsx b/plugins/code-coverage/src/components/Router.tsx index 190b441c7a..921aaeb325 100644 --- a/plugins/code-coverage/src/components/Router.tsx +++ b/plugins/code-coverage/src/components/Router.tsx @@ -16,9 +16,11 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { CodeCoveragePage } from './CodeCoveragePage'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** * Returns true if the given entity has code coverage enabled. diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index 3f58eed9dc..16d9d47545 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -15,12 +15,11 @@ */ import React from 'react'; import { Grid } from '@material-ui/core'; +import { Page, Content } from '@backstage/core-components'; import { - Page, - Content, + useEntity, MissingAnnotationEmptyState, -} from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +} from '@backstage/plugin-catalog-react'; import { ProblemsList } from '../Problems/ProblemsList'; import { SyntheticsCard } from '../Synthetics/SyntheticsCard'; import { isDynatraceAvailable } from '../../plugin'; diff --git a/plugins/fossa/src/components/FossaCard/FossaCard.tsx b/plugins/fossa/src/components/FossaCard/FossaCard.tsx index c31f5b9d0c..fb6c2abdb0 100644 --- a/plugins/fossa/src/components/FossaCard/FossaCard.tsx +++ b/plugins/fossa/src/components/FossaCard/FossaCard.tsx @@ -14,7 +14,10 @@ * limitations under the License. */ -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Grid, Tooltip } from '@material-ui/core'; import { makeStyles } from '@material-ui/core/styles'; import Typography from '@material-ui/core/Typography'; @@ -31,7 +34,6 @@ import { EmptyState, InfoCard, InfoCardVariants, - MissingAnnotationEmptyState, Progress, ResponseErrorPanel, } from '@backstage/core-components'; diff --git a/plugins/github-actions/src/components/Router.tsx b/plugins/github-actions/src/components/Router.tsx index 14c36a93fd..e9a40f13f4 100644 --- a/plugins/github-actions/src/components/Router.tsx +++ b/plugins/github-actions/src/components/Router.tsx @@ -16,13 +16,15 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Routes, Route } from 'react-router-dom'; import { buildRouteRef } from '../routes'; import { WorkflowRunDetails } from './WorkflowRunDetails'; import { WorkflowRunsTable } from './WorkflowRunsTable'; import { GITHUB_ACTIONS_ANNOTATION } from './getProjectNameFromEntity'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** @public */ export const isGithubActionsAvailable = (entity: Entity) => diff --git a/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx b/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx index e828116f41..9367e84d56 100644 --- a/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx +++ b/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx @@ -17,7 +17,10 @@ import React from 'react'; import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { GithubDeployment, githubDeploymentsApiRef } from '../api'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { GITHUB_PROJECT_SLUG_ANNOTATION, isGithubDeploymentsAvailable, @@ -28,11 +31,7 @@ import { ANNOTATION_SOURCE_LOCATION, } from '@backstage/catalog-model'; -import { - MissingAnnotationEmptyState, - ResponseErrorPanel, - TableColumn, -} from '@backstage/core-components'; +import { ResponseErrorPanel, TableColumn } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; const GithubDeploymentsComponent = ({ diff --git a/plugins/gocd/src/components/GoCdBuildsComponent/GoCdBuildsComponent.tsx b/plugins/gocd/src/components/GoCdBuildsComponent/GoCdBuildsComponent.tsx index abaaad8506..7fac9bafe2 100644 --- a/plugins/gocd/src/components/GoCdBuildsComponent/GoCdBuildsComponent.tsx +++ b/plugins/gocd/src/components/GoCdBuildsComponent/GoCdBuildsComponent.tsx @@ -15,11 +15,13 @@ */ import React, { useState } from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Content, ContentHeader, - MissingAnnotationEmptyState, EmptyState, Page, } from '@backstage/core-components'; diff --git a/plugins/jenkins/src/components/Router.tsx b/plugins/jenkins/src/components/Router.tsx index 30ce999f31..95049932e6 100644 --- a/plugins/jenkins/src/components/Router.tsx +++ b/plugins/jenkins/src/components/Router.tsx @@ -15,11 +15,11 @@ */ import { Entity } from '@backstage/catalog-model'; +import { TableColumn } from '@backstage/core-components'; import { + useEntity, MissingAnnotationEmptyState, - TableColumn, -} from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +} from '@backstage/plugin-catalog-react'; import React from 'react'; import { Route, Routes } from 'react-router-dom'; import { JENKINS_ANNOTATION, LEGACY_JENKINS_ANNOTATION } from '../constants'; diff --git a/plugins/kafka/src/Router.tsx b/plugins/kafka/src/Router.tsx index d367c55991..abe2f4fb76 100644 --- a/plugins/kafka/src/Router.tsx +++ b/plugins/kafka/src/Router.tsx @@ -17,10 +17,12 @@ import { Entity } from '@backstage/catalog-model'; import React from 'react'; import { Route, Routes } from 'react-router-dom'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { KAFKA_CONSUMER_GROUP_ANNOTATION } from './constants'; import { KafkaTopicsForConsumer } from './components/ConsumerGroupOffsets/ConsumerGroupOffsets'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** @public */ export const isPluginApplicableToEntity = (entity: Entity) => diff --git a/plugins/kubernetes-cluster/src/Router.tsx b/plugins/kubernetes-cluster/src/Router.tsx index 86563439ce..7ae1711f94 100644 --- a/plugins/kubernetes-cluster/src/Router.tsx +++ b/plugins/kubernetes-cluster/src/Router.tsx @@ -16,9 +16,11 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Route, Routes } from 'react-router-dom'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; import { ANNOTATION_KUBERNETES_API_SERVER } from '@backstage/plugin-kubernetes-common'; import { KubernetesClusterContent } from './components/KubernetesClusterContent'; diff --git a/plugins/kubernetes/src/Router.tsx b/plugins/kubernetes/src/Router.tsx index bd8fc09edc..8266b1908e 100644 --- a/plugins/kubernetes/src/Router.tsx +++ b/plugins/kubernetes/src/Router.tsx @@ -16,11 +16,13 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Route, Routes } from 'react-router-dom'; import { KubernetesContent } from './KubernetesContent'; import { Button } from '@material-ui/core'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; const KUBERNETES_ANNOTATION = 'backstage.io/kubernetes-id'; const KUBERNETES_LABEL_SELECTOR_QUERY_ANNOTATION = diff --git a/plugins/lighthouse/src/Router.tsx b/plugins/lighthouse/src/Router.tsx index 04c00cde41..e550becb04 100644 --- a/plugins/lighthouse/src/Router.tsx +++ b/plugins/lighthouse/src/Router.tsx @@ -16,14 +16,16 @@ import React from 'react'; import { Route, Routes } from 'react-router-dom'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import AuditList from './components/AuditList'; import AuditView, { AuditViewContent } from './components/AuditView'; import CreateAudit, { CreateAuditContent } from './components/CreateAudit'; import { Entity } from '@backstage/catalog-model'; import { LIGHTHOUSE_WEBSITE_URL_ANNOTATION } from '../constants'; import { AuditListForEntity } from './components/AuditList/AuditListForEntity'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** @public */ export const isLighthouseAvailable = (entity: Entity) => diff --git a/plugins/newrelic-dashboard/src/Router.tsx b/plugins/newrelic-dashboard/src/Router.tsx index b549d1107b..82f20a4a29 100644 --- a/plugins/newrelic-dashboard/src/Router.tsx +++ b/plugins/newrelic-dashboard/src/Router.tsx @@ -15,10 +15,12 @@ */ import { Entity } from '@backstage/catalog-model'; import React from 'react'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; import { Button } from '@material-ui/core'; import { NewRelicDashboard } from './components/NewRelicDashboard'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { NEWRELIC_GUID_ANNOTATION } from './constants'; /** @public */ diff --git a/plugins/nomad/src/Router.tsx b/plugins/nomad/src/Router.tsx index 4a3377779a..aa872bae70 100644 --- a/plugins/nomad/src/Router.tsx +++ b/plugins/nomad/src/Router.tsx @@ -15,8 +15,10 @@ */ import React from 'react'; -import { useEntity } from '@backstage/plugin-catalog-react'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Route, Routes } from 'react-router-dom'; import { EntityNomadAllocationListTable } from './components/EntityNomadAllocationListTable/EntityNomadAllocationListTable'; import { diff --git a/plugins/nomad/src/components/EntityNomadAllocationListTable/EntityNomadAllocationListTable.tsx b/plugins/nomad/src/components/EntityNomadAllocationListTable/EntityNomadAllocationListTable.tsx index cc19d1ec53..ea4f2836fe 100644 --- a/plugins/nomad/src/components/EntityNomadAllocationListTable/EntityNomadAllocationListTable.tsx +++ b/plugins/nomad/src/components/EntityNomadAllocationListTable/EntityNomadAllocationListTable.tsx @@ -17,7 +17,6 @@ import { DateTime } from 'luxon'; import { Link, - MissingAnnotationEmptyState, ResponseErrorPanel, StatusError, StatusOK, @@ -26,7 +25,10 @@ import { Table, TableColumn, } from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import React, { useState } from 'react'; import { Allocation, nomadApiRef } from '../../api'; import { configApiRef, useApi } from '@backstage/core-plugin-api'; diff --git a/plugins/nomad/src/components/EntityNomadJobVersionListCard/EntityNomadJobVersionListCard.tsx b/plugins/nomad/src/components/EntityNomadJobVersionListCard/EntityNomadJobVersionListCard.tsx index bb4e4b0fad..d7d200bce4 100644 --- a/plugins/nomad/src/components/EntityNomadJobVersionListCard/EntityNomadJobVersionListCard.tsx +++ b/plugins/nomad/src/components/EntityNomadJobVersionListCard/EntityNomadJobVersionListCard.tsx @@ -17,12 +17,14 @@ import { DateTime } from 'luxon'; import { InfoCard, - MissingAnnotationEmptyState, ResponseErrorPanel, Table, TableColumn, } from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import React, { useEffect, useState } from 'react'; import { Version, nomadApiRef } from '../../api'; import { configApiRef, useApi } from '@backstage/core-plugin-api'; diff --git a/plugins/puppetdb/src/components/Router.tsx b/plugins/puppetdb/src/components/Router.tsx index 3a8a05911b..5e6a79bc43 100644 --- a/plugins/puppetdb/src/components/Router.tsx +++ b/plugins/puppetdb/src/components/Router.tsx @@ -19,8 +19,10 @@ import { Routes, Route } from 'react-router-dom'; import { puppetDbReportRouteRef } from '../routes'; import { ANNOTATION_PUPPET_CERTNAME } from '../constants'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { ReportsPage } from './ReportsPage'; import { ReportDetailsPage } from './ReportDetailsPage'; diff --git a/plugins/rollbar/src/components/Router.tsx b/plugins/rollbar/src/components/Router.tsx index aa86904248..0eec406c78 100644 --- a/plugins/rollbar/src/components/Router.tsx +++ b/plugins/rollbar/src/components/Router.tsx @@ -15,12 +15,14 @@ */ import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import React from 'react'; import { Route, Routes } from 'react-router-dom'; import { ROLLBAR_ANNOTATION } from '../constants'; import { EntityPageRollbar } from './EntityPageRollbar/EntityPageRollbar'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; /** @public */ export const isPluginApplicableToEntity = (entity: Entity) => diff --git a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx index 3cf1162505..4db2721efb 100644 --- a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx +++ b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx @@ -20,12 +20,12 @@ import useAsync from 'react-use/lib/useAsync'; import { sentryApiRef } from '../../api'; import SentryIssuesTable from '../SentryIssuesTable/SentryIssuesTable'; import { SENTRY_PROJECT_SLUG_ANNOTATION, useProjectSlug } from '../hooks'; +import { MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react'; import { EmptyState, InfoCard, InfoCardVariants, - MissingAnnotationEmptyState, Progress, } from '@backstage/core-components'; diff --git a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx index 46a22b9284..9a6e9fb8ed 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx @@ -14,7 +14,10 @@ * limitations under the License. */ -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { sonarQubeApiRef, useProjectInfo, @@ -38,7 +41,6 @@ import { EmptyState, InfoCard, InfoCardVariants, - MissingAnnotationEmptyState, Progress, } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; diff --git a/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.tsx b/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.tsx index f577d08eeb..877a52843c 100644 --- a/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.tsx +++ b/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.tsx @@ -19,8 +19,10 @@ import { ContentHeader, SupportButton, } from '@backstage/core-components'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import React from 'react'; import { SonarQubeCard } from '../SonarQubeCard'; import { diff --git a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx index 54784b1f4e..5800ea98b6 100644 --- a/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx +++ b/plugins/splunk-on-call/src/components/EntitySplunkOnCallCard.tsx @@ -16,7 +16,10 @@ import React, { useCallback, useState } from 'react'; import useAsync from 'react-use/lib/useAsync'; import { Entity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { Card, CardContent, @@ -40,7 +43,6 @@ import { EmptyState, HeaderIconLinkRow, IconLinkVerticalProps, - MissingAnnotationEmptyState, Progress, } from '@backstage/core-components'; diff --git a/plugins/techdocs/src/Router.tsx b/plugins/techdocs/src/Router.tsx index 814bf3cf65..719217a32d 100644 --- a/plugins/techdocs/src/Router.tsx +++ b/plugins/techdocs/src/Router.tsx @@ -19,10 +19,12 @@ import { Route, Routes, useRoutes } from 'react-router-dom'; import { Entity } from '@backstage/catalog-model'; import { EntityPageDocs } from './EntityPageDocs'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; import { TechDocsIndexPage } from './home/components/TechDocsIndexPage'; import { TechDocsReaderPage } from './reader/components/TechDocsReaderPage'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; const TECHDOCS_ANNOTATION = 'backstage.io/techdocs-ref'; diff --git a/plugins/vault/src/components/EntityVaultCard/EntityVaultCard.tsx b/plugins/vault/src/components/EntityVaultCard/EntityVaultCard.tsx index ae8e28cb01..ec21dfb114 100644 --- a/plugins/vault/src/components/EntityVaultCard/EntityVaultCard.tsx +++ b/plugins/vault/src/components/EntityVaultCard/EntityVaultCard.tsx @@ -15,11 +15,13 @@ */ import React from 'react'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + MissingAnnotationEmptyState, +} from '@backstage/plugin-catalog-react'; import { isVaultAvailable } from '../../conditions'; import { VAULT_SECRET_PATH_ANNOTATION } from '../../constants'; import { EntityVaultTable } from '../EntityVaultTable'; -import { MissingAnnotationEmptyState } from '@backstage/core-components'; export const EntityVaultCard = () => { const { entity } = useEntity(); From f39d715177bb3982cb5528db4e1962b323b08732 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:38:02 +0200 Subject: [PATCH 074/131] chore: remove cyclical deps Signed-off-by: blam --- packages/core-components/package.json | 2 -- yarn.lock | 2 -- 2 files changed, 4 deletions(-) diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 4c63eeaac5..2dcf4ea7aa 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -33,11 +33,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/errors": "workspace:^", - "@backstage/plugin-catalog-react": "workspace:^", "@backstage/theme": "workspace:^", "@backstage/version-bridge": "workspace:^", "@date-io/core": "^1.3.13", diff --git a/yarn.lock b/yarn.lock index e2f15875b7..7f676164dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4159,13 +4159,11 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/core-components@workspace:packages/core-components" dependencies: - "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/core-app-api": "workspace:^" "@backstage/core-plugin-api": "workspace:^" "@backstage/errors": "workspace:^" - "@backstage/plugin-catalog-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" "@backstage/version-bridge": "workspace:^" From fdb5e2360299c5faa30f4d4236fc548b94d37446 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:41:41 +0200 Subject: [PATCH 075/131] chore: added changeset Signed-off-by: blam --- .changeset/stale-horses-obey.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .changeset/stale-horses-obey.md diff --git a/.changeset/stale-horses-obey.md b/.changeset/stale-horses-obey.md new file mode 100644 index 0000000000..671844c1b7 --- /dev/null +++ b/.changeset/stale-horses-obey.md @@ -0,0 +1,32 @@ +--- +'@backstage/plugin-github-deployments': patch +'@backstage/plugin-kubernetes-cluster': patch +'@backstage/plugin-newrelic-dashboard': patch +'@backstage/plugin-github-actions': patch +'@backstage/plugin-splunk-on-call': patch +'@backstage/plugin-code-coverage': patch +'@backstage/plugin-code-climate': patch +'@backstage/plugin-azure-sites': patch +'@backstage/plugin-cloudbuild': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-lighthouse': patch +'@backstage/plugin-dynatrace': patch +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-airbrake': patch +'@backstage/plugin-circleci': patch +'@backstage/plugin-puppetdb': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-bitrise': patch +'@backstage/plugin-jenkins': patch +'@backstage/plugin-rollbar': patch +'@backstage/plugin-allure': patch +'@backstage/plugin-sentry': patch +'@backstage/plugin-fossa': patch +'@backstage/plugin-kafka': patch +'@backstage/plugin-nomad': patch +'@backstage/plugin-vault': patch +'@backstage/plugin-gocd': patch +'@backstage/plugin-adr': patch +--- + +Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency From e557084f2685a7e00b4bb937e1d737c8ca79dfcf Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 18:49:54 +0200 Subject: [PATCH 076/131] feat: api report fixes Signed-off-by: blam --- packages/core-components/api-report.md | 7 ++----- .../EmptyState/MissingAnnotationEmptyState.tsx | 2 +- plugins/catalog-react/api-report.md | 9 +++++++++ .../MissingAnnotationEmptyState.tsx | 10 ++++------ 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index d40179dc62..495150e54b 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -746,16 +746,13 @@ export type MetadataTableTitleCellClassKey = 'root'; export type MicDropClassKey = 'micDrop'; // Warning: (ae-forgotten-export) The symbol "Props_3" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "MissingAnnotationEmptyState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) // -// @public (undocumented) +// @public @deprecated (undocumented) export function MissingAnnotationEmptyState( props: Props_3, ): React_2.JSX.Element; -// Warning: (ae-missing-release-tag) "MissingAnnotationEmptyStateClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public @deprecated (undocumented) export type MissingAnnotationEmptyStateClassKey = 'code'; // @public diff --git a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx index efbfdb9999..eb8b652924 100644 --- a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx +++ b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx @@ -43,7 +43,7 @@ const ANNOTATION_LINE = COMPONENT_YAML_TEMPLATE.split('\n').findIndex(line => ANNOTATION_REGEXP.test(line), ); -type Props = { +export type Props = { annotation: string | string[]; readMoreUrl?: string; }; diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index e2000b5658..03c97ee4c4 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -616,6 +616,15 @@ export function InspectEntityDialog(props: { onClose: () => void; }): React_2.JSX.Element | null; +// @public +export function MissingAnnotationEmptyState(props: { + annotation: string | string[]; + readMoreUrl?: string; +}): React_2.JSX.Element; + +// @public (undocumented) +export type MissingAnnotationEmptyStateClassKey = 'code'; + // @public (undocumented) export function MockEntityListContextProvider< T extends DefaultEntityFilters = DefaultEntityFilters, diff --git a/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx index 887cb68648..284025d8cd 100644 --- a/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx +++ b/plugins/catalog-react/src/components/MissingAnnotationEmptyState/MissingAnnotationEmptyState.tsx @@ -24,11 +24,6 @@ import { CodeSnippet, Link, EmptyState } from '@backstage/core-components'; import { Entity } from '@backstage/catalog-model'; import { useEntity } from '../../hooks'; -type Props = { - annotation: string | string[]; - readMoreUrl?: string; -}; - /** @public */ export type MissingAnnotationEmptyStateClassKey = 'code'; @@ -98,7 +93,10 @@ function generateDescription(annotations: string[], entityKind = 'Component') { * @public * Renders an empty state when an annotation is missing from an entity. */ -export function MissingAnnotationEmptyState(props: Props) { +export function MissingAnnotationEmptyState(props: { + annotation: string | string[]; + readMoreUrl?: string; +}) { let entity: Entity | undefined; try { const entityContext = useEntity(); From a657d838559d8b198c5efb38de60c459c669bc68 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 19:05:42 +0200 Subject: [PATCH 077/131] chore: revert a little more Signed-off-by: blam --- .../src/components/EmptyState/MissingAnnotationEmptyState.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx index eb8b652924..efbfdb9999 100644 --- a/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx +++ b/packages/core-components/src/components/EmptyState/MissingAnnotationEmptyState.tsx @@ -43,7 +43,7 @@ const ANNOTATION_LINE = COMPONENT_YAML_TEMPLATE.split('\n').findIndex(line => ANNOTATION_REGEXP.test(line), ); -export type Props = { +type Props = { annotation: string | string[]; readMoreUrl?: string; }; From 21421e858eff23a547a83c6d674c8e398a7df999 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 26 Oct 2023 22:26:15 +0200 Subject: [PATCH 078/131] chore: fix bitrise tests Signed-off-by: blam --- .../BitriseBuildsComponent/BitriseBuildsComponent.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.test.tsx b/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.test.tsx index 08f0e833c5..d21652b6e0 100644 --- a/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.test.tsx +++ b/plugins/bitrise/src/components/BitriseBuildsComponent/BitriseBuildsComponent.test.tsx @@ -31,6 +31,7 @@ jest.mock('../../hooks/useBitriseBuildWorkflows', () => ({ })); jest.mock('@backstage/plugin-catalog-react', () => ({ + ...jest.requireActual('@backstage/plugin-catalog-react'), useEntity: () => { return entityValue; }, From d98c8112e4360636c6e36c4040ad23f3a7f70401 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Fri, 27 Oct 2023 08:12:13 +1100 Subject: [PATCH 079/131] Squared Penny the Pig logo Signed-off-by: Matt Ray --- microsite/static/img/opencost.png | Bin 11349 -> 8173 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/microsite/static/img/opencost.png b/microsite/static/img/opencost.png index 3dcd2965be56fed6ddd02ead5e6c3e98091271a9..14fe563941abc8fb0248247428790bfd1e66dfc6 100644 GIT binary patch literal 8173 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 literal 11349 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 From 0a21ae6ae26b42a3234e497b55b56ddcebc9333c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:27:09 +0000 Subject: [PATCH 080/131] chore(deps): update dependency @types/mime-types to v2.1.3 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 01ee72cdb7..a06a786c41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19097,9 +19097,9 @@ __metadata: linkType: hard "@types/mime-types@npm:^2.1.0": - version: 2.1.2 - resolution: "@types/mime-types@npm:2.1.2" - checksum: 9e3c78f1c63211e0450901212566a046da68d4438a5e543333ec9b0be3259bd5d01532734dc51ead40104889b98d12c7663b65212a318aafad3e34c98204e9e1 + version: 2.1.3 + resolution: "@types/mime-types@npm:2.1.3" + checksum: 2b39ed5de6ee607b3738a30c54879b439a8344e6f86e50af3b275cfb7165ed4d13e7f9a54971f1de4f759dd68929351741cf31c1c42e380503e53be6970bbf82 languageName: node linkType: hard From 9bfed737ace221063237cd17545598d4aa37a4fb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:35:50 +0000 Subject: [PATCH 081/131] chore(deps): update dependency @types/minimist to v1.2.4 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 225b7beebc..19e17e8dae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19125,9 +19125,9 @@ __metadata: linkType: hard "@types/minimist@npm:^1.2.0": - version: 1.2.3 - resolution: "@types/minimist@npm:1.2.3" - checksum: 666ea4f8c39dcbdfbc3171fe6b3902157c845cc9cb8cee33c10deb706cda5e0cc80f98ace2d6d29f6774b0dc21180c96cd73c592a1cbefe04777247c7ba0e84b + version: 1.2.4 + resolution: "@types/minimist@npm:1.2.4" + checksum: d7912f9a466312cbc1333800272b9208178140ef4da2ccec3fa82231c8e67f57f84275b3c19109c4f68f1b7b057baeacc6b80af1de14b58b46e6b54233e44c6a languageName: node linkType: hard From 77f009b35d66db1f86376d9216b8a3c426639061 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 27 Oct 2023 13:51:02 +0200 Subject: [PATCH 082/131] frontend-plugin-api: return output from extension factories instead Signed-off-by: Patrik Oldsberg --- .changeset/silver-kiwis-float.md | 5 + .changeset/strange-gifts-try.md | 9 + packages/app-next/src/App.tsx | 4 +- .../core-compat-api/src/convertLegacyApp.ts | 8 +- .../frontend-app-api/src/extensions/Core.tsx | 6 +- .../src/extensions/CoreLayout.tsx | 6 +- .../src/extensions/CoreNav.tsx | 6 +- .../src/extensions/CoreRoutes.tsx | 6 +- .../src/graph/createAppGraph.test.ts | 4 +- .../src/graph/instantiateAppNodeTree.test.ts | 36 +-- .../src/graph/instantiateAppNodeTree.ts | 31 ++- .../src/graph/resolveAppGraph.test.ts | 2 +- .../extractRouteInfoFromAppNode.test.ts | 6 +- packages/frontend-plugin-api/api-report.md | 6 +- .../src/components/ExtensionBoundary.test.tsx | 6 +- .../src/extensions/createApiExtension.ts | 7 +- .../src/extensions/createNavItemExtension.tsx | 16 +- .../extensions/createPageExtension.test.tsx | 9 +- .../src/extensions/createPageExtension.tsx | 6 +- .../src/extensions/createThemeExtension.ts | 4 +- .../src/wiring/createExtension.test.ts | 236 ++++++++++++++---- .../src/wiring/createExtension.ts | 11 +- .../wiring/createExtensionOverrides.test.ts | 4 +- .../src/wiring/createPlugin.test.ts | 22 +- plugins/catalog-react/src/alpha.tsx | 12 +- .../alpha/createCatalogFilterExtension.tsx | 6 +- plugins/graphiql/src/alpha.tsx | 6 +- plugins/search-react/src/alpha.tsx | 6 +- 28 files changed, 313 insertions(+), 173 deletions(-) create mode 100644 .changeset/silver-kiwis-float.md create mode 100644 .changeset/strange-gifts-try.md diff --git a/.changeset/silver-kiwis-float.md b/.changeset/silver-kiwis-float.md new file mode 100644 index 0000000000..6a45dfb1a6 --- /dev/null +++ b/.changeset/silver-kiwis-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-plugin-api': minor +--- + +Extensions now return their output from the factory function rather than calling `bind(...)`. diff --git a/.changeset/strange-gifts-try.md b/.changeset/strange-gifts-try.md new file mode 100644 index 0000000000..7f9aa89ad4 --- /dev/null +++ b/.changeset/strange-gifts-try.md @@ -0,0 +1,9 @@ +--- +'@backstage/frontend-app-api': patch +'@backstage/plugin-catalog': patch +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-graphiql': patch +'@backstage/plugin-search-react': patch +--- + +Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. diff --git a/packages/app-next/src/App.tsx b/packages/app-next/src/App.tsx index 1275722da4..978c40ef44 100644 --- a/packages/app-next/src/App.tsx +++ b/packages/app-next/src/App.tsx @@ -79,8 +79,8 @@ const homePageExtension = createExtension({ children: coreExtensionData.reactElement, title: titleExtensionDataRef, }, - factory({ bind }) { - bind({ children: homePage, title: 'just a title' }); + factory() { + return { children: homePage, title: 'just a title' }; }, }); diff --git a/packages/core-compat-api/src/convertLegacyApp.ts b/packages/core-compat-api/src/convertLegacyApp.ts index 59cb136c65..93521b3955 100644 --- a/packages/core-compat-api/src/convertLegacyApp.ts +++ b/packages/core-compat-api/src/convertLegacyApp.ts @@ -113,18 +113,18 @@ export function convertLegacyApp( output: { element: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { + factory({ inputs }) { // Clone the root element, this replaces the FlatRoutes declared in the app with out content input - bind({ + return { element: React.cloneElement(rootEl, undefined, inputs.content.element), - }); + }; }, }); const CoreNavOverride = createExtension({ id: 'core.nav', attachTo: { id: 'core.layout', input: 'nav' }, output: {}, - factory() {}, + factory: () => ({}), disabled: true, }); diff --git a/packages/frontend-app-api/src/extensions/Core.tsx b/packages/frontend-app-api/src/extensions/Core.tsx index f48aa2ea6b..60772d435c 100644 --- a/packages/frontend-app-api/src/extensions/Core.tsx +++ b/packages/frontend-app-api/src/extensions/Core.tsx @@ -40,9 +40,9 @@ export const Core = createExtension({ output: { root: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { - bind({ + factory({ inputs }) { + return { root: inputs.root.element, - }); + }; }, }); diff --git a/packages/frontend-app-api/src/extensions/CoreLayout.tsx b/packages/frontend-app-api/src/extensions/CoreLayout.tsx index bf0f382cfc..97f49acac9 100644 --- a/packages/frontend-app-api/src/extensions/CoreLayout.tsx +++ b/packages/frontend-app-api/src/extensions/CoreLayout.tsx @@ -42,14 +42,14 @@ export const CoreLayout = createExtension({ output: { element: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { - bind({ + factory({ inputs }) { + return { element: ( {inputs.nav.element} {inputs.content.element} ), - }); + }; }, }); diff --git a/packages/frontend-app-api/src/extensions/CoreNav.tsx b/packages/frontend-app-api/src/extensions/CoreNav.tsx index cd12ca129a..37ce50276b 100644 --- a/packages/frontend-app-api/src/extensions/CoreNav.tsx +++ b/packages/frontend-app-api/src/extensions/CoreNav.tsx @@ -82,8 +82,8 @@ export const CoreNav = createExtension({ output: { element: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { - bind({ + factory({ inputs }) { + return { element: ( @@ -93,6 +93,6 @@ export const CoreNav = createExtension({ ))} ), - }); + }; }, }); diff --git a/packages/frontend-app-api/src/extensions/CoreRoutes.tsx b/packages/frontend-app-api/src/extensions/CoreRoutes.tsx index 8d22b40eec..985fd07be9 100644 --- a/packages/frontend-app-api/src/extensions/CoreRoutes.tsx +++ b/packages/frontend-app-api/src/extensions/CoreRoutes.tsx @@ -35,7 +35,7 @@ export const CoreRoutes = createExtension({ output: { element: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { + factory({ inputs }) { const Routes = () => { const element = useRoutes( inputs.routes.map(route => ({ @@ -46,8 +46,8 @@ export const CoreRoutes = createExtension({ return element; }; - bind({ + return { element: , - }); + }; }, }); diff --git a/packages/frontend-app-api/src/graph/createAppGraph.test.ts b/packages/frontend-app-api/src/graph/createAppGraph.test.ts index 2c9f062199..1a046b210b 100644 --- a/packages/frontend-app-api/src/graph/createAppGraph.test.ts +++ b/packages/frontend-app-api/src/graph/createAppGraph.test.ts @@ -26,7 +26,7 @@ const extBase = { id: 'test', attachTo: { id: 'core', input: 'root' }, output: {}, - factory() {}, + factory: () => ({}), }; describe('createAppGraph', () => { @@ -62,7 +62,7 @@ describe('createAppGraph', () => { attachTo: { id: 'core.routes', input: 'route' }, inputs: {}, output: {}, - factory() {}, + factory: () => ({}), }), ], }), diff --git a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts b/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts index 21f364dda2..9be3482b5d 100644 --- a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts +++ b/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts @@ -45,8 +45,8 @@ const simpleExtension = createExtension({ other: z.number().optional(), }), ), - factory({ bind, config }) { - bind({ test: config.output, other: config.other }); + factory({ config }) { + return { test: config.output, other: config.other }; }, }); @@ -114,8 +114,8 @@ describe('instantiateAppNodeTree', () => { output: { inputMirror: inputMirrorDataRef, }, - factory({ bind, inputs }) { - bind({ inputMirror: inputs }); + factory({ inputs }) { + return { inputMirror: inputs }; }, }), ), @@ -158,8 +158,8 @@ describe('instantiateAppNodeTree', () => { output: { inputMirror: inputMirrorDataRef, }, - factory({ bind, inputs }) { - bind({ inputMirror: inputs }); + factory({ inputs }) { + return { inputMirror: inputs }; }, }), ), @@ -264,8 +264,8 @@ describe('createAppNodeInstance', () => { output: { inputMirror: inputMirrorDataRef, }, - factory({ bind, inputs }) { - bind({ inputMirror: inputs }); + factory({ inputs }) { + return { inputMirror: inputs }; }, }), ), @@ -326,8 +326,8 @@ describe('createAppNodeInstance', () => { test1: testDataRef, test2: testDataRef, }, - factory({ bind }) { - bind({ test1: 'test', test2: 'test2' }); + factory({}) { + return { test1: 'test', test2: 'test2' }; }, }), ), @@ -348,8 +348,8 @@ describe('createAppNodeInstance', () => { output: { test: testDataRef, }, - factory({ bind }) { - bind({ nonexistent: 'test' } as any); + factory({}) { + return { nonexistent: 'test' } as any; }, }), ), @@ -376,7 +376,7 @@ describe('createAppNodeInstance', () => { ), }, output: {}, - factory() {}, + factory: () => ({}), }), ), attachments: new Map(), @@ -417,7 +417,7 @@ describe('createAppNodeInstance', () => { }), }, output: {}, - factory() {}, + factory: () => ({}), }), ), }), @@ -447,7 +447,7 @@ describe('createAppNodeInstance', () => { id: 'core.test', attachTo: { id: 'ignored', input: 'ignored' }, output: {}, - factory() {}, + factory: () => ({}), }), ), }), @@ -481,7 +481,7 @@ describe('createAppNodeInstance', () => { ), }, output: {}, - factory() {}, + factory: () => ({}), }), ), }), @@ -515,7 +515,7 @@ describe('createAppNodeInstance', () => { ), }, output: {}, - factory() {}, + factory: () => ({}), }), ), }), @@ -543,7 +543,7 @@ describe('createAppNodeInstance', () => { ), }, output: {}, - factory() {}, + factory: () => ({}), }), ), }), diff --git a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts b/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts index ba0c85692e..bf6028554b 100644 --- a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts +++ b/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts @@ -113,26 +113,25 @@ export function createAppNodeInstance(options: { } try { - extension.factory({ + const namedOutputs = extension.factory({ source, config: parsedConfig, - bind: namedOutputs => { - for (const [name, output] of Object.entries(namedOutputs)) { - const ref = extension.output[name]; - if (!ref) { - throw new Error(`unknown output provided via '${name}'`); - } - if (extensionData.has(ref.id)) { - throw new Error( - `duplicate extension data '${ref.id}' received via output '${name}'`, - ); - } - extensionData.set(ref.id, output); - extensionDataRefs.add(ref); - } - }, inputs: resolveInputs(extension.inputs, attachments), }); + + for (const [name, output] of Object.entries(namedOutputs)) { + const ref = extension.output[name]; + if (!ref) { + throw new Error(`unknown output provided via '${name}'`); + } + if (extensionData.has(ref.id)) { + throw new Error( + `duplicate extension data '${ref.id}' received via output '${name}'`, + ); + } + extensionData.set(ref.id, output); + extensionDataRefs.add(ref); + } } catch (e) { throw new Error( `Failed to instantiate extension '${id}'${ diff --git a/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts b/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts index 2668c51863..2b7257446e 100644 --- a/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts +++ b/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts @@ -21,7 +21,7 @@ const extBaseConfig = { id: 'test', attachTo: { id: 'nonexistent', input: 'nonexistent' }, output: {}, - factory() {}, + factory: () => ({}), }; const extension = createExtension(extBaseConfig); diff --git a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts index e0adf3062a..c6b025e8b3 100644 --- a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts +++ b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts @@ -62,12 +62,12 @@ function createTestExtension(options: { element: coreExtensionData.reactElement, }), }, - factory({ bind }) { - bind({ + factory() { + return { path: options.path, routeRef: options.routeRef, element: React.createElement('div'), - }); + }; }, }); } diff --git a/packages/frontend-plugin-api/api-report.md b/packages/frontend-plugin-api/api-report.md index ac8d164fae..250ce5f676 100644 --- a/packages/frontend-plugin-api/api-report.md +++ b/packages/frontend-plugin-api/api-report.md @@ -170,10 +170,9 @@ export interface CreateExtensionOptions< // (undocumented) factory(options: { source?: BackstagePlugin; - bind(values: Expand>): void; config: TConfig; inputs: Expand>; - }): void; + }): Expand>; // (undocumented) id: string; // (undocumented) @@ -313,13 +312,12 @@ export interface Extension { // (undocumented) factory(options: { source?: BackstagePlugin; - bind(values: ExtensionInputValues): void; config: TConfig; inputs: Record< string, undefined | Record | Array> >; - }): void; + }): ExtensionDataValues; // (undocumented) id: string; // (undocumented) diff --git a/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx b/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx index 704cafda2d..7b27c79360 100644 --- a/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx +++ b/packages/frontend-plugin-api/src/components/ExtensionBoundary.test.tsx @@ -66,8 +66,8 @@ const wrapInBoundaryExtension = (element: JSX.Element) => { path: coreExtensionData.routePath, routeRef: coreExtensionData.routeRef.optional(), }, - factory({ bind, source }) { - bind({ + factory({ source }) { + return { routeRef, path: '/', element: ( @@ -75,7 +75,7 @@ const wrapInBoundaryExtension = (element: JSX.Element) => { {element} ), - }); + }; }, }); }; diff --git a/packages/frontend-plugin-api/src/extensions/createApiExtension.ts b/packages/frontend-plugin-api/src/extensions/createApiExtension.ts index f728261072..7b6dded022 100644 --- a/packages/frontend-plugin-api/src/extensions/createApiExtension.ts +++ b/packages/frontend-plugin-api/src/extensions/createApiExtension.ts @@ -58,12 +58,11 @@ export function createApiExtension< output: { api: coreExtensionData.apiFactory, }, - factory({ bind, config, inputs }) { + factory({ config, inputs }) { if (typeof factory === 'function') { - bind({ api: factory({ config, inputs }) }); - } else { - bind({ api: factory }); + return { api: factory({ config, inputs }) }; } + return { api: factory }; }, }); } diff --git a/packages/frontend-plugin-api/src/extensions/createNavItemExtension.tsx b/packages/frontend-plugin-api/src/extensions/createNavItemExtension.tsx index ee38dda016..84fbe5ffee 100644 --- a/packages/frontend-plugin-api/src/extensions/createNavItemExtension.tsx +++ b/packages/frontend-plugin-api/src/extensions/createNavItemExtension.tsx @@ -41,14 +41,12 @@ export function createNavItemExtension(options: { output: { navTarget: coreExtensionData.navTarget, }, - factory: ({ bind, config }) => { - bind({ - navTarget: { - title: config.title, - icon, - routeRef, - }, - }); - }, + factory: ({ config }) => ({ + navTarget: { + title: config.title, + icon, + routeRef, + }, + }), }); } diff --git a/packages/frontend-plugin-api/src/extensions/createPageExtension.test.tsx b/packages/frontend-plugin-api/src/extensions/createPageExtension.test.tsx index 37d97e7621..81843558da 100644 --- a/packages/frontend-plugin-api/src/extensions/createPageExtension.test.tsx +++ b/packages/frontend-plugin-api/src/extensions/createPageExtension.test.tsx @@ -20,7 +20,6 @@ import { useAnalytics } from '@backstage/core-plugin-api'; import { waitFor } from '@testing-library/react'; import { PortableSchema } from '../schema'; import { - ExtensionInputValues, coreExtensionData, createExtensionInput, createPlugin, @@ -127,16 +126,14 @@ describe('createPageExtension', () => { loader: async () =>
Component
, }); - extension.factory({ - bind: (values: ExtensionInputValues) => - renderWithEffects( - wrapInTestApp(values.element as unknown as JSX.Element), - ), + const output = extension.factory({ source: createPlugin({ id: 'plugin ' }), config: { path: '/' }, inputs: {}, }); + renderWithEffects(wrapInTestApp(output.element as unknown as JSX.Element)); + await waitFor(() => expect(captureEvent).toHaveBeenCalledWith( '_ROUTABLE-EXTENSION-RENDERED', diff --git a/packages/frontend-plugin-api/src/extensions/createPageExtension.tsx b/packages/frontend-plugin-api/src/extensions/createPageExtension.tsx index f05182149b..f5e258a1e4 100644 --- a/packages/frontend-plugin-api/src/extensions/createPageExtension.tsx +++ b/packages/frontend-plugin-api/src/extensions/createPageExtension.tsx @@ -75,14 +75,14 @@ export function createPageExtension< path: coreExtensionData.routePath, routeRef: coreExtensionData.routeRef.optional(), }, - factory({ bind, config, inputs, source }) { + factory({ config, inputs, source }) { const ExtensionComponent = lazy(() => options .loader({ config, inputs }) .then(element => ({ default: () => element })), ); - bind({ + return { path: config.path, routeRef: options.routeRef, element: ( @@ -90,7 +90,7 @@ export function createPageExtension< ), - }); + }; }, }); } diff --git a/packages/frontend-plugin-api/src/extensions/createThemeExtension.ts b/packages/frontend-plugin-api/src/extensions/createThemeExtension.ts index 38763688a4..d41121d51c 100644 --- a/packages/frontend-plugin-api/src/extensions/createThemeExtension.ts +++ b/packages/frontend-plugin-api/src/extensions/createThemeExtension.ts @@ -25,8 +25,6 @@ export function createThemeExtension(theme: AppTheme) { output: { theme: coreExtensionData.theme, }, - factory({ bind }) { - bind({ theme }); - }, + factory: () => ({ theme }), }); } diff --git a/packages/frontend-plugin-api/src/wiring/createExtension.test.ts b/packages/frontend-plugin-api/src/wiring/createExtension.test.ts index 757bcd7e3d..071272d58f 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtension.test.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtension.test.ts @@ -24,71 +24,211 @@ function unused(..._any: any[]) {} describe('createExtension', () => { it('should create an extension with a simple output', () => { - const extension = createExtension({ + const baseConfig = { id: 'test', attachTo: { id: 'root', input: 'default' }, output: { foo: stringData, }, - factory({ bind }) { - bind({ + }; + const extension = createExtension({ + ...baseConfig, + factory() { + return { foo: 'bar', - }); - bind({ - // @ts-expect-error - foo: 3, - }); - bind({ - // @ts-expect-error - bar: 'bar', - }); - // @ts-expect-error - bind({}); - // @ts-expect-error - bind(); - // @ts-expect-error - bind('bar'); + }; }, }); expect(extension.id).toBe('test'); + + // When declared as an error function without a block the TypeScript errors + // are a more specific and will point at the property that is problematic. + createExtension({ + ...baseConfig, + factory: () => ({ + // @ts-expect-error + foo: 3, + }), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + ({ + bar: 'bar', + }), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + ({}), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + undefined, + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + 'bar', + }); + + // When declared as a function with a block the TypeScript error will instead + // be tied to the factory function declaration itself, but the error messages + // is still helpful and points to part of the return type that is problematic. + createExtension({ + ...baseConfig, + // @ts-expect-error + factory() { + return { + foo: 3, + }; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory() { + return { + bar: 'bar', + }; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory() { + return {}; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory() { + return {}; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory() { + return 'bar'; + }, + }); + + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => { + return { + foo: 3, + }; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => { + return { + bar: 'bar', + }; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => { + return {}; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => { + return {}; + }, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => { + return 'bar'; + }, + }); }); it('should create an extension with a some optional output', () => { - const extension = createExtension({ + const baseConfig = { id: 'test', attachTo: { id: 'root', input: 'default' }, output: { foo: stringData, bar: stringData.optional(), }, - factory({ bind }) { - bind({ - foo: 'bar', - }); - bind({ - foo: 'bar', - bar: 'baz', - }); - bind({ - // @ts-expect-error - foo: 3, - }); - bind({ - foo: 'bar', - // @ts-expect-error - bar: 3, - }); - // @ts-expect-error - bind({ bar: 'bar' }); - // @ts-expect-error - bind({}); - // @ts-expect-error - bind(); - // @ts-expect-error - bind('bar'); - }, + }; + const extension = createExtension({ + ...baseConfig, + factory: () => ({ + foo: 'bar', + }), }); expect(extension.id).toBe('test'); + + createExtension({ + ...baseConfig, + factory: () => ({ + foo: 'bar', + bar: 'baz', + }), + }); + createExtension({ + ...baseConfig, + factory: () => ({ + // @ts-expect-error + foo: 3, + }), + }); + createExtension({ + ...baseConfig, + factory: () => ({ + foo: 'bar', + // @ts-expect-error + bar: 3, + }), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + ({ bar: 'bar' }), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + ({}), + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + undefined, + }); + createExtension({ + ...baseConfig, + // @ts-expect-error + factory: () => {}, + }); + createExtension({ + ...baseConfig, + factory: () => + // @ts-expect-error + 'bar', + }); }); it('should create an extension with input', () => { @@ -110,7 +250,7 @@ describe('createExtension', () => { output: { foo: stringData, }, - factory({ bind, inputs }) { + factory({ inputs }) { const a1: string = inputs.mixed?.[0].required; // @ts-expect-error const a2: number = inputs.mixed?.[0].required; @@ -141,9 +281,9 @@ describe('createExtension', () => { const d4: number | undefined = inputs.onlyOptional?.[0].optional; unused(d1, d2, d3, d4); - bind({ + return { foo: 'bar', - }); + }; }, }); expect(extension.id).toBe('test'); diff --git a/packages/frontend-plugin-api/src/wiring/createExtension.ts b/packages/frontend-plugin-api/src/wiring/createExtension.ts index fa24a24797..ff011a5875 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtension.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtension.ts @@ -81,10 +81,9 @@ export interface CreateExtensionOptions< configSchema?: PortableSchema; factory(options: { source?: BackstagePlugin; - bind(values: Expand>): void; config: TConfig; inputs: Expand>; - }): void; + }): Expand>; } /** @public */ @@ -98,13 +97,12 @@ export interface Extension { configSchema?: PortableSchema; factory(options: { source?: BackstagePlugin; - bind(values: ExtensionInputValues): void; config: TConfig; inputs: Record< string, undefined | Record | Array> >; - }): void; + }): ExtensionDataValues; } /** @public */ @@ -120,12 +118,11 @@ export function createExtension< disabled: options.disabled ?? false, $$type: '@backstage/Extension', inputs: options.inputs ?? {}, - factory({ bind, config, inputs }) { + factory({ inputs, ...rest }) { // TODO: Simplify this, but TS wouldn't infer the input type for some reason return options.factory({ - bind, - config, inputs: inputs as Expand>, + ...rest, }); }, }; diff --git a/packages/frontend-plugin-api/src/wiring/createExtensionOverrides.test.ts b/packages/frontend-plugin-api/src/wiring/createExtensionOverrides.test.ts index fa430a7834..eb69f954e4 100644 --- a/packages/frontend-plugin-api/src/wiring/createExtensionOverrides.test.ts +++ b/packages/frontend-plugin-api/src/wiring/createExtensionOverrides.test.ts @@ -39,7 +39,7 @@ describe('createExtensionOverrides', () => { id: 'a', attachTo: { id: 'core', input: 'apis' }, output: {}, - factory() {}, + factory: () => ({}), }), ], }), @@ -72,7 +72,7 @@ describe('createExtensionOverrides', () => { id: 'a', attachTo: { id: 'core', input: 'apis' }, output: {}, - factory() {}, + factory: () => ({}), }), ], }); diff --git a/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts b/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts index 7f73c45544..42648fcd96 100644 --- a/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts +++ b/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts @@ -34,8 +34,8 @@ const TechRadarPage = createExtension({ output: { name: nameExtensionDataRef, }, - factory({ bind }) { - bind({ name: 'TechRadar' }); + factory() { + return { name: 'TechRadar' }; }, }); @@ -48,8 +48,8 @@ const CatalogPage = createExtension({ configSchema: createSchemaFromZod(z => z.object({ name: z.string().default('Catalog') }), ), - factory({ bind, config }) { - bind({ name: config.name }); + factory({ config }) { + return { name: config.name }; }, }); @@ -62,8 +62,8 @@ const TechDocsAddon = createExtension({ configSchema: createSchemaFromZod(z => z.object({ name: z.string().default('TechDocsAddon') }), ), - factory({ bind, config }) { - bind({ name: config.name }); + factory({ config }) { + return { name: config.name }; }, }); @@ -78,8 +78,8 @@ const TechDocsPage = createExtension({ output: { name: nameExtensionDataRef, }, - factory({ bind, inputs }) { - bind({ name: `TechDocs-${inputs.addons.map(n => n.name).join('-')}` }); + factory({ inputs }) { + return { name: `TechDocs-${inputs.addons.map(n => n.name).join('-')}` }; }, }); @@ -94,12 +94,12 @@ const outputExtension = createExtension({ output: { element: coreExtensionData.reactElement, }, - factory({ bind, inputs }) { - bind({ + factory({ inputs }) { + return { element: React.createElement('span', {}, [ `Names: ${inputs.names.map(n => n.name).join(', ')}`, ]), - }); + }; }, }); diff --git a/plugins/catalog-react/src/alpha.tsx b/plugins/catalog-react/src/alpha.tsx index 8ea477d573..8d0436e4be 100644 --- a/plugins/catalog-react/src/alpha.tsx +++ b/plugins/catalog-react/src/alpha.tsx @@ -113,21 +113,21 @@ export function createEntityCardExtension< .optional(), }), ), - factory({ bind, config, inputs, source }) { + factory({ config, inputs, source }) { const ExtensionComponent = lazy(() => options .loader({ inputs }) .then(element => ({ default: () => element })), ); - bind({ + return { element: ( ), filter: buildFilter(config, options.filter), - }); + }; }, }); } @@ -179,14 +179,14 @@ export function createEntityContentExtension< .optional(), }), ), - factory({ bind, config, inputs, source }) { + factory({ config, inputs, source }) { const ExtensionComponent = lazy(() => options .loader({ inputs }) .then(element => ({ default: () => element })), ); - bind({ + return { path: config.path, title: config.title, routeRef: options.routeRef, @@ -196,7 +196,7 @@ export function createEntityContentExtension< ), filter: buildFilter(config, options.filter), - }); + }; }, }); } diff --git a/plugins/catalog/src/alpha/createCatalogFilterExtension.tsx b/plugins/catalog/src/alpha/createCatalogFilterExtension.tsx index 5a6328078c..cf3dbd318a 100644 --- a/plugins/catalog/src/alpha/createCatalogFilterExtension.tsx +++ b/plugins/catalog/src/alpha/createCatalogFilterExtension.tsx @@ -43,20 +43,20 @@ export function createCatalogFilterExtension< output: { element: coreExtensionData.reactElement, }, - factory({ bind, config, source }) { + factory({ config, source }) { const ExtensionComponent = lazy(() => options .loader({ config }) .then(element => ({ default: () => element })), ); - bind({ + return { element: ( ), - }); + }; }, }); } diff --git a/plugins/graphiql/src/alpha.tsx b/plugins/graphiql/src/alpha.tsx index 58b6686daa..8b2b962355 100644 --- a/plugins/graphiql/src/alpha.tsx +++ b/plugins/graphiql/src/alpha.tsx @@ -88,10 +88,10 @@ export function createEndpointExtension(options: { output: { endpoint: endpointDataRef, }, - factory({ bind, config }) { - bind({ + factory({ config }) { + return { endpoint: options.factory({ config }).endpoint, - }); + }; }, }); } diff --git a/plugins/search-react/src/alpha.tsx b/plugins/search-react/src/alpha.tsx index f937ef99cc..80e464fe4e 100644 --- a/plugins/search-react/src/alpha.tsx +++ b/plugins/search-react/src/alpha.tsx @@ -107,14 +107,14 @@ export function createSearchResultListItemExtension< output: { item: searchResultItemExtensionData, }, - factory({ bind, config, source }) { + factory({ config, source }) { const ExtensionComponent = lazy(() => options .component({ config }) .then(component => ({ default: component })), ) as unknown as SearchResultItemExtensionComponent; - bind({ + return { item: { predicate: options.predicate, component: props => ( @@ -129,7 +129,7 @@ export function createSearchResultListItemExtension< ), }, - }); + }; }, }); } From 2c8f467709252192014caf0ce323581297793754 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:08:10 +0000 Subject: [PATCH 083/131] chore(deps): update dependency @types/mock-fs to v4.13.3 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 6fad3cecdc..7841a89172 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19132,11 +19132,11 @@ __metadata: linkType: hard "@types/mock-fs@npm:^4.10.0, @types/mock-fs@npm:^4.13.0": - version: 4.13.2 - resolution: "@types/mock-fs@npm:4.13.2" + version: 4.13.3 + resolution: "@types/mock-fs@npm:4.13.3" dependencies: "@types/node": "*" - checksum: 726975ae51f7b4068bb059c633ae28a1d85595d3036c235d3f9c9dc3a9c519dc6b811713af1b686807e80a484a6ec47a742a11b4ada32a6e74eee6538a9f4658 + checksum: 17b34bcec0348d2643b1945871d539f4bf42278a835baf46afbf9e19bcf40a91fec89047c1038b61bec952cb8e614406e79ea3ed22d943caf538a088a8b1b16c languageName: node linkType: hard From ab4f5ed93f7b70d6ccd5b4966aec04a544f11ea2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:08:41 +0000 Subject: [PATCH 084/131] chore(deps): update dependency @types/morgan to v1.9.7 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 6fad3cecdc..57c2b9767b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19141,11 +19141,11 @@ __metadata: linkType: hard "@types/morgan@npm:^1.9.0": - version: 1.9.6 - resolution: "@types/morgan@npm:1.9.6" + version: 1.9.7 + resolution: "@types/morgan@npm:1.9.7" dependencies: "@types/node": "*" - checksum: 6525248325a74342f929c958be69c0840c8f3a288e003a8904319cae92e531f17a8aa2700701e66775adcca7f9506dd630fec2f95dc04a3e73add04fde42aab8 + checksum: 3e66ad27bd0ec599981c13bc0425957be861dcb7a31ec464ce01ef98daae828092dbb8250758aeed65c5b28a4ebd449b0baa51064c0611b0e2c8358e2c27cae2 languageName: node linkType: hard From 3e094b967714093d865232bdbac22e0d7e8c07f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:06:33 +0000 Subject: [PATCH 085/131] chore(deps): update dependency @types/ndjson to v2.0.3 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 5c081ae995..e14a82e60c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19166,12 +19166,12 @@ __metadata: linkType: hard "@types/ndjson@npm:^2.0.1": - version: 2.0.2 - resolution: "@types/ndjson@npm:2.0.2" + version: 2.0.3 + resolution: "@types/ndjson@npm:2.0.3" dependencies: "@types/node": "*" "@types/through": "*" - checksum: 2f4d60229a01dadd4ed1d7df923223788cc4517a15d0fc07b56b3dbdefb567646334e173d7f976a8a7ce7b85df74bf78fd8805f41bdd9ebd8d135310f472a2cb + checksum: 837e295a192a054dcb7f0b2c109b87c42e3317dbe1f91a38f4194c6c46aac2284cef5a28c35d1e0063cecc411f0e89a7de6d9753406e3861c8434780b32090ea languageName: node linkType: hard From f64361e891e247bead8886217576f7fc505df067 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Fri, 27 Oct 2023 17:08:27 +0200 Subject: [PATCH 086/131] Update README.md Wellness Week + BackstageCon/KubeCon Notice Signed-off-by: Philipp Hugenroth --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ef371691de..394d7b6b04 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ # [Backstage](https://backstage.io) +> 🏖️ From 30th October - 5th November, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️ + [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![CNCF Status](https://img.shields.io/badge/cncf%20status-incubation-blue.svg)](https://www.cncf.io/projects) [![Discord](https://img.shields.io/discord/687207715902193673)](https://discord.gg/backstage-687207715902193673) From 4d52c222a3cf067eb5d1821d2df7139867654dac Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Fri, 27 Oct 2023 17:14:31 +0200 Subject: [PATCH 087/131] Update README.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: Philipp Hugenroth --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 394d7b6b04..50d7716250 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # [Backstage](https://backstage.io) -> 🏖️ From 30th October - 5th November, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️ +> 🏖️ From October 30th - November 5th, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Expect slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![CNCF Status](https://img.shields.io/badge/cncf%20status-incubation-blue.svg)](https://www.cncf.io/projects) From f2a4d528c839f8cba964fe8926e520de4839b3b5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:20:12 +0000 Subject: [PATCH 088/131] chore(deps): update dependency @types/node-forge to v1.3.8 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 e14a82e60c..0e56725a12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19186,11 +19186,11 @@ __metadata: linkType: hard "@types/node-forge@npm:^1.3.0": - version: 1.3.7 - resolution: "@types/node-forge@npm:1.3.7" + version: 1.3.8 + resolution: "@types/node-forge@npm:1.3.8" dependencies: "@types/node": "*" - checksum: e604e0e09e0ffdcf7babdf2415f7d2de14a7718ddc9c5916a693f81597dc80865d525dfb7fc876a787c25bf1164518cd8ecf1667598bee00c9ba1349f93ba4eb + checksum: fa75d22ef65671732f31965ea28618c52a1b4ef0fa44fa35110ba0fa375e35563e056c21545cf1b23a4b0b6546333e8885db003957b0cd8a45fecef16000ff63 languageName: node linkType: hard From 986d9706bc85c57a0ae51bd04e5a204601f5f364 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:20:43 +0000 Subject: [PATCH 089/131] chore(deps): update dependency @types/nunjucks to v3.2.5 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 e14a82e60c..f20e0866d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19253,9 +19253,9 @@ __metadata: linkType: hard "@types/nunjucks@npm:^3.1.4": - version: 3.2.4 - resolution: "@types/nunjucks@npm:3.2.4" - checksum: d154c6cc98320b6b9f48892eb4238f961b0196e24eb98252f9dceaa0b17bf70cd480a11d4ffda9f419d2570abf6d96524ebd3193b101f0fcf73c65af3e56d064 + version: 3.2.5 + resolution: "@types/nunjucks@npm:3.2.5" + checksum: 3b2990bb7999af5640d47c296ec01f9f96356a31b3aa935f3a7d9cac428b10b5061fe3b8328761ab267cb0151a040a4c8f9789d1f5c93179a00c9056c0676a64 languageName: node linkType: hard From f6a41137288edfd92b1c0e75256657dbf72a4e63 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Fri, 27 Oct 2023 17:57:50 +0200 Subject: [PATCH 090/131] Run prettier Signed-off-by: Philipp Hugenroth --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50d7716250..1175b4320c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # [Backstage](https://backstage.io) -> 🏖️ From October 30th - November 5th, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Expect slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️ +> 🏖️ From October 30th - November 5th, employees at Spotify will have a week to recharge, which means all core maintainers & some project area maintainers are out of office. Right after that, we will go into the week of BackstageCon + KubeCon in Chicago, hoping to see some of you there! Expect slower responses & reviews during the 2 weeks, but we're on it for urgent issues. We will be up to speed again on November 13th! 🏖️ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![CNCF Status](https://img.shields.io/badge/cncf%20status-incubation-blue.svg)](https://www.cncf.io/projects) From 5738e32ad109181ab8aa53d0e1238c9f8e7e393a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:13:38 +0000 Subject: [PATCH 091/131] chore(deps): update dependency @types/parse-link-header to v2.0.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 f20e0866d4..03a8cd0099 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19276,9 +19276,9 @@ __metadata: linkType: hard "@types/parse-link-header@npm:^2.0.1": - version: 2.0.1 - resolution: "@types/parse-link-header@npm:2.0.1" - checksum: f76678612511365aefc23704f00f3262fcb1d6bd9c4dd83f783a38e50e3ccf26615f9a62c757952cab5af6f2bd8b3b1763ce391376458afce5fe47c6fe2b80e1 + version: 2.0.2 + resolution: "@types/parse-link-header@npm:2.0.2" + checksum: 5b586d44dc2a4671222358da90cd8f6143606efc06c319043404d9a323e574ae7297ecae304f60fbf0358bf659038f7c95b570252af7f869028a7e74cd8c8d55 languageName: node linkType: hard From b48cb7aeba30effd0f7dff54d73b7902b1c23571 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:14:08 +0000 Subject: [PATCH 092/131] chore(deps): update dependency @types/passport-auth0 to v1.0.8 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 f20e0866d4..144114bba0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19283,12 +19283,12 @@ __metadata: linkType: hard "@types/passport-auth0@npm:^1.0.5": - version: 1.0.7 - resolution: "@types/passport-auth0@npm:1.0.7" + version: 1.0.8 + resolution: "@types/passport-auth0@npm:1.0.8" dependencies: "@types/express": "*" "@types/passport": "*" - checksum: 75b17c3424054a8b0238905088a7c34efab771a0bccc5ce0270d5c6f238ba859fb7354531c0df4f39e7b2c28f10090f9c260ffc42773211fc216a9acbf11170a + checksum: fd4534596ec4daf61a8acf66c13a2434b54b5da269c86ed67d2d0cdf654be7cd5da808426150db91ce25ddf37a83c75424e17ad7feeea697b6eb9c4b85678833 languageName: node linkType: hard From f763d6566ad1fce58c82d19dc67a54a2e310e2e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 17:11:07 +0000 Subject: [PATCH 093/131] chore(deps): update dependency @types/passport-github2 to v1.2.8 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 03a8cd0099..793fac5164 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19293,13 +19293,13 @@ __metadata: linkType: hard "@types/passport-github2@npm:^1.2.4": - version: 1.2.6 - resolution: "@types/passport-github2@npm:1.2.6" + version: 1.2.8 + resolution: "@types/passport-github2@npm:1.2.8" dependencies: "@types/express": "*" "@types/passport": "*" "@types/passport-oauth2": "*" - checksum: 72d1c8bc335d0d7f329372ac8bc7edb22c8bea151d4438d876036b6b768f4d12c8de305abbc25b650f373b902bae250008cb185074d2d78da49d15e981208d81 + checksum: 31ad5dfec1031e55c4faadf302e6467114e57bb093501c3f6d6fe5fc0c399a87a16a463725fa0bf4a0ac2944cf66cb458a9289aed727d21a67d97d833002994c languageName: node linkType: hard From a319f3a02450c9a4f9571c11480a33c5c36f8e25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 17:11:38 +0000 Subject: [PATCH 094/131] chore(deps): update dependency @types/passport-google-oauth20 to v2.0.13 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 03a8cd0099..e2f2542dcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19304,13 +19304,13 @@ __metadata: linkType: hard "@types/passport-google-oauth20@npm:^2.0.3": - version: 2.0.12 - resolution: "@types/passport-google-oauth20@npm:2.0.12" + version: 2.0.13 + resolution: "@types/passport-google-oauth20@npm:2.0.13" dependencies: "@types/express": "*" "@types/passport": "*" "@types/passport-oauth2": "*" - checksum: e73fff5b7e3191ab1a3633b05b4463d656ef658fe0612bc33517a1df81c8a1f019c91dcbd244233320f9eb133892b589dcb6a6348082e85e45aa5c6ed034d191 + checksum: 0068a92f202bfb1a4935ddf7c6f11975bd6fbc30db3d4f2a7cf5d74aa3455b57b4083884ec069c87eda7746b35b6777018dcf983533bd50677e4cf684c091632 languageName: node linkType: hard From c506c805b43e1e864df4115f79749edc7d548a11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 18:10:23 +0000 Subject: [PATCH 095/131] chore(deps): update dependency @types/passport-microsoft to v1.0.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 68abbda2e7..78a0034445 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19315,11 +19315,11 @@ __metadata: linkType: hard "@types/passport-microsoft@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/passport-microsoft@npm:1.0.1" + version: 1.0.2 + resolution: "@types/passport-microsoft@npm:1.0.2" dependencies: "@types/passport-oauth2": "*" - checksum: eec44ee6e14448b89434503a438021df6738513fa705b42a6d979a6b817ce89f939996a5d30707a64bca700dbc7c6ae52f1010ad2e986bb7ccd9f935d2114c9e + checksum: c8173898aba22d443cacf764da991be8461a034328bdff00ff048e76fa930d3a72e7d28f049e79c12bd35d46acdbf08f2e0f7796c7915b2018c0647d7e6ac589 languageName: node linkType: hard From fb728b9cb6589c7650ad7ce6ac272fe4b2233717 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 18:10:53 +0000 Subject: [PATCH 096/131] chore(deps): update dependency @types/passport-saml to v1.1.5 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 68abbda2e7..95ad87726e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19335,12 +19335,12 @@ __metadata: linkType: hard "@types/passport-saml@npm:^1.1.3": - version: 1.1.4 - resolution: "@types/passport-saml@npm:1.1.4" + version: 1.1.5 + resolution: "@types/passport-saml@npm:1.1.5" dependencies: "@types/express": "*" "@types/passport": "*" - checksum: 2a71d64c72b0f6cf4cafcc21138f5c925cc9bc375a0dd7ece664e8b1254dd4a704566632bafa3e16032821a7f010de4023169589b643a3b952709cde228a8c8c + checksum: 505fdf8ccdac8a3e5730c37a98742af8c8557e2a1604b25759de1631939494089ea9f6935bf74ab46d227d6ff69d2ca9cf7deea05c44938d661fff6609a3bca2 languageName: node linkType: hard From 51bd3ca0c074829ac4781609267da7465558e6e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:09:14 +0000 Subject: [PATCH 097/131] chore(deps): update dependency @types/passport-strategy to v0.2.37 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 78a0034445..cd51107bd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19345,12 +19345,12 @@ __metadata: linkType: hard "@types/passport-strategy@npm:^0.2.35": - version: 0.2.36 - resolution: "@types/passport-strategy@npm:0.2.36" + version: 0.2.37 + resolution: "@types/passport-strategy@npm:0.2.37" dependencies: "@types/express": "*" "@types/passport": "*" - checksum: 7f626eb6a12110c1ce64dd5d5181fc0795e77d60123872e33f6fa1c02a2a19451207eaf03543232241a1d70bfe0318f2ffeef88f6309d7cbaa43d2bf6ec1d1e8 + checksum: ca85308b0bba74e299dde4c31a26fb11559d62c87daa9a2321edc0f99930efdf45913acf0bf54162623a98ad0559a277b2ad95c4b26b518db1e93a02ede89e28 languageName: node linkType: hard From 8d130b31abcd297c38e64a342b92d6570438f506 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:17:54 +0000 Subject: [PATCH 098/131] chore(deps): update dependency @types/pg to v8.10.7 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 8bc2de38ca..3e1bc64b53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19364,13 +19364,13 @@ __metadata: linkType: hard "@types/pg@npm:^8.6.6": - version: 8.10.5 - resolution: "@types/pg@npm:8.10.5" + version: 8.10.7 + resolution: "@types/pg@npm:8.10.7" dependencies: "@types/node": "*" pg-protocol: "*" pg-types: ^4.0.1 - checksum: 532a3104ed7898e3c7806e00cbde486dcfc803d2e99e236066f1b675ff0546a1cb232fe6f2ffc60dac81d3df209b69dbe62a597b565bff0965dd622fef957afe + checksum: 90a616360844b6f877be21a24839af2115f5eb9c8e3eeaf577fa0f036c6c56ad140113fdd8268e63cf215bd0953d89caa1af05191dd89cb2e6d96eb6db6074d2 languageName: node linkType: hard From 13e6778fe1d1c5c94b46a5df535743ea2f7c0a9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 20:10:47 +0000 Subject: [PATCH 099/131] chore(deps): update dependency @types/ping to v0.4.3 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 d253c4884a..8c265f310e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19375,9 +19375,9 @@ __metadata: linkType: hard "@types/ping@npm:^0.4.1": - version: 0.4.2 - resolution: "@types/ping@npm:0.4.2" - checksum: 4ea20f8c04d6d52ac9d4a551af03b940c273616fc647d9905197400f920f744c5224ee6913ef26b845633e8e44ebab4195e4fd71daf271090336f303069b7fef + version: 0.4.3 + resolution: "@types/ping@npm:0.4.3" + checksum: 8b0855eeeea0f894c90415dab8eb467cb7142b883cf30473663a93e82f58ad08f5fd9d07460d5f8e7fa3c5987c15c9a638e236a118a0cee9c566f95e53095406 languageName: node linkType: hard From 7da799d5b79411cfea042051c25b790b5bb2d764 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 20:11:10 +0000 Subject: [PATCH 100/131] chore(deps): update dependency @types/pluralize to ^0.0.32 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .changeset/renovate-dacadfa.md | 5 +++++ plugins/cost-insights/package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/renovate-dacadfa.md diff --git a/.changeset/renovate-dacadfa.md b/.changeset/renovate-dacadfa.md new file mode 100644 index 0000000000..a450dc06a9 --- /dev/null +++ b/.changeset/renovate-dacadfa.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Updated dependency `@types/pluralize` to `^0.0.32`. diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 8bb278588e..4042774235 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -70,7 +70,7 @@ "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.0.0", - "@types/pluralize": "^0.0.31", + "@types/pluralize": "^0.0.32", "@types/recharts": "^1.8.14", "@types/regression": "^2.0.0", "@types/yup": "^0.29.13", diff --git a/yarn.lock b/yarn.lock index d253c4884a..96a634fce3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6494,7 +6494,7 @@ __metadata: "@testing-library/jest-dom": ^6.0.0 "@testing-library/react": ^14.0.0 "@testing-library/user-event": ^14.0.0 - "@types/pluralize": ^0.0.31 + "@types/pluralize": ^0.0.32 "@types/react": ^16.13.1 || ^17.0.0 "@types/recharts": ^1.8.14 "@types/regression": ^2.0.0 @@ -19381,10 +19381,10 @@ __metadata: languageName: node linkType: hard -"@types/pluralize@npm:^0.0.31": - version: 0.0.31 - resolution: "@types/pluralize@npm:0.0.31" - checksum: 950d52d8f6709cdb7001336942fba0a63bf54b45695391fc2244d03db69b0eb6f187f80519d74941f5ce1dfa900d3975f2ed52e98b1f63a79045f5c085832beb +"@types/pluralize@npm:^0.0.32": + version: 0.0.32 + resolution: "@types/pluralize@npm:0.0.32" + checksum: 788aa2ad144a0e7b318d03bddfeefecd65e97793e0faad748c458538abd8d680bcc096fe1219567a7c19d41d23b74e45868d7d43a06a44135798eb8da09a1655 languageName: node linkType: hard From af0a80183675a3c34035ed47fc9d1aada42f7e1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:11:17 +0000 Subject: [PATCH 101/131] chore(deps): update dependency @types/react-grid-layout to v1.3.4 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 8c265f310e..89ff388e61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19444,11 +19444,11 @@ __metadata: linkType: hard "@types/react-grid-layout@npm:^1.3.2": - version: 1.3.3 - resolution: "@types/react-grid-layout@npm:1.3.3" + version: 1.3.4 + resolution: "@types/react-grid-layout@npm:1.3.4" dependencies: "@types/react": "*" - checksum: 918173791c2b121f2780ccfcd36b6fe79c8b43d014ab8bbc37d6e70ee1849bfe81281450d121a2361ad15b4ddfbdfc95c9790ac600f732a20897844d735c455b + checksum: e960b250f22b799a52c740a68a73bf1c97ba97148abfe4c270c4d227a821c98b93487510a6270a57e394ff467eaaa7a3c1378e71ef4d78659fd65eb87873c923 languageName: node linkType: hard From ce9bd6fe046873e227849d5bbe92566cdad3e9cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 22:01:56 +0000 Subject: [PATCH 102/131] chore(deps): update dependency @types/react-helmet to v6.1.8 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 89ff388e61..b8b851741b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19453,11 +19453,11 @@ __metadata: linkType: hard "@types/react-helmet@npm:^6.1.0": - version: 6.1.7 - resolution: "@types/react-helmet@npm:6.1.7" + version: 6.1.8 + resolution: "@types/react-helmet@npm:6.1.8" dependencies: "@types/react": "*" - checksum: d5ee8343f10f8746a022249c6401493baa73241a90b5002b59e8a6ce31650b9e1ab38d398eba5564af026f68eda107c8fcdca01fc046a163a96dc422710f6a77 + checksum: 380d6aa2760a43dab59d46f291caf9498abfda813e343aeaea8b814fe21a69b27e9ad97962b5541ad75179eb9b7875027e4fcc7009187b2f68251ac9f0923a2c languageName: node linkType: hard From 019f7a2ed7d75cc5565841f1adb5540e1c16fb95 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 22:55:29 +0000 Subject: [PATCH 103/131] chore(deps): update dependency @types/react-syntax-highlighter to v15.5.9 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 b8b851741b..628c8f7fbe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19483,11 +19483,11 @@ __metadata: linkType: hard "@types/react-syntax-highlighter@npm:^15.0.0": - version: 15.5.8 - resolution: "@types/react-syntax-highlighter@npm:15.5.8" + version: 15.5.9 + resolution: "@types/react-syntax-highlighter@npm:15.5.9" dependencies: "@types/react": "*" - checksum: 3bee4fe5901abc57c06b70aee528a7a2aa9617f8347fbe960f6b7ba14a231aa6fab892e1f6cd9b1e1321078183a9773fcf55488df63cfc7dfa8a307aa48040b3 + checksum: b03c2b4b62a950f29cb46a5eae95b81add333b0d2b107d1d35c4efe639529ba424dab364d09b3d57ecef0f0394369d6680caaed80872184ebf5fb84749095808 languageName: node linkType: hard From c943d88c3f4e2698c370afb931c8bc3fec090c7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:40:59 +0000 Subject: [PATCH 104/131] chore(deps): update dependency @types/react-virtualized-auto-sizer to v1.0.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 628c8f7fbe..2d71bc767b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19519,11 +19519,11 @@ __metadata: linkType: hard "@types/react-virtualized-auto-sizer@npm:^1.0.1": - version: 1.0.1 - resolution: "@types/react-virtualized-auto-sizer@npm:1.0.1" + version: 1.0.2 + resolution: "@types/react-virtualized-auto-sizer@npm:1.0.2" dependencies: "@types/react": "*" - checksum: 67eff0670a1991c2b16992274ada5f0b3f9d5c2d6209ef38e8f8ae2c0218211a3292882f5b7dd6f09519000dc20847629f049c9acc267e000626b7141e5927a6 + checksum: b94702678431df4efd0accc30c4657745a65f1128a46e5f68b52d269069c7aef0560ea8cb7f2c6c15fd2b47abd9efa0381ff0e847cceea4074cad73cbcece96a languageName: node linkType: hard From fae50f2ea8634d4531f3d927d46de562f565fa28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Oct 2023 00:48:50 +0000 Subject: [PATCH 105/131] chore(deps): update dependency @types/react-window to v1.8.7 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 2d71bc767b..d8dc78938b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19528,11 +19528,11 @@ __metadata: linkType: hard "@types/react-window@npm:^1.8.5": - version: 1.8.6 - resolution: "@types/react-window@npm:1.8.6" + version: 1.8.7 + resolution: "@types/react-window@npm:1.8.7" dependencies: "@types/react": "*" - checksum: 3084190ab50a84d8499a6df574ad67474566cd7aeeb8fc6ce82a7a13421fd39e21a059c51f9d12f38e5ac52eb9d65f6184e3fb6cb62841e93b197b7401b36e35 + checksum: e135299b5d55b63eb3f400570b77ff64afaeeb305587f71f7e20734a879aaddec6f6d24180e54c6c2f3200a71712ac7e6f1474733fe71e879a65f9e4ab113977 languageName: node linkType: hard From 4d6fa921dbdd69cf9b20acb8f6dafbcd3a6b0862 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 28 Oct 2023 11:31:28 +0200 Subject: [PATCH 106/131] frontend-app-api: rename AppGraph to AppTree Signed-off-by: Patrik Oldsberg --- .changeset/swift-badgers-hide.md | 5 ++ .../extractRouteInfoFromAppNode.test.ts | 6 +-- .../routing/extractRouteInfoFromAppNode.ts | 2 +- .../createAppTree.test.ts} | 12 ++--- .../createAppTree.ts} | 14 ++--- .../src/{graph => tree}/index.ts | 2 +- .../instantiateAppNodeTree.test.ts | 52 +++++++++---------- .../{graph => tree}/instantiateAppNodeTree.ts | 2 +- .../readAppExtensionsConfig.test.ts | 0 .../readAppExtensionsConfig.ts | 0 .../resolveAppNodeSpecs.test.ts | 0 .../{graph => tree}/resolveAppNodeSpecs.ts | 0 .../resolveAppTree.test.ts} | 44 ++++++++-------- .../resolveAppTree.ts} | 12 ++--- .../src/{graph => tree}/types.ts | 12 ++--- .../frontend-app-api/src/wiring/createApp.tsx | 18 +++---- 16 files changed, 92 insertions(+), 89 deletions(-) create mode 100644 .changeset/swift-badgers-hide.md rename packages/frontend-app-api/src/{graph/createAppGraph.test.ts => tree/createAppTree.test.ts} (91%) rename packages/frontend-app-api/src/{graph/createAppGraph.ts => tree/createAppTree.ts} (81%) rename packages/frontend-app-api/src/{graph => tree}/index.ts (93%) rename packages/frontend-app-api/src/{graph => tree}/instantiateAppNodeTree.test.ts (92%) rename packages/frontend-app-api/src/{graph => tree}/instantiateAppNodeTree.ts (99%) rename packages/frontend-app-api/src/{graph => tree}/readAppExtensionsConfig.test.ts (100%) rename packages/frontend-app-api/src/{graph => tree}/readAppExtensionsConfig.ts (100%) rename packages/frontend-app-api/src/{graph => tree}/resolveAppNodeSpecs.test.ts (100%) rename packages/frontend-app-api/src/{graph => tree}/resolveAppNodeSpecs.ts (100%) rename packages/frontend-app-api/src/{graph/resolveAppGraph.test.ts => tree/resolveAppTree.test.ts} (73%) rename packages/frontend-app-api/src/{graph/resolveAppGraph.ts => tree/resolveAppTree.ts} (92%) rename packages/frontend-app-api/src/{graph => tree}/types.ts (90%) diff --git a/.changeset/swift-badgers-hide.md b/.changeset/swift-badgers-hide.md new file mode 100644 index 0000000000..217253370e --- /dev/null +++ b/.changeset/swift-badgers-hide.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-app-api': patch +--- + +Internal refactor to rename the app graph to app tree diff --git a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts index c6b025e8b3..c44c10180a 100644 --- a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts +++ b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.test.ts @@ -28,7 +28,7 @@ import { createRouteRef, } from '@backstage/frontend-plugin-api'; import { MockConfigApi } from '@backstage/test-utils'; -import { createAppGraph } from '../graph'; +import { createAppTree } from '../tree'; import { Core } from '../extensions/Core'; import { CoreRoutes } from '../extensions/CoreRoutes'; import { CoreNav } from '../extensions/CoreNav'; @@ -77,13 +77,13 @@ function routeInfoFromExtensions(extensions: Extension[]) { id: 'test', extensions, }); - const graph = createAppGraph({ + const tree = createAppTree({ config: new MockConfigApi({}), builtinExtensions: [Core, CoreRoutes, CoreNav, CoreLayout], features: [plugin], }); - return extractRouteInfoFromAppNode(graph.root); + return extractRouteInfoFromAppNode(tree.root); } function sortedEntries(map: Map): [RouteRef, T][] { diff --git a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.ts b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.ts index 71991ee44e..5700bf4eae 100644 --- a/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.ts +++ b/packages/frontend-app-api/src/routing/extractRouteInfoFromAppNode.ts @@ -18,7 +18,7 @@ import { RouteRef, coreExtensionData } from '@backstage/frontend-plugin-api'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports import { toLegacyPlugin } from '../wiring/createApp'; import { BackstageRouteObject } from './types'; -import { AppNode } from '../graph'; +import { AppNode } from '../tree'; // We always add a child that matches all subroutes but without any route refs. This makes // sure that we're always able to match each route no matter how deep the navigation goes. diff --git a/packages/frontend-app-api/src/graph/createAppGraph.test.ts b/packages/frontend-app-api/src/tree/createAppTree.test.ts similarity index 91% rename from packages/frontend-app-api/src/graph/createAppGraph.test.ts rename to packages/frontend-app-api/src/tree/createAppTree.test.ts index 1a046b210b..667e3a6fc3 100644 --- a/packages/frontend-app-api/src/graph/createAppGraph.test.ts +++ b/packages/frontend-app-api/src/tree/createAppTree.test.ts @@ -20,7 +20,7 @@ import { createPlugin, } from '@backstage/frontend-plugin-api'; import { MockConfigApi } from '@backstage/test-utils'; -import { createAppGraph } from './createAppGraph'; +import { createAppTree } from './createAppTree'; const extBase = { id: 'test', @@ -29,7 +29,7 @@ const extBase = { factory: () => ({}), }; -describe('createAppGraph', () => { +describe('createAppTree', () => { it('throws an error when a core extension is parametrized', () => { const config = new MockConfigApi({ app: { @@ -47,7 +47,7 @@ describe('createAppGraph', () => { }), ]; expect(() => - createAppGraph({ features, config, builtinExtensions: [] }), + createAppTree({ features, config, builtinExtensions: [] }), ).toThrow("Configuration of the 'core' extension is forbidden"); }); @@ -68,7 +68,7 @@ describe('createAppGraph', () => { }), ]; expect(() => - createAppGraph({ features, config, builtinExtensions: [] }), + createAppTree({ features, config, builtinExtensions: [] }), ).toThrow( "It is forbidden to override the following extension(s): 'core', which is done by the following plugin(s): 'plugin'", ); @@ -94,7 +94,7 @@ describe('createAppGraph', () => { const features = [PluginA, PluginB]; expect(() => - createAppGraph({ features, config, builtinExtensions: [] }), + createAppTree({ features, config, builtinExtensions: [] }), ).toThrow( "The following extensions are duplicated: The extension 'A' was provided 2 time(s) by the plugin 'A' and 1 time(s) by the plugin 'B', The extension 'B' was provided 2 time(s) by the plugin 'B'", ); @@ -102,7 +102,7 @@ describe('createAppGraph', () => { it('throws an error when duplicated extension overrides are detected', () => { expect(() => - createAppGraph({ + createAppTree({ features: [ createExtensionOverrides({ extensions: [ diff --git a/packages/frontend-app-api/src/graph/createAppGraph.ts b/packages/frontend-app-api/src/tree/createAppTree.ts similarity index 81% rename from packages/frontend-app-api/src/graph/createAppGraph.ts rename to packages/frontend-app-api/src/tree/createAppTree.ts index ace8595f53..2c36d56bf7 100644 --- a/packages/frontend-app-api/src/graph/createAppGraph.ts +++ b/packages/frontend-app-api/src/tree/createAppTree.ts @@ -20,22 +20,22 @@ import { ExtensionOverrides, } from '@backstage/frontend-plugin-api'; import { readAppExtensionsConfig } from './readAppExtensionsConfig'; -import { resolveAppGraph } from './resolveAppGraph'; +import { resolveAppTree } from './resolveAppTree'; import { resolveAppNodeSpecs } from './resolveAppNodeSpecs'; -import { AppGraph } from './types'; +import { AppTree } from './types'; import { Config } from '@backstage/config'; import { instantiateAppNodeTree } from './instantiateAppNodeTree'; /** @internal */ -export interface CreateAppGraphOptions { +export interface CreateAppTreeOptions { features: (BackstagePlugin | ExtensionOverrides)[]; builtinExtensions: Extension[]; config: Config; } /** @internal */ -export function createAppGraph(options: CreateAppGraphOptions): AppGraph { - const appGraph = resolveAppGraph( +export function createAppTree(options: CreateAppTreeOptions): AppTree { + const tree = resolveAppTree( 'core', resolveAppNodeSpecs({ features: options.features, @@ -44,6 +44,6 @@ export function createAppGraph(options: CreateAppGraphOptions): AppGraph { forbidden: new Set(['core']), }), ); - instantiateAppNodeTree(appGraph.root); - return appGraph; + instantiateAppNodeTree(tree.root); + return tree; } diff --git a/packages/frontend-app-api/src/graph/index.ts b/packages/frontend-app-api/src/tree/index.ts similarity index 93% rename from packages/frontend-app-api/src/graph/index.ts rename to packages/frontend-app-api/src/tree/index.ts index 4a3b54dffb..c864e86a7a 100644 --- a/packages/frontend-app-api/src/graph/index.ts +++ b/packages/frontend-app-api/src/tree/index.ts @@ -20,4 +20,4 @@ export type { AppNodeInstance, AppNodeSpec, } from './types'; -export { createAppGraph } from './createAppGraph'; +export { createAppTree } from './createAppTree'; diff --git a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts b/packages/frontend-app-api/src/tree/instantiateAppNodeTree.test.ts similarity index 92% rename from packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts rename to packages/frontend-app-api/src/tree/instantiateAppNodeTree.test.ts index 9be3482b5d..2f4a112166 100644 --- a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.test.ts +++ b/packages/frontend-app-api/src/tree/instantiateAppNodeTree.test.ts @@ -26,7 +26,7 @@ import { instantiateAppNodeTree, } from './instantiateAppNodeTree'; import { AppNodeInstance, AppNodeSpec } from './types'; -import { resolveAppGraph } from './resolveAppGraph'; +import { resolveAppTree } from './resolveAppTree'; const testDataRef = createExtensionDataRef('test'); const otherDataRef = createExtensionDataRef('other'); @@ -79,30 +79,30 @@ function makeInstanceWithId( describe('instantiateAppNodeTree', () => { it('should instantiate a single node', () => { - const graph = resolveAppGraph('root-node', [ + const tree = resolveAppTree('root-node', [ { ...makeSpec(simpleExtension), id: 'root-node' }, ]); - expect(graph.root.instance).not.toBeDefined(); - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).toBeDefined(); - expect(graph.root.instance?.getData(testDataRef)).toBe('test'); + expect(tree.root.instance).not.toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).toBeDefined(); + expect(tree.root.instance?.getData(testDataRef)).toBe('test'); // Multiple calls should have no effect - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).toBeDefined(); }); it('should not instantiate disabled nodes', () => { - const graph = resolveAppGraph('root-node', [ + const tree = resolveAppTree('root-node', [ { ...makeSpec(simpleExtension), id: 'root-node', disabled: true }, ]); - expect(graph.root.instance).not.toBeDefined(); - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).not.toBeDefined(); + expect(tree.root.instance).not.toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).not.toBeDefined(); }); it('should instantiate a node with attachments', () => { - const graph = resolveAppGraph('root-node', [ + const tree = resolveAppTree('root-node', [ { ...makeSpec( createExtension({ @@ -127,26 +127,26 @@ describe('instantiateAppNodeTree', () => { }, ]); - const childNode = graph.nodes.get('child-node'); + const childNode = tree.nodes.get('child-node'); expect(childNode).toBeDefined(); - expect(graph.root.instance).not.toBeDefined(); + expect(tree.root.instance).not.toBeDefined(); expect(childNode?.instance).not.toBeDefined(); - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).toBeDefined(); expect(childNode?.instance).toBeDefined(); - expect(graph.root.instance?.getData(inputMirrorDataRef)).toEqual({ + expect(tree.root.instance?.getData(inputMirrorDataRef)).toEqual({ test: [{ test: 'test' }], }); // Multiple calls should have no effect - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).toBeDefined(); expect(childNode?.instance).toBeDefined(); }); it('should not instantiate disabled attachments', () => { - const graph = resolveAppGraph('root-node', [ + const tree = resolveAppTree('root-node', [ { ...makeSpec( createExtension({ @@ -172,15 +172,15 @@ describe('instantiateAppNodeTree', () => { }, ]); - const childNode = graph.nodes.get('child-node'); + const childNode = tree.nodes.get('child-node'); expect(childNode).toBeDefined(); - expect(graph.root.instance).not.toBeDefined(); + expect(tree.root.instance).not.toBeDefined(); expect(childNode?.instance).not.toBeDefined(); - instantiateAppNodeTree(graph.root); - expect(graph.root.instance).toBeDefined(); + instantiateAppNodeTree(tree.root); + expect(tree.root.instance).toBeDefined(); expect(childNode?.instance).not.toBeDefined(); - expect(graph.root.instance?.getData(inputMirrorDataRef)).toEqual({ + expect(tree.root.instance?.getData(inputMirrorDataRef)).toEqual({ test: [], }); }); diff --git a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts b/packages/frontend-app-api/src/tree/instantiateAppNodeTree.ts similarity index 99% rename from packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts rename to packages/frontend-app-api/src/tree/instantiateAppNodeTree.ts index bf6028554b..b6e4179867 100644 --- a/packages/frontend-app-api/src/graph/instantiateAppNodeTree.ts +++ b/packages/frontend-app-api/src/tree/instantiateAppNodeTree.ts @@ -151,7 +151,7 @@ export function createAppNodeInstance(options: { } /** - * Starting at the provided node, instantiate all reachable nodes in the graph that have not been disabled. + * Starting at the provided node, instantiate all reachable nodes in the tree that have not been disabled. * @internal */ export function instantiateAppNodeTree(rootNode: AppNode): void { diff --git a/packages/frontend-app-api/src/graph/readAppExtensionsConfig.test.ts b/packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts similarity index 100% rename from packages/frontend-app-api/src/graph/readAppExtensionsConfig.test.ts rename to packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts diff --git a/packages/frontend-app-api/src/graph/readAppExtensionsConfig.ts b/packages/frontend-app-api/src/tree/readAppExtensionsConfig.ts similarity index 100% rename from packages/frontend-app-api/src/graph/readAppExtensionsConfig.ts rename to packages/frontend-app-api/src/tree/readAppExtensionsConfig.ts diff --git a/packages/frontend-app-api/src/graph/resolveAppNodeSpecs.test.ts b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts similarity index 100% rename from packages/frontend-app-api/src/graph/resolveAppNodeSpecs.test.ts rename to packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts diff --git a/packages/frontend-app-api/src/graph/resolveAppNodeSpecs.ts b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts similarity index 100% rename from packages/frontend-app-api/src/graph/resolveAppNodeSpecs.ts rename to packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts diff --git a/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts b/packages/frontend-app-api/src/tree/resolveAppTree.test.ts similarity index 73% rename from packages/frontend-app-api/src/graph/resolveAppGraph.test.ts rename to packages/frontend-app-api/src/tree/resolveAppTree.test.ts index 2b7257446e..d84064b26a 100644 --- a/packages/frontend-app-api/src/graph/resolveAppGraph.test.ts +++ b/packages/frontend-app-api/src/tree/resolveAppTree.test.ts @@ -15,7 +15,7 @@ */ import { createExtension } from '@backstage/frontend-plugin-api'; -import { resolveAppGraph } from './resolveAppGraph'; +import { resolveAppTree } from './resolveAppTree'; const extBaseConfig = { id: 'test', @@ -32,25 +32,25 @@ const baseSpec = { disabled: false, }; -describe('buildAppGraph', () => { - it('should fail to create an empty graph', () => { - expect(() => resolveAppGraph('core', [])).toThrow( - "No root node with id 'core' found in app graph", +describe('buildAppTree', () => { + it('should fail to create an empty tree', () => { + expect(() => resolveAppTree('core', [])).toThrow( + "No root node with id 'core' found in app tree", ); }); - it('should create a graph with only one node', () => { - const graph = resolveAppGraph('core', [{ ...baseSpec, id: 'core' }]); - expect(graph.root).toEqual({ + it('should create a tree with only one node', () => { + const tree = resolveAppTree('core', [{ ...baseSpec, id: 'core' }]); + expect(tree.root).toEqual({ spec: { ...baseSpec, id: 'core' }, edges: { attachments: new Map() }, }); - expect(Array.from(graph.orphans)).toEqual([]); - expect(Array.from(graph.nodes.keys())).toEqual(['core']); + expect(Array.from(tree.orphans)).toEqual([]); + expect(Array.from(tree.nodes.keys())).toEqual(['core']); }); - it('should create a graph', () => { - const graph = resolveAppGraph('b', [ + it('should create a tree', () => { + const tree = resolveAppTree('b', [ { ...baseSpec, id: 'a' }, { ...baseSpec, id: 'b' }, { ...baseSpec, id: 'c' }, @@ -60,7 +60,7 @@ describe('buildAppGraph', () => { { ...baseSpec, attachTo: { id: 'd', input: 'x' }, id: 'dx1' }, ]); - expect(Array.from(graph.nodes.keys())).toEqual([ + expect(Array.from(tree.nodes.keys())).toEqual([ 'a', 'b', 'c', @@ -70,7 +70,7 @@ describe('buildAppGraph', () => { 'dx1', ]); - expect(JSON.parse(JSON.stringify(graph.root))).toMatchInlineSnapshot(` + expect(JSON.parse(JSON.stringify(tree.root))).toMatchInlineSnapshot(` { "attachments": { "x": [ @@ -90,7 +90,7 @@ describe('buildAppGraph', () => { "id": "b", } `); - expect(String(graph.root)).toMatchInlineSnapshot(` + expect(String(tree.root)).toMatchInlineSnapshot(` " x [ @@ -102,7 +102,7 @@ describe('buildAppGraph', () => { " `); - const orphans = Array.from(graph.orphans).map(String); + const orphans = Array.from(tree.orphans).map(String); expect(orphans).toMatchInlineSnapshot(` [ "
", @@ -112,8 +112,8 @@ describe('buildAppGraph', () => { `); }); - it('should create a graph out of order', () => { - const graph = resolveAppGraph('b', [ + it('should create a tree out of order', () => { + const tree = resolveAppTree('b', [ { ...baseSpec, attachTo: { id: 'b', input: 'x' }, id: 'bx2' }, { ...baseSpec, id: 'a' }, { ...baseSpec, attachTo: { id: 'b', input: 'y' }, id: 'by1' }, @@ -123,7 +123,7 @@ describe('buildAppGraph', () => { { ...baseSpec, attachTo: { id: 'd', input: 'x' }, id: 'dx1' }, ]); - expect(Array.from(graph.nodes.keys())).toEqual([ + expect(Array.from(tree.nodes.keys())).toEqual([ 'bx2', 'a', 'by1', @@ -133,7 +133,7 @@ describe('buildAppGraph', () => { 'dx1', ]); - expect(String(graph.root)).toMatchInlineSnapshot(` + expect(String(tree.root)).toMatchInlineSnapshot(` " x [ @@ -145,7 +145,7 @@ describe('buildAppGraph', () => { " `); - const orphans = Array.from(graph.orphans).map(String); + const orphans = Array.from(tree.orphans).map(String); expect(orphans).toMatchInlineSnapshot(` [ "", @@ -157,7 +157,7 @@ describe('buildAppGraph', () => { it('throws an error when duplicated extensions are detected', () => { expect(() => - resolveAppGraph('core', [ + resolveAppTree('core', [ { ...baseSpec, id: 'a' }, { ...baseSpec, id: 'a' }, ]), diff --git a/packages/frontend-app-api/src/graph/resolveAppGraph.ts b/packages/frontend-app-api/src/tree/resolveAppTree.ts similarity index 92% rename from packages/frontend-app-api/src/graph/resolveAppGraph.ts rename to packages/frontend-app-api/src/tree/resolveAppTree.ts index 354b4c53ee..9fda8e0f6a 100644 --- a/packages/frontend-app-api/src/graph/resolveAppGraph.ts +++ b/packages/frontend-app-api/src/tree/resolveAppTree.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { AppGraph, AppNode, AppNodeInstance, AppNodeSpec } from './types'; +import { AppTree, AppNode, AppNodeInstance, AppNodeSpec } from './types'; function indent(str: string) { return str.replace(/^/gm, ' '); @@ -83,17 +83,17 @@ class SerializableAppNode implements AppNode { } /** - * Build the app graph by iterating through all node specs and constructing the app + * Build the app tree by iterating through all node specs and constructing the app * tree with all attachments in the same order as they appear in the input specs array. * @internal */ -export function resolveAppGraph( +export function resolveAppTree( rootNodeId: string, specs: AppNodeSpec[], -): AppGraph { +): AppTree { const nodes = new Map(); - // A node with the provided rootNodeId must be found in the graph, and it must not be attached to anything + // A node with the provided rootNodeId must be found in the tree, and it must not be attached to anything let rootNode: AppNode | undefined = undefined; // While iterating through the inputs specs we keep track of all nodes that were created @@ -141,7 +141,7 @@ export function resolveAppGraph( } if (!rootNode) { - throw new Error(`No root node with id '${rootNodeId}' found in app graph`); + throw new Error(`No root node with id '${rootNodeId}' found in app tree`); } return { diff --git a/packages/frontend-app-api/src/graph/types.ts b/packages/frontend-app-api/src/tree/types.ts similarity index 90% rename from packages/frontend-app-api/src/graph/types.ts rename to packages/frontend-app-api/src/tree/types.ts index 9267f13158..3246dfe5c2 100644 --- a/packages/frontend-app-api/src/graph/types.ts +++ b/packages/frontend-app-api/src/tree/types.ts @@ -25,13 +25,13 @@ NOTE: These types are marked as @internal for now, but the intention is for this */ /** - * The specification for this node in the app graph. + * The specification for this node in the app tree. * * @internal * @remarks * * The specifications for a collection of app nodes is all the information needed - * to build the graph and instantiate the nodes. + * to build the tree and instantiate the nodes. */ export interface AppNodeSpec { readonly id: string; @@ -57,7 +57,7 @@ export interface AppNodeEdges { } /** - * The instance of this node in the app graph. + * The instance of this node in the app tree. * * @internal * @remarks @@ -80,18 +80,18 @@ export interface AppNodeInstance { export interface AppNode { /** The specification for how this node should be instantiated */ readonly spec: AppNodeSpec; - /** The edges from this node to other nodes in the app graph */ + /** The edges from this node to other nodes in the app tree */ readonly edges: AppNodeEdges; /** The instance of this node, if it was instantiated */ readonly instance?: AppNodeInstance; } /** - * The app graph containing all nodes of the app. + * The app tree containing all nodes of the app. * * @internal */ -export interface AppGraph { +export interface AppTree { /** The root node of the app */ root: AppNode; /** A map of all nodes in the app by ID, including orphaned or disabled nodes */ diff --git a/packages/frontend-app-api/src/wiring/createApp.tsx b/packages/frontend-app-api/src/wiring/createApp.tsx index 4f7817314a..d726773fd3 100644 --- a/packages/frontend-app-api/src/wiring/createApp.tsx +++ b/packages/frontend-app-api/src/wiring/createApp.tsx @@ -87,7 +87,7 @@ import { AppRouteBinder } from '../routing'; import { RoutingProvider } from '../routing/RoutingProvider'; import { resolveRouteBindings } from '../routing/resolveRouteBindings'; import { collectRouteIds } from '../routing/collectRouteIds'; -import { AppNode, createAppGraph } from '../graph'; +import { AppNode, createAppTree } from '../tree'; const builtinExtensions = [ Core, @@ -117,7 +117,7 @@ export function createExtensionTree(options: { config: Config; }): ExtensionTree { const features = getAvailableFeatures(options.config); - const graph = createAppGraph({ + const tree = createAppTree({ features, builtinExtensions, config: options.config, @@ -136,14 +136,14 @@ export function createExtensionTree(options: { return { getExtension(id: string): ExtensionTreeNode | undefined { - return convertNode(graph.nodes.get(id)); + return convertNode(tree.nodes.get(id)); }, getExtensionAttachments( id: string, inputName: string, ): ExtensionTreeNode[] { return ( - graph.nodes + tree.nodes .get(id) ?.edges.attachments.get(inputName) ?.map(convertNode) @@ -247,7 +247,7 @@ export function createApp(options: { ...(options.features ?? []), ]); - const appGraph = createAppGraph({ + const tree = createAppTree({ features: allFeatures, builtinExtensions, config, @@ -262,11 +262,11 @@ export function createApp(options: { const routeIds = collectRouteIds(allFeatures); const App = () => ( - + {/* TODO: set base path using the logic from AppRouter */} - {appGraph.root.instance!.getData( - coreExtensionData.reactElement, - )} + {tree.root.instance!.getData(coreExtensionData.reactElement)} From 9f24c8cc2012c7f0afb3989f0da95f865efd2a0e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 28 Oct 2023 13:39:52 +0200 Subject: [PATCH 107/131] root: update fsevents patch Signed-off-by: Patrik Oldsberg --- ...est-haste-map-npm-29.7.0-e3be419eff.patch} | 2 +- package.json | 2 +- yarn.lock | 25 ++++++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) rename .yarn/patches/{jest-haste-map-npm-29.4.3-19b03fcef3.patch => jest-haste-map-npm-29.7.0-e3be419eff.patch} (83%) diff --git a/.yarn/patches/jest-haste-map-npm-29.4.3-19b03fcef3.patch b/.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch similarity index 83% rename from .yarn/patches/jest-haste-map-npm-29.4.3-19b03fcef3.patch rename to .yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch index e0dd8bfa8c..daf1ca7585 100644 --- a/.yarn/patches/jest-haste-map-npm-29.4.3-19b03fcef3.patch +++ b/.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch @@ -1,5 +1,5 @@ diff --git a/build/watchers/FSEventsWatcher.js b/build/watchers/FSEventsWatcher.js -index 2273a6cbd2110ddbbd1525820289c3d93ab46cac..d637a644239ae4a7db407ce779f43b4dec9a44ed 100644 +index a8b59d7f382b290ed9e09593c439c17137d8fb3e..07549f187257fd568add4fcff3a6d7646c2915c1 100644 --- a/build/watchers/FSEventsWatcher.js +++ b/build/watchers/FSEventsWatcher.js @@ -103,7 +103,7 @@ function _interopRequireWildcard(obj, nodeInterop) { diff --git a/package.json b/package.json index 82a23cf7eb..6ce1ae0ba4 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "resolutions": { "@types/react": "^18", "@types/react-dom": "^18", - "jest-haste-map@^29.4.3": "patch:jest-haste-map@npm%3A29.4.3#./.yarn/patches/jest-haste-map-npm-29.4.3-19b03fcef3.patch", + "jest-haste-map@^29.7.0": "patch:jest-haste-map@npm%3A29.7.0#./.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch", "mock-fs@^5.2.0": "patch:mock-fs@npm%3A5.2.0#./.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch", "@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch", "@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch" diff --git a/yarn.lock b/yarn.lock index 2d71bc767b..4c3c7d1217 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31885,7 +31885,7 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^29.7.0": +"jest-haste-map@npm:29.7.0": version: 29.7.0 resolution: "jest-haste-map@npm:29.7.0" dependencies: @@ -31908,6 +31908,29 @@ __metadata: languageName: node linkType: hard +"jest-haste-map@patch:jest-haste-map@npm%3A29.7.0#./.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch::locator=root%40workspace%3A.": + version: 29.7.0 + resolution: "jest-haste-map@patch:jest-haste-map@npm%3A29.7.0#./.yarn/patches/jest-haste-map-npm-29.7.0-e3be419eff.patch::version=29.7.0&hash=c4774f&locator=root%40workspace%3A." + dependencies: + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: 37ceff10601c02e32519154b95af9e85dc9d5220c55d67ba038e9c91abed631c3c1863cbb4eb0ff43e02460382c29b2476493bcaaa969af534bd0ef6fa06297e + languageName: node + linkType: hard + "jest-leak-detector@npm:^29.7.0": version: 29.7.0 resolution: "jest-leak-detector@npm:29.7.0" From 6de9d4d4f417fbd310157815827c914215a5d6b8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 30 Oct 2023 13:22:50 +0100 Subject: [PATCH 108/131] frontend-app-api: fix for disabled nodes being filtered out from app tree Signed-off-by: Patrik Oldsberg --- .../src/tree/resolveAppNodeSpecs.test.ts | 73 ++++++++++++------- .../src/tree/resolveAppNodeSpecs.ts | 18 ++--- 2 files changed, 53 insertions(+), 38 deletions(-) diff --git a/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts index 59930968c6..39eceaaf28 100644 --- a/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts +++ b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.test.ts @@ -34,14 +34,22 @@ function makeExt( } describe('resolveAppNodeSpecs', () => { - it('should filter out disabled extension instances', () => { + it('should not filter out disabled extension instances', () => { + const a = makeExt('a', 'disabled'); expect( resolveAppNodeSpecs({ features: [], - builtinExtensions: [makeExt('a', 'disabled')], + builtinExtensions: [a], parameters: [], }), - ).toEqual([]); + ).toEqual([ + { + id: 'a', + extension: a, + attachTo: { id: 'root', input: 'default' }, + disabled: true, + }, + ]); }); it('should pass through extension instances', () => { @@ -186,31 +194,40 @@ describe('resolveAppNodeSpecs', () => { const bOverride = makeExt('b', 'disabled', 'other'); const cOverride = makeExt('c'); - const result = resolveAppNodeSpecs({ - features: [ - plugin, - createExtensionOverrides({ - extensions: [aOverride, bOverride, cOverride], - }), - ], - builtinExtensions: [], - parameters: [], - }); - - expect(result.length).toBe(2); - expect(result[0].extension).toBe(aOverride); - expect(result[0].attachTo).toEqual({ id: 'other', input: 'default' }); - expect(result[0].config).toEqual(undefined); - expect(result[0].source).toBe(plugin); - - expect(result[1]).toEqual({ - id: 'c', - extension: cOverride, - attachTo: { id: 'root', input: 'default' }, - config: undefined, - source: undefined, - disabled: false, - }); + expect( + resolveAppNodeSpecs({ + features: [ + plugin, + createExtensionOverrides({ + extensions: [aOverride, bOverride, cOverride], + }), + ], + builtinExtensions: [], + parameters: [], + }), + ).toEqual([ + { + id: 'a', + extension: aOverride, + attachTo: { id: 'other', input: 'default' }, + source: plugin, + disabled: false, + }, + { + id: 'b', + extension: bOverride, + attachTo: { id: 'other', input: 'default' }, + source: plugin, + disabled: true, + }, + { + id: 'c', + extension: cOverride, + attachTo: { id: 'root', input: 'default' }, + source: undefined, + disabled: false, + }, + ]); }); it('should use order from configuration when rather than overrides', () => { diff --git a/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts index ca3c4fd1ea..b1a4760296 100644 --- a/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts +++ b/packages/frontend-app-api/src/tree/resolveAppNodeSpecs.ts @@ -199,14 +199,12 @@ export function resolveAppNodeSpecs(options: { } } - return configuredExtensions - .filter(override => !override.params.disabled) - .map(param => ({ - id: param.extension.id, - attachTo: param.params.attachTo, - extension: param.extension, - disabled: param.params.disabled, - source: param.params.source, - config: param.params.config, - })); + return configuredExtensions.map(param => ({ + id: param.extension.id, + attachTo: param.params.attachTo, + extension: param.extension, + disabled: param.params.disabled, + source: param.params.source, + config: param.params.config, + })); } From fe6d09953ddf75a7239dca69cbc82b61a12702e6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 28 Oct 2023 13:44:12 +0200 Subject: [PATCH 109/131] frontend-app-api: fix AppNode serialization Signed-off-by: Patrik Oldsberg --- .changeset/silent-chairs-smoke.md | 5 +++++ packages/frontend-app-api/src/tree/resolveAppTree.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/silent-chairs-smoke.md diff --git a/.changeset/silent-chairs-smoke.md b/.changeset/silent-chairs-smoke.md new file mode 100644 index 0000000000..bfd3a4d7cb --- /dev/null +++ b/.changeset/silent-chairs-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-app-api': patch +--- + +Fix for app node output IDs not being serialized correctly. diff --git a/packages/frontend-app-api/src/tree/resolveAppTree.ts b/packages/frontend-app-api/src/tree/resolveAppTree.ts index 9fda8e0f6a..e1665a01fd 100644 --- a/packages/frontend-app-api/src/tree/resolveAppTree.ts +++ b/packages/frontend-app-api/src/tree/resolveAppTree.ts @@ -65,7 +65,7 @@ class SerializableAppNode implements AppNode { const dataRefs = this.instance && [...this.instance.getDataRefs()]; const out = dataRefs && dataRefs.length > 0 - ? ` out=[${[...dataRefs.keys()].join(', ')}]` + ? ` out=[${[...dataRefs].map(r => r.id).join(', ')}]` : ''; if (this.edges.attachments.size === 0) { From 1f66fdb9532766dd18138074c28255b79e52eebf Mon Sep 17 00:00:00 2001 From: Mayur Deshmukh Date: Mon, 30 Oct 2023 20:48:45 +0530 Subject: [PATCH 110/131] hotfix: absolute url for matomo icon in microsite Signed-off-by: Mayur Deshmukh --- microsite/data/plugins/analytics-module-matomo.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/analytics-module-matomo.yaml b/microsite/data/plugins/analytics-module-matomo.yaml index e71e7c41d7..a90d2897bb 100644 --- a/microsite/data/plugins/analytics-module-matomo.yaml +++ b/microsite/data/plugins/analytics-module-matomo.yaml @@ -5,6 +5,6 @@ authorUrl: https://redhat.com category: Monitoring description: Track usage of your Backstage instance using Matomo Analytics. documentation: https://github.com/janus-idp/backstage-plugins/blob/main/plugins/analytics-module-matomo/README.md -iconUrl: img/matomo.png +iconUrl: /img/matomo.png npmPackageName: '@janus-idp/backstage-plugin-analytics-module-matomo' addedDate: '2023-10-17' From 8889079f0601282e8c2082269a3d6802961d3cd4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 16:27:23 +0000 Subject: [PATCH 111/131] chore(deps): update dependency @types/recharts to v1.8.26 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 d48588b7b2..ca203fa0d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19557,12 +19557,12 @@ __metadata: linkType: hard "@types/recharts@npm:^1.8.14, @types/recharts@npm:^1.8.15": - version: 1.8.25 - resolution: "@types/recharts@npm:1.8.25" + version: 1.8.26 + resolution: "@types/recharts@npm:1.8.26" dependencies: "@types/d3-shape": ^1 "@types/react": "*" - checksum: b2ab1596f391b70e349ae5f6fc6b29c16f6298f1151747aff84b3380f4644c4e087a489ca55325dc627794317f8e677c9906ab75d2e270c79e45da976a347af5 + checksum: fb644ca93b12691ab45ac2bab863051945f9f33ddf52ad07857c982995262b14135c6d18ec3caed71f4fe7c4a6933b69e62bee3aba8e0bf3463f04e0d6ae7952 languageName: node linkType: hard From 24954cf6e775289ac8534aa2a60f3c8b6e5b7072 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:01:46 +0000 Subject: [PATCH 112/131] chore(deps): update dependency @types/recursive-readdir to v2.2.3 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 80481ebf27..a5ee76dc80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19567,11 +19567,11 @@ __metadata: linkType: hard "@types/recursive-readdir@npm:^2.2.0": - version: 2.2.2 - resolution: "@types/recursive-readdir@npm:2.2.2" + version: 2.2.3 + resolution: "@types/recursive-readdir@npm:2.2.3" dependencies: "@types/node": "*" - checksum: ed7f73d11354c7df7c5296a73500ace0b9874083c9f9cce4c5a294bb6c9b11f92d25c08a23bdc991f0537358d31e2ae3943169d42fe739ff54ecfddf9ff6b420 + checksum: 9a9136b93a133de006bf6d9b2f8bbae6e308a0b5a9c9acf490848de3ec3621804a09bc166999e81beace3151cacc2085f5617d90eaa329a99f73c1bb6806531d languageName: node linkType: hard From 32d3a7b49a5a848ea09e99fa93dcd536d4c7b144 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:10:38 +0000 Subject: [PATCH 113/131] chore(deps): update dependency @types/lodash to v4.14.200 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 008f181286..d2a2e176d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19036,9 +19036,9 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.151, @types/lodash@npm:^4.14.173, @types/lodash@npm:^4.14.175": - version: 4.14.199 - resolution: "@types/lodash@npm:4.14.199" - checksum: e68d1fcbbfce953ed87b296a628573f62939227bcda0c934954e862b421e8a34c5e71cad6fea27b9980567909e6a4698f09025692958e36d64ea9ed99ec6fb2e + version: 4.14.200 + resolution: "@types/lodash@npm:4.14.200" + checksum: 6471f8bb5da692a6ecf03a8da4935bfbc341e67ee9bcb4f5730bfacff0c367232548f0a01e8ac5ea18c6fe78fb085d502494e33ccb47a7ee87cbdee03b47d00d languageName: node linkType: hard From 59167a54042fa79f484169a5c7a75a6580709c01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:11:58 +0000 Subject: [PATCH 114/131] chore(deps): update dependency @types/luxon to v3.3.3 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- microsite/yarn.lock | 6 +++--- yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/microsite/yarn.lock b/microsite/yarn.lock index ba22850109..0200b84675 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -3055,9 +3055,9 @@ __metadata: linkType: hard "@types/luxon@npm:^3.0.0": - version: 3.3.2 - resolution: "@types/luxon@npm:3.3.2" - checksum: b9111132720eae0269538872a5a496b29587ecfc8edc3b0ff7d269aa93a5ff00a131b23d1e9d1f12ec39f2c779ad21bd8d9f90b122c85a182771aabde7f676b8 + version: 3.3.3 + resolution: "@types/luxon@npm:3.3.3" + checksum: 072dd39eea3f63453788fab2fcfc83eb33917afcaffe178ce08ecd8b016824b8ab3bfa991f66266f2fc1927768a56b4334945f2eb1d83638e325c0c43d7d0e86 languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 008f181286..146486067c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19057,9 +19057,9 @@ __metadata: linkType: hard "@types/luxon@npm:*, @types/luxon@npm:^3.0.0, @types/luxon@npm:~3.3.0": - version: 3.3.2 - resolution: "@types/luxon@npm:3.3.2" - checksum: b9111132720eae0269538872a5a496b29587ecfc8edc3b0ff7d269aa93a5ff00a131b23d1e9d1f12ec39f2c779ad21bd8d9f90b122c85a182771aabde7f676b8 + version: 3.3.3 + resolution: "@types/luxon@npm:3.3.3" + checksum: 072dd39eea3f63453788fab2fcfc83eb33917afcaffe178ce08ecd8b016824b8ab3bfa991f66266f2fc1927768a56b4334945f2eb1d83638e325c0c43d7d0e86 languageName: node linkType: hard From 1d6ed3011d928e10f91b270642dbb06a8a2e6f12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:13:14 +0000 Subject: [PATCH 115/131] chore(deps): update dependency @types/regression to v2.0.4 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 008f181286..187acc06ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19576,9 +19576,9 @@ __metadata: linkType: hard "@types/regression@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/regression@npm:2.0.3" - checksum: 774ef76911225b61c44946573b54ab710401d0e65b9433aa7014c701272167c47e818d4c9809284514881837c2159cd47aad6b290f00f8581920f2c7a146a512 + version: 2.0.4 + resolution: "@types/regression@npm:2.0.4" + checksum: e35f7474103ecd9750da2daa6182e236e096ad9edeba70e479a6f6dbe1486b3b7b03dac1976976622161e8f48ef92f83f1ed3f1d42b8e6ba249a50c168059a46 languageName: node linkType: hard From 877e58ceefbcce38b18756e66a93bcf2abfda376 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:13:47 +0000 Subject: [PATCH 116/131] chore(deps): update dependency @types/rollup-plugin-peer-deps-external to v2.2.3 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 71094bbd15..9c3dc07b8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19630,12 +19630,12 @@ __metadata: linkType: hard "@types/rollup-plugin-peer-deps-external@npm:^2.2.0": - version: 2.2.2 - resolution: "@types/rollup-plugin-peer-deps-external@npm:2.2.2" + version: 2.2.3 + resolution: "@types/rollup-plugin-peer-deps-external@npm:2.2.3" dependencies: "@types/node": "*" rollup: ^0.63.4 - checksum: a821911276d1882cf30c9650abc3c1cf7b29490ecacfdd537663a4de32b42ff7171bcd69568ce1b256191ad1d2937b1de839d1db85538769787986a5877273e2 + checksum: aa656653c469d50fd68cdb6af332032952a27fd761155e749df14e2379eec77fa24a40910c1f207f2d7a2f0c2274087882dea0ce52ad8031b1066e64905dfbc8 languageName: node linkType: hard From b7d8c09664adc47c4cb4fc2594da1789e2d1b4ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:14:18 +0000 Subject: [PATCH 117/131] chore(deps): update dependency @types/sanitize-html to v2.9.3 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 71094bbd15..cada83897c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19649,11 +19649,11 @@ __metadata: linkType: hard "@types/sanitize-html@npm:^2.6.2": - version: 2.9.2 - resolution: "@types/sanitize-html@npm:2.9.2" + version: 2.9.3 + resolution: "@types/sanitize-html@npm:2.9.3" dependencies: htmlparser2: ^8.0.0 - checksum: bdd0db4a39125b8836573ede5ec5cc2f7b0dff5ecfbeae68aefb40163c916429cfb500d581ad3a18613e8d6a53f707abb279350e0811122e84e21b0223b8d560 + checksum: 882a39ec767e0c5fd4402108db4b8e4f85ff555cf490ad8c7340d9c58c57c3ffefa33c0d248d5e67047df6f744ca60e125da5485efc18ac450783f3900178373 languageName: node linkType: hard From 40a85be31612268545ea1b0d45b88194235024a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:16:32 +0000 Subject: [PATCH 118/131] chore(deps): update dependency @types/semver to v7.5.4 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 3f4e7ec05d..563812965c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19672,9 +19672,9 @@ __metadata: linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.8, @types/semver@npm:^7.5.0": - version: 7.5.3 - resolution: "@types/semver@npm:7.5.3" - checksum: 349fdd1ab6c213bac5c991bac766bd07b8b12e63762462bb058740dcd2eb09c8193d068bb226f134661275f2022976214c0e727a4e5eb83ec1b131127c980d3e + version: 7.5.4 + resolution: "@types/semver@npm:7.5.4" + checksum: 120c0189f6fec5f2d12d0d71ac8a4cfa952dc17fa3d842e8afddb82bba8828a4052f8799c1653e2b47ae1977435f38e8985658fde971905ce5afb8e23ee97ecf languageName: node linkType: hard From 0d3763ace2855b26f6d88e07a6d05b2644531b7d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:17:02 +0000 Subject: [PATCH 119/131] chore(deps): update dependency @types/serve-handler to v6.1.3 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 3f4e7ec05d..1b7e61ce9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19689,11 +19689,11 @@ __metadata: linkType: hard "@types/serve-handler@npm:^6.1.0": - version: 6.1.2 - resolution: "@types/serve-handler@npm:6.1.2" + version: 6.1.3 + resolution: "@types/serve-handler@npm:6.1.3" dependencies: "@types/node": "*" - checksum: 6b206cba18bf77b938e340e1015c631d92b492918ba78dfdff57590a25da8c4bc63fba90f43d763f854c5aa523b243c283ba84d14cfeb1841795337c8b978bd6 + checksum: 9202122f38a5d317abd03bee56921398cd1a6bd01274271eb1f4b2810ff2825037aece51acb9d88ced043a3b9530c3836165d4fbef961523cc941fd0860937de languageName: node linkType: hard From ad069a5ede3750bffb9cbdec909706c91139c5ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 21:35:22 +0000 Subject: [PATCH 120/131] chore(deps): update dependency @types/stoppable to v1.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 7c3810e6b0..88f1912bf7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19784,11 +19784,11 @@ __metadata: linkType: hard "@types/stoppable@npm:^1.1.0": - version: 1.1.1 - resolution: "@types/stoppable@npm:1.1.1" + version: 1.1.2 + resolution: "@types/stoppable@npm:1.1.2" dependencies: "@types/node": "*" - checksum: 65617648686469e7130a9c00a018c03ddcfed8527a162e50352780e9a1acb7187d646389a596c2aef3a5566e3d649f68f0de7822be7349cafde5c1ec863c37c6 + checksum: 729137560d508786dd381b96206074b6a622387a5c8a1f082fa23620a0734b84e909a972dee4dbc1891272b8fcdbd30f372043c43bdf917f2a5bfb7ac6640cf0 languageName: node linkType: hard From 081b151be7c53d64e92ae8ff7e7c2f1bdbf684b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 21:36:02 +0000 Subject: [PATCH 121/131] chore(deps): update dependency @types/supertest to v2.0.15 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 7c3810e6b0..2616086dc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19812,11 +19812,11 @@ __metadata: linkType: hard "@types/supertest@npm:^2.0.12, @types/supertest@npm:^2.0.8": - version: 2.0.14 - resolution: "@types/supertest@npm:2.0.14" + version: 2.0.15 + resolution: "@types/supertest@npm:2.0.15" dependencies: "@types/superagent": "*" - checksum: 9f6850a22b8f0fd4c26a6dfd9b64771a66476b1a4f841a3b84a9da843ce69463efbf37594fe107297dd14a225d199b802464d48d70e9413238c637903d392137 + checksum: 89c1983662f0ab20969b3a6c44344397fd222d0f78b282619aabbe817f7c88a64210fd2b8b8f075ea22a27084e30ebc287bc5105619cbbf9af7f008e77f6eb93 languageName: node linkType: hard From 1ffaddc28a40f3b92c8d8a823a9ef4c83995da02 Mon Sep 17 00:00:00 2001 From: Mayur Deshmukh Date: Tue, 31 Oct 2023 11:10:17 +0530 Subject: [PATCH 122/131] chore: add matomo to analytics supported tools doc Signed-off-by: Mayur Deshmukh --- docs/plugins/analytics.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins/analytics.md b/docs/plugins/analytics.md index c8f1c9b006..bc12d44c25 100644 --- a/docs/plugins/analytics.md +++ b/docs/plugins/analytics.md @@ -39,6 +39,7 @@ choice below. | [Google Analytics][ga] | Yes ✅ | | [Google Analytics 4][ga4] | Yes ✅ | | [New Relic Browser][newrelic-browser] | Community ✅ | +| [Matomo][matomo] | Community ✅ | To suggest an integration, please [open an issue][add-tool] for the analytics tool your organization uses. Or jump to [Writing Integrations][int-howto] to @@ -47,6 +48,7 @@ learn how to contribute the integration yourself! [ga]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md [ga4]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga4/README.md [newrelic-browser]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-newrelic-browser/README.md +[matomo]: https://github.com/janus-idp/backstage-plugins/blob/main/plugins/analytics-module-matomo/README.md [add-tool]: https://github.com/backstage/backstage/issues/new?assignees=&labels=plugin&template=plugin_template.md&title=%5BAnalytics+Module%5D+THE+ANALYTICS+TOOL+TO+INTEGRATE [int-howto]: #writing-integrations [analytics-api-type]: https://backstage.io/docs/reference/core-plugin-api.analyticsapi From 62d3a6456352ac90b686efbef57241d598fc6d6f Mon Sep 17 00:00:00 2001 From: Mayur Deshmukh Date: Tue, 31 Oct 2023 17:34:31 +0530 Subject: [PATCH 123/131] chore: add Matomo to accepted words in vale vocab Signed-off-by: Mayur Deshmukh --- .github/vale/Vocab/Backstage/accept.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 9020dc2097..49dd7007ba 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -207,6 +207,7 @@ mailto maintainer's maintainership makefile +Matomo md memcache memoize From 37e9424dfa1d220bf96a689788a00e3d003c1041 Mon Sep 17 00:00:00 2001 From: anirudhkurapati Date: Tue, 31 Oct 2023 09:58:28 -0400 Subject: [PATCH 124/131] Update ADOPTERS.md Removing Wfscorp from Adopters as we are moving away from Backstage Signed-off-by: anirudhkurapati --- ADOPTERS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index f0d6e4ed0a..eaec1cc2d1 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -117,8 +117,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Pachama](https://pachama.com/) | [Aron Gates](https://github.com/agates4) | Internal Developer Portal, a catalog of all microservices, architecture documentation, and templates to generate developer resources. | | [SEEK](https://www.seek.com.au) | [Jahred Hope](https://github.com/jahredhope) | Developer portal for developer tooling and technical documentation. | | [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. | +| [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. | | [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. | From f577e1176fc55854ec1b6c26409b17cd498ca967 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 31 Oct 2023 14:38:53 +0000 Subject: [PATCH 125/131] Version Packages (next) Signed-off-by: Patrik Oldsberg --- .changeset/create-app-1698763033.md | 5 + .changeset/pre.json | 26 + docs/releases/v1.20.0-next.1-changelog.md | 2879 +++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 11 + packages/app-defaults/package.json | 2 +- packages/app-next-example-plugin/CHANGELOG.md | 8 + packages/app-next-example-plugin/package.json | 2 +- packages/app-next/CHANGELOG.md | 77 + packages/app-next/package.json | 2 +- packages/app/CHANGELOG.md | 77 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 17 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 16 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 9 + packages/backend-defaults/package.json | 2 +- packages/backend-next/CHANGELOG.md | 41 + packages/backend-next/package.json | 2 +- packages/backend-openapi-utils/CHANGELOG.md | 9 + packages/backend-openapi-utils/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 11 + packages/backend-plugin-api/package.json | 2 +- packages/backend-plugin-manager/CHANGELOG.md | 23 + packages/backend-plugin-manager/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 10 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 14 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 59 + packages/backend/package.json | 2 +- packages/cli/CHANGELOG.md | 16 + packages/cli/package.json | 2 +- packages/config-loader/package.json | 2 +- packages/core-compat-api/CHANGELOG.md | 8 + packages/core-compat-api/package.json | 2 +- packages/core-components/CHANGELOG.md | 13 + packages/core-components/package.json | 2 +- packages/create-app/CHANGELOG.md | 8 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 14 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 9 + packages/e2e-test/package.json | 2 +- packages/frontend-app-api/CHANGELOG.md | 18 + packages/frontend-app-api/package.json | 2 +- packages/frontend-plugin-api/CHANGELOG.md | 14 + packages/frontend-plugin-api/package.json | 2 +- packages/integration-react/CHANGELOG.md | 9 + packages/integration-react/package.json | 2 +- packages/integration/CHANGELOG.md | 8 + packages/integration/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 +- plugins/adr-backend/CHANGELOG.md | 15 + plugins/adr-backend/package.json | 2 +- plugins/adr-common/CHANGELOG.md | 9 + plugins/adr-common/package.json | 2 +- plugins/adr/CHANGELOG.md | 16 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 9 + 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/analytics-module-ga4/CHANGELOG.md | 10 + plugins/analytics-module-ga4/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/apache-airflow/CHANGELOG.md | 8 + plugins/apache-airflow/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 13 + plugins/api-docs/package.json | 2 +- plugins/apollo-explorer/CHANGELOG.md | 9 + plugins/apollo-explorer/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 12 + plugins/app-backend/package.json | 2 +- plugins/app-node/CHANGELOG.md | 7 + plugins/app-node/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 21 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 13 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 10 + 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 | 13 + 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 | 18 + plugins/bazaar/package.json | 2 +- plugins/bitbucket-cloud-common/CHANGELOG.md | 7 + plugins/bitbucket-cloud-common/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 11 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 18 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 16 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../catalog-backend-module-gcp/CHANGELOG.md | 12 + .../catalog-backend-module-gcp/package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 18 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../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 | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 27 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 14 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 17 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 16 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 20 + plugins/catalog-react/package.json | 2 +- .../catalog-unprocessed-entities/CHANGELOG.md | 11 + .../catalog-unprocessed-entities/package.json | 2 +- plugins/catalog/CHANGELOG.md | 22 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/cicd-statistics/CHANGELOG.md | 9 + plugins/cicd-statistics/package.json | 2 +- plugins/circleci/CHANGELOG.md | 11 + plugins/circleci/package.json | 2 +- plugins/cloudbuild/CHANGELOG.md | 11 + plugins/cloudbuild/package.json | 2 +- plugins/code-climate/CHANGELOG.md | 12 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 14 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 13 + 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 | 15 + plugins/cost-insights/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 17 + plugins/devtools-backend/package.json | 2 +- plugins/devtools/CHANGELOG.md | 13 + plugins/devtools/package.json | 2 +- plugins/dynatrace/CHANGELOG.md | 11 + plugins/dynatrace/package.json | 2 +- plugins/entity-feedback-backend/CHANGELOG.md | 13 + 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 | 12 + plugins/explore-backend/package.json | 2 +- plugins/explore/CHANGELOG.md | 18 + 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 | 11 + plugins/gcalendar/package.json | 2 +- plugins/gcp-projects/CHANGELOG.md | 9 + plugins/gcp-projects/package.json | 2 +- plugins/git-release-manager/CHANGELOG.md | 10 + plugins/git-release-manager/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 13 + 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 | 11 + 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-react/CHANGELOG.md | 8 + plugins/home-react/package.json | 2 +- plugins/home/CHANGELOG.md | 17 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 12 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 17 + 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 | 20 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes-cluster/CHANGELOG.md | 15 + plugins/kubernetes-cluster/package.json | 2 +- plugins/kubernetes-node/CHANGELOG.md | 9 + plugins/kubernetes-node/package.json | 2 +- plugins/kubernetes-react/CHANGELOG.md | 18 + plugins/kubernetes-react/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 16 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 15 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 13 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 17 + plugins/linguist-backend/package.json | 2 +- plugins/linguist/CHANGELOG.md | 13 + plugins/linguist/package.json | 2 +- plugins/microsoft-calendar/CHANGELOG.md | 11 + 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/nomad-backend/CHANGELOG.md | 10 + plugins/nomad-backend/package.json | 2 +- plugins/nomad/CHANGELOG.md | 12 + plugins/nomad/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 11 + plugins/octopus-deploy/package.json | 2 +- plugins/opencost/CHANGELOG.md | 9 + plugins/opencost/package.json | 2 +- plugins/org-react/CHANGELOG.md | 13 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 12 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 13 + 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 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 13 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 12 + plugins/permission-node/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 16 + 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/puppetdb/CHANGELOG.md | 12 + plugins/puppetdb/package.json | 2 +- plugins/rollbar-backend/CHANGELOG.md | 8 + plugins/rollbar-backend/package.json | 2 +- plugins/rollbar/CHANGELOG.md | 11 + plugins/rollbar/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 26 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-common/CHANGELOG.md | 10 + plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 13 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 18 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 23 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 18 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../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 | 12 + .../package.json | 2 +- .../CHANGELOG.md | 18 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 13 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 17 + plugins/search-backend/package.json | 2 +- plugins/search-react/CHANGELOG.md | 16 + plugins/search-react/package.json | 2 +- plugins/search/CHANGELOG.md | 19 + 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 | 10 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 13 + 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 | 10 + plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/CHANGELOG.md | 14 + plugins/stack-overflow/package.json | 2 +- plugins/stackstorm/CHANGELOG.md | 10 + plugins/stackstorm/package.json | 2 +- .../CHANGELOG.md | 11 + .../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 | 15 + plugins/tech-insights/package.json | 2 +- plugins/tech-radar/CHANGELOG.md | 10 + 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 | 23 + plugins/techdocs-backend/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 19 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs-react/CHANGELOG.md | 11 + plugins/techdocs-react/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 19 + plugins/techdocs/package.json | 2 +- plugins/todo-backend/CHANGELOG.md | 15 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 12 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 13 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 14 + plugins/user-settings/package.json | 2 +- plugins/vault-backend/CHANGELOG.md | 12 + plugins/vault-backend/package.json | 2 +- plugins/vault-node/CHANGELOG.md | 7 + plugins/vault-node/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 | 18 +- 430 files changed, 6018 insertions(+), 215 deletions(-) create mode 100644 .changeset/create-app-1698763033.md create mode 100644 docs/releases/v1.20.0-next.1-changelog.md diff --git a/.changeset/create-app-1698763033.md b/.changeset/create-app-1698763033.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1698763033.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index eb4c8454ac..016d7cc4ac 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -257,10 +257,14 @@ "@backstage/plugin-vault-node": "0.0.0" }, "changesets": [ + "blue-bags-warn", "chatty-cobras-cheer", "chilled-knives-rule", "chilly-books-sneeze", "chilly-terms-behave", + "clever-houses-scream", + "create-app-1698763033", + "curvy-carrots-thank", "dirty-ducks-behave", "dry-days-invite", "eighty-chairs-camp", @@ -271,19 +275,24 @@ "fluffy-years-shake", "four-files-behave", "four-pears-swim", + "fresh-camels-give", "fresh-crews-promise", "fresh-schools-thank", "gentle-pears-camp", + "gentle-pumpkins-carry", "giant-cars-walk", "giant-cycles-end", "good-plums-confess", "great-baboons-allow", "healthy-shirts-fold", "heavy-experts-accept", + "heavy-rings-play", + "hip-moose-boil", "hip-mugs-camp", "hungry-paws-dress", "hungry-radios-play", "large-forks-arrive", + "late-forks-fetch", "lazy-hotels-wait", "long-turkeys-argue", "loud-ghosts-deny", @@ -297,43 +306,60 @@ "ninety-numbers-study", "old-apricots-taste", "old-chairs-switch", + "old-coats-doubt", "olive-paws-divide", + "orange-planes-crash", + "plenty-buckets-float", "plenty-tigers-argue", "poor-seahorses-rush", "popular-bikes-do", "pretty-swans-worry", "quick-pumpkins-shave", "quick-roses-move", + "real-apes-build", "real-carrots-brake", "real-jars-yawn", "red-beers-roll", "red-yaks-press", + "renovate-dacadfa", "rich-pugs-chew", + "rude-penguins-press", "rude-tomatoes-itch", "shaggy-beers-collect", "shaggy-buses-beg", + "sharp-chefs-attend", "sharp-falcons-clean", "shiny-geese-watch", + "silent-chairs-smoke", + "silver-kiwis-float", + "six-books-arrive", "sixty-tips-argue", "small-buckets-roll", "smart-dancers-watch", "sour-toes-joke", "stale-rice-count", + "strange-gifts-try", "strange-queens-deliver", "strong-taxis-wait", "sweet-buckets-fry", "sweet-countries-share", + "swift-badgers-hide", "swift-mice-care", "tall-colts-roll", + "tame-spies-hunt", "tender-lies-wonder", "tender-maps-type", "thick-dolphins-boil", "thirty-stingrays-grin", "three-moles-mix", "tidy-camels-boil", + "tidy-planets-trade", "tricky-cups-hammer", "tricky-vans-behave", + "two-jars-melt", + "unlucky-houses-end", "violet-lamps-appear", + "weak-zebras-cover", "wet-cows-brake", "wicked-ties-knock", "wild-cows-watch", diff --git a/docs/releases/v1.20.0-next.1-changelog.md b/docs/releases/v1.20.0-next.1-changelog.md new file mode 100644 index 0000000000..c520683aa8 --- /dev/null +++ b/docs/releases/v1.20.0-next.1-changelog.md @@ -0,0 +1,2879 @@ +# Release v1.20.0-next.1 + +## @backstage/frontend-plugin-api@0.3.0-next.1 + +### Minor Changes + +- 77f009b35d: Extensions now return their output from the factory function rather than calling `bind(...)`. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + +## @backstage/plugin-catalog-backend@1.15.0-next.1 + +### Minor Changes + +- e5bf3749ad: Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-catalog-node@1.5.0-next.1 + +### Minor Changes + +- e5bf3749ad: Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-techdocs-backend@1.9.0-next.1 + +### Minor Changes + +- 67cff7b06f: Expose an extension point to set a custom build strategy. Also move `DocsBuildStrategy` type to `@backstage/plugin-techdocs-node` and deprecate `ShouldBuildParameters` type. + +### Patch Changes + +- 48a61bfdca: Fix potential memory leak by not creating a build log transport if not given via `RouterOptions`. +- Updated dependencies + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-techdocs-node@1.10.0-next.1 + +### Minor Changes + +- 67cff7b06f: Expose an extension point to set a custom build strategy. Also move `DocsBuildStrategy` type to `@backstage/plugin-techdocs-node` and deprecate `ShouldBuildParameters` type. + +### Patch Changes + +- e61a975f61: Switch to `@smithy/node-http-handler` instead of the `@aws-sdk/node-http-handler` +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/app-defaults@1.4.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-permission-react@0.4.17-next.0 + +## @backstage/backend-app-api@0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/backend-common@0.19.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/backend-dev-utils@0.1.2 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + +## @backstage/backend-defaults@0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/backend-openapi-utils@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/backend-plugin-api@0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/backend-tasks@0.5.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/backend-test-utils@0.2.8-next.1 + +### Patch Changes + +- bb688f7b3b: Ensure recursive deletion of temporary directories in tests +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/cli@0.24.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/eslint-plugin@0.1.3 + - @backstage/release-manifests@0.0.10 + - @backstage/types@1.1.1 + +## @backstage/core-components@0.13.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/version-bridge@1.0.7-next.0 + +## @backstage/create-app@0.5.7-next.1 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.13 + +## @backstage/dev-utils@1.0.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/frontend-app-api@0.3.0-next.1 + +### Patch Changes + +- fe6d09953d: Fix for app node output IDs not being serialized correctly. +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- 4d6fa921db: Internal refactor to rename the app graph to app tree +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + +## @backstage/integration@1.7.2-next.0 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/config@1.1.1 + +## @backstage/integration-react@1.1.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @techdocs/cli@1.6.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + +## @backstage/plugin-adr@0.6.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-adr-common@0.2.17-next.0 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-adr-backend@0.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-adr-common@0.2.17-next.0 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-adr-common@0.2.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-airbrake@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/dev-utils@1.0.23-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-airbrake-backend@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + +## @backstage/plugin-allure@0.1.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-analytics-module-ga@0.1.35-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-analytics-module-ga4@0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-analytics-module-newrelic-browser@0.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @backstage/plugin-apache-airflow@0.2.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @backstage/plugin-api-docs@0.9.13-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-apollo-explorer@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-app-backend@0.3.55-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.7-next.1 + +## @backstage/plugin-app-node@0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend@0.20.0-next.1 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-backend-module-github-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-google-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.1-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.2-next.1 + +### Patch Changes + +- 3979524c74: Added support for specifying a domain hint on the Microsoft authentication provider configuration. +- 5aeb14f035: Correctly mark the client secret in configuration as secret +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-auth-node@0.4.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-azure-devops@0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-azure-devops-common@0.3.1 + +## @backstage/plugin-azure-devops-backend@0.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-azure-devops-common@0.3.1 + +## @backstage/plugin-azure-sites@0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-azure-sites-common@0.1.1 + +## @backstage/plugin-azure-sites-backend@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-azure-sites-common@0.1.1 + +## @backstage/plugin-badges@0.2.50-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-badges-backend@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-bazaar@0.2.18-next.1 + +### Patch Changes + +- c5aad900e3: Adding descending sort in a bazaar plugin +- b3acba9091: Added alert popup in the bazaar plugin +- 1a40159acb: Removed unnecessary dependency on `@backstage/cli`. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-bazaar-backend@0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-bitbucket-cloud-common@0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + +## @backstage/plugin-bitrise@0.1.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-catalog@1.15.0-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-catalog-backend-module-aws@0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-catalog-backend-module-azure@0.1.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.14-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.14-next.0 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-catalog-backend-module-github@0.4.5-next.1 + +### Patch Changes + +- 88b673aa76: Import `AnalyzeOptions` and `ScmLocationAnalyzer` types from `@backstage/plugin-catalog-node` +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-catalog-backend-module-github-org@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-catalog-backend-module-github@0.4.5-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.14-next.1 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + +## @backstage/plugin-catalog-graph@0.2.38-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-import@0.10.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-catalog-react@1.9.0-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-permission-react@0.4.17-next.0 + +## @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-cicd-statistics@0.1.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.28-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @backstage/plugin-circleci@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-cloudbuild@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-code-climate@0.1.26-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-code-coverage@0.2.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-code-coverage-backend@0.2.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-codescene@0.1.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-config-schema@0.1.47-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-cost-insights@0.12.15-next.1 + +### Patch Changes + +- 7da799d5b7: Updated dependency `@types/pluralize` to `^0.0.32`. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-cost-insights-common@0.1.2 + +## @backstage/plugin-devtools@0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-devtools-common@0.1.5 + - @backstage/plugin-permission-react@0.4.17-next.0 + +## @backstage/plugin-devtools-backend@0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-devtools-common@0.1.5 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-dynatrace@8.0.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-entity-feedback@0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-entity-feedback-common@0.1.3 + +## @backstage/plugin-entity-feedback-backend@0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-entity-feedback-common@0.1.3 + +## @backstage/plugin-entity-validation@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.17 + +## @backstage/plugin-events-backend@0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-azure@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-gerrit@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-github@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-module-gitlab@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-backend-test-utils@0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.16-next.1 + +## @backstage/plugin-events-node@0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-explore@0.4.12-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-explore-react@0.0.33-next.0 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-explore-backend@0.0.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-firehydrant@0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-fossa@0.2.58-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-gcalendar@0.3.20-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-gcp-projects@0.3.43-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-git-release-manager@0.3.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-github-actions@0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-github-deployments@0.1.57-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-github-issues@0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-github-pull-requests-board@0.1.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-gitops-profiles@0.3.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-gocd@0.1.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-graphiql@0.3.0-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-graphql-backend@0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-graphql@0.4.1-next.0 + +## @backstage/plugin-graphql-voyager@0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-home@0.5.10-next.1 + +### Patch Changes + +- d86b2acec4: Fix bug where `retrieveAll` method wasn't fetching visits +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-home-react@0.1.5-next.1 + +## @backstage/plugin-home-react@0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + +## @backstage/plugin-ilert@0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-jenkins@0.9.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-jenkins-common@0.1.20 + +## @backstage/plugin-jenkins-backend@0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-jenkins-common@0.1.20 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-kafka@0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-kafka-backend@0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-kubernetes@0.11.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-react@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-kubernetes-backend@0.13.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + - @backstage/plugin-kubernetes-node@0.1.1-next.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-kubernetes-cluster@0.0.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-react@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-kubernetes-node@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-kubernetes-react@0.1.1-next.1 + +### Patch Changes + +- 0f4cad6da0: Internal refactor to avoid a null pointer problem + +- b52f576f48: Make sure types exported by other `kubernetes` plugins in the past are exported again after the creation + of the react package. + + Some types have been moved to this new package but the export was missing, so they were not available anymore for developers. + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + +## @backstage/plugin-lighthouse@0.4.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-lighthouse-common@0.1.4 + +## @backstage/plugin-lighthouse-backend@0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-lighthouse-common@0.1.4 + +## @backstage/plugin-linguist@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-linguist-common@0.1.2 + +## @backstage/plugin-linguist-backend@0.5.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-linguist-common@0.1.2 + +## @backstage/plugin-microsoft-calendar@0.1.9-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-newrelic@0.3.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-newrelic-dashboard@0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + +## @backstage/plugin-nomad@0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-nomad-backend@0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-octopus-deploy@0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-opencost@0.2.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-org@0.6.16-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-org-react@0.1.15-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-pagerduty@0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-home-react@0.1.5-next.1 + +## @backstage/plugin-periskop@0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-periskop-backend@0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + +## @backstage/plugin-permission-backend@0.5.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-permission-node@0.7.18-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-playlist@0.1.18-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-playlist-common@0.1.11 + +## @backstage/plugin-playlist-backend@0.3.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-playlist-common@0.1.11 + +## @backstage/plugin-proxy-backend@0.4.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + +## @backstage/plugin-puppetdb@0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-rollbar@0.4.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-rollbar-backend@0.1.52-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + +## @backstage/plugin-scaffolder@1.16.0-next.1 + +### Patch Changes + +- 26e4d916d5: Title and description in RepoUrlPicker are now correctly displayed. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-react@0.4.17-next.0 + +## @backstage/plugin-scaffolder-backend@1.19.0-next.1 + +### Patch Changes + +- 2be3922eb8: Add examples for `github:deployKey:create` scaffolder action & improve related tests +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-common@1.4.3-next.1 + +### Patch Changes + +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/catalog-model@1.4.3 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/plugin-scaffolder-node@0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-react@1.6.0-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + +## @backstage/plugin-search@1.4.2-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend@1.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/integration-aws-node@0.1.7 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-pg@0.5.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-backend-node@1.2.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-search-react@1.7.2-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- a539643cba: Minor refactor of search bar analytics capture +- Updated dependencies + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-sentry@0.5.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-shortcuts@0.3.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-sonarqube@0.7.8-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-sonarqube-react@0.1.10-next.0 + +## @backstage/plugin-sonarqube-backend@0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-splunk-on-call@0.4.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-stack-overflow@0.1.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-home-react@0.1.5-next.1 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-stack-overflow-backend@0.2.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.0-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/plugin-stackstorm@0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-tech-insights@0.3.18-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + +## @backstage/plugin-tech-insights-backend@0.5.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-tech-insights-common@0.2.12 + +## @backstage/plugin-tech-insights-node@0.4.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + +## @backstage/plugin-tech-radar@0.6.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-techdocs@1.8.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## @backstage/plugin-techdocs-react@1.1.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/version-bridge@1.0.7-next.0 + +## @backstage/plugin-todo@0.2.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-todo-backend@0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + +## @backstage/plugin-user-settings@0.7.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-user-settings-backend@0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-vault@0.1.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## @backstage/plugin-vault-backend@0.4.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-vault-node@0.1.0-next.1 + +## @backstage/plugin-vault-node@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + +## @backstage/plugin-xcmetrics@0.2.45-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + +## example-app@0.2.89-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.10-next.1 + - @backstage/plugin-cost-insights@0.12.15-next.1 + - @backstage/plugin-scaffolder@1.16.0-next.1 + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1 + - @backstage/plugin-microsoft-calendar@0.1.9-next.1 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-graph@0.2.38-next.1 + - @backstage/plugin-tech-insights@0.3.18-next.1 + - @backstage/plugin-gcalendar@0.3.20-next.1 + - @backstage/plugin-api-docs@0.9.13-next.1 + - @backstage/plugin-playlist@0.1.18-next.1 + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-explore@0.4.12-next.1 + - @backstage/plugin-search@1.4.2-next.1 + - @backstage/plugin-org@0.6.16-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-catalog-import@0.10.2-next.1 + - @backstage/plugin-github-actions@0.6.7-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/plugin-kubernetes@0.11.1-next.1 + - @backstage/plugin-kubernetes-cluster@0.0.2-next.1 + - @backstage/plugin-newrelic@0.3.42-next.1 + - @backstage/plugin-adr@0.6.9-next.1 + - @backstage/plugin-stack-overflow@0.1.22-next.1 + - @backstage/plugin-tech-radar@0.6.10-next.1 + - @backstage/plugin-user-settings@0.7.12-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/plugin-airbrake@0.3.26-next.1 + - @backstage/plugin-azure-devops@0.3.8-next.1 + - @backstage/plugin-azure-sites@0.1.15-next.1 + - @backstage/plugin-badges@0.2.50-next.1 + - @backstage/plugin-circleci@0.3.26-next.1 + - @backstage/plugin-cloudbuild@0.3.26-next.1 + - @backstage/plugin-code-coverage@0.2.19-next.1 + - @backstage/plugin-dynatrace@8.0.0-next.1 + - @backstage/plugin-entity-feedback@0.2.9-next.1 + - @backstage/plugin-gocd@0.1.32-next.1 + - @backstage/plugin-jenkins@0.9.1-next.1 + - @backstage/plugin-kafka@0.3.26-next.1 + - @backstage/plugin-lighthouse@0.4.11-next.1 + - @backstage/plugin-linguist@0.1.11-next.1 + - @backstage/plugin-newrelic-dashboard@0.3.1-next.1 + - @backstage/plugin-nomad@0.1.7-next.1 + - @backstage/plugin-octopus-deploy@0.2.8-next.1 + - @backstage/plugin-pagerduty@0.6.7-next.1 + - @backstage/plugin-puppetdb@0.1.9-next.1 + - @backstage/plugin-rollbar@0.4.26-next.1 + - @backstage/plugin-sentry@0.5.11-next.1 + - @backstage/plugin-todo@0.2.30-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-apache-airflow@0.2.17-next.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1 + - @backstage/plugin-devtools@0.1.6-next.1 + - @backstage/plugin-gcp-projects@0.3.43-next.1 + - @backstage/plugin-linguist-common@0.1.2 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-shortcuts@0.3.16-next.1 + - @backstage/plugin-stackstorm@0.1.8-next.1 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## example-app-next@0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.10-next.1 + - @backstage/plugin-cost-insights@0.12.15-next.1 + - @backstage/plugin-scaffolder@1.16.0-next.1 + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1 + - @backstage/plugin-microsoft-calendar@0.1.9-next.1 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-graph@0.2.38-next.1 + - @backstage/plugin-tech-insights@0.3.18-next.1 + - @backstage/plugin-gcalendar@0.3.20-next.1 + - @backstage/plugin-api-docs@0.9.13-next.1 + - @backstage/plugin-playlist@0.1.18-next.1 + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-explore@0.4.12-next.1 + - @backstage/plugin-search@1.4.2-next.1 + - @backstage/plugin-org@0.6.16-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-catalog-import@0.10.2-next.1 + - @backstage/plugin-github-actions@0.6.7-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/plugin-kubernetes@0.11.1-next.1 + - @backstage/plugin-newrelic@0.3.42-next.1 + - app-next-example-plugin@0.0.3-next.1 + - @backstage/core-compat-api@0.0.1-next.1 + - @backstage/plugin-adr@0.6.9-next.1 + - @backstage/plugin-tech-radar@0.6.10-next.1 + - @backstage/plugin-user-settings@0.7.12-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/plugin-airbrake@0.3.26-next.1 + - @backstage/plugin-azure-devops@0.3.8-next.1 + - @backstage/plugin-azure-sites@0.1.15-next.1 + - @backstage/plugin-badges@0.2.50-next.1 + - @backstage/plugin-circleci@0.3.26-next.1 + - @backstage/plugin-cloudbuild@0.3.26-next.1 + - @backstage/plugin-code-coverage@0.2.19-next.1 + - @backstage/plugin-dynatrace@8.0.0-next.1 + - @backstage/plugin-entity-feedback@0.2.9-next.1 + - @backstage/plugin-gocd@0.1.32-next.1 + - @backstage/plugin-jenkins@0.9.1-next.1 + - @backstage/plugin-kafka@0.3.26-next.1 + - @backstage/plugin-lighthouse@0.4.11-next.1 + - @backstage/plugin-linguist@0.1.11-next.1 + - @backstage/plugin-newrelic-dashboard@0.3.1-next.1 + - @backstage/plugin-octopus-deploy@0.2.8-next.1 + - @backstage/plugin-pagerduty@0.6.7-next.1 + - @backstage/plugin-puppetdb@0.1.9-next.1 + - @backstage/plugin-rollbar@0.4.26-next.1 + - @backstage/plugin-sentry@0.5.11-next.1 + - @backstage/plugin-todo@0.2.30-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-apache-airflow@0.2.17-next.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1 + - @backstage/plugin-devtools@0.1.6-next.1 + - @backstage/plugin-gcp-projects@0.3.43-next.1 + - @backstage/plugin-linguist-common@0.1.2 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-shortcuts@0.3.16-next.1 + - @backstage/plugin-stackstorm@0.1.8-next.1 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## app-next-example-plugin@0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + +## example-backend@0.2.89-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-auth-backend@0.20.0-next.1 + - @backstage/plugin-techdocs-backend@1.9.0-next.1 + - @backstage/plugin-scaffolder-backend@1.19.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/plugin-jenkins-backend@0.3.1-next.1 + - @backstage/plugin-kubernetes-backend@0.13.1-next.1 + - @backstage/plugin-lighthouse-backend@0.3.4-next.1 + - @backstage/plugin-linguist-backend@0.5.4-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/plugin-todo-backend@0.3.5-next.1 + - example-app@0.2.89-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-adr-backend@0.4.4-next.1 + - @backstage/plugin-code-coverage-backend@0.2.21-next.1 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.8-next.1 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.24-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-app-backend@0.3.55-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-badges-backend@0.3.4-next.1 + - @backstage/plugin-entity-feedback-backend@0.2.4-next.1 + - @backstage/plugin-events-backend@0.2.16-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-playlist-backend@0.3.11-next.1 + - @backstage/plugin-proxy-backend@0.4.5-next.1 + - @backstage/plugin-rollbar-backend@0.1.52-next.1 + - @backstage/plugin-search-backend@1.4.7-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/plugin-search-backend-module-pg@0.5.16-next.1 + - @backstage/plugin-tech-insights-backend@0.5.21-next.1 + - @backstage/plugin-azure-devops-backend@0.4.4-next.1 + - @backstage/plugin-azure-sites-backend@0.1.17-next.1 + - @backstage/plugin-devtools-backend@0.2.4-next.1 + - @backstage/plugin-explore-backend@0.0.17-next.1 + - @backstage/plugin-graphql-backend@0.2.1-next.1 + - @backstage/plugin-kafka-backend@0.3.5-next.1 + - @backstage/plugin-nomad-backend@0.1.9-next.1 + - @backstage/plugin-permission-backend@0.5.30-next.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.10-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.39-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## example-backend-next@0.0.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-techdocs-backend@1.9.0-next.1 + - @backstage/plugin-scaffolder-backend@1.19.0-next.1 + - @backstage/plugin-catalog-backend-module-openapi@0.1.24-next.1 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/plugin-jenkins-backend@0.3.1-next.1 + - @backstage/plugin-kubernetes-backend@0.13.1-next.1 + - @backstage/plugin-lighthouse-backend@0.3.4-next.1 + - @backstage/plugin-linguist-backend@0.5.4-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/plugin-todo-backend@0.3.5-next.1 + - @backstage/plugin-adr-backend@0.4.4-next.1 + - @backstage/backend-defaults@0.2.7-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-app-backend@0.3.55-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-badges-backend@0.3.4-next.1 + - @backstage/plugin-entity-feedback-backend@0.2.4-next.1 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.4-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-playlist-backend@0.3.11-next.1 + - @backstage/plugin-proxy-backend@0.4.5-next.1 + - @backstage/plugin-search-backend@1.4.7-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/plugin-sonarqube-backend@0.2.9-next.1 + - @backstage/plugin-azure-devops-backend@0.4.4-next.1 + - @backstage/plugin-devtools-backend@0.2.4-next.1 + - @backstage/plugin-nomad-backend@0.1.9-next.1 + - @backstage/plugin-permission-backend@0.5.30-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1 + - @backstage/plugin-permission-common@0.7.9 + +## @backstage/backend-plugin-manager@0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-events-backend@0.2.16-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + +## @backstage/core-compat-api@0.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + +## e2e-test@0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/errors@1.2.3 + +## techdocs-cli-embedded-app@0.2.88-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + +## @internal/plugin-todo-list@1.0.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + +## @internal/plugin-todo-list-backend@1.0.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 diff --git a/package.json b/package.json index 6ce1ae0ba4..5a26464a4c 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch", "@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch" }, - "version": "1.20.0-next.0", + "version": "1.20.0-next.1", "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 a2a3c28d4b..283bf2468b 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.4.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-permission-react@0.4.17-next.0 + ## 1.4.5-next.0 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 9f6f16d3e1..694983359c 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.4.5-next.0", + "version": "1.4.5-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md index f21bbd45c3..466c50983d 100644 --- a/packages/app-next-example-plugin/CHANGELOG.md +++ b/packages/app-next-example-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # app-next-example-plugin +## 0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + ## 0.0.3-next.0 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 08186e1210..448ba50e43 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,7 +1,7 @@ { "name": "app-next-example-plugin", "description": "Backstage internal example plugin", - "version": "0.0.3-next.0", + "version": "0.0.3-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 5bb2a54561..c37428c7a3 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,82 @@ # example-app-next +## 0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.10-next.1 + - @backstage/plugin-cost-insights@0.12.15-next.1 + - @backstage/plugin-scaffolder@1.16.0-next.1 + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1 + - @backstage/plugin-microsoft-calendar@0.1.9-next.1 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-graph@0.2.38-next.1 + - @backstage/plugin-tech-insights@0.3.18-next.1 + - @backstage/plugin-gcalendar@0.3.20-next.1 + - @backstage/plugin-api-docs@0.9.13-next.1 + - @backstage/plugin-playlist@0.1.18-next.1 + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-explore@0.4.12-next.1 + - @backstage/plugin-search@1.4.2-next.1 + - @backstage/plugin-org@0.6.16-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-catalog-import@0.10.2-next.1 + - @backstage/plugin-github-actions@0.6.7-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/plugin-kubernetes@0.11.1-next.1 + - @backstage/plugin-newrelic@0.3.42-next.1 + - app-next-example-plugin@0.0.3-next.1 + - @backstage/core-compat-api@0.0.1-next.1 + - @backstage/plugin-adr@0.6.9-next.1 + - @backstage/plugin-tech-radar@0.6.10-next.1 + - @backstage/plugin-user-settings@0.7.12-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/plugin-airbrake@0.3.26-next.1 + - @backstage/plugin-azure-devops@0.3.8-next.1 + - @backstage/plugin-azure-sites@0.1.15-next.1 + - @backstage/plugin-badges@0.2.50-next.1 + - @backstage/plugin-circleci@0.3.26-next.1 + - @backstage/plugin-cloudbuild@0.3.26-next.1 + - @backstage/plugin-code-coverage@0.2.19-next.1 + - @backstage/plugin-dynatrace@8.0.0-next.1 + - @backstage/plugin-entity-feedback@0.2.9-next.1 + - @backstage/plugin-gocd@0.1.32-next.1 + - @backstage/plugin-jenkins@0.9.1-next.1 + - @backstage/plugin-kafka@0.3.26-next.1 + - @backstage/plugin-lighthouse@0.4.11-next.1 + - @backstage/plugin-linguist@0.1.11-next.1 + - @backstage/plugin-newrelic-dashboard@0.3.1-next.1 + - @backstage/plugin-octopus-deploy@0.2.8-next.1 + - @backstage/plugin-pagerduty@0.6.7-next.1 + - @backstage/plugin-puppetdb@0.1.9-next.1 + - @backstage/plugin-rollbar@0.4.26-next.1 + - @backstage/plugin-sentry@0.5.11-next.1 + - @backstage/plugin-todo@0.2.30-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-apache-airflow@0.2.17-next.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1 + - @backstage/plugin-devtools@0.1.6-next.1 + - @backstage/plugin-gcp-projects@0.3.43-next.1 + - @backstage/plugin-linguist-common@0.1.2 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-shortcuts@0.3.16-next.1 + - @backstage/plugin-stackstorm@0.1.8-next.1 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 0.0.3-next.0 ### Patch Changes diff --git a/packages/app-next/package.json b/packages/app-next/package.json index 62c00fca94..da5930f350 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.3-next.0", + "version": "0.0.3-next.1", "private": true, "backstage": { "role": "frontend" diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index c360b1108d..22d300b5e8 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,82 @@ # example-app +## 0.2.89-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.10-next.1 + - @backstage/plugin-cost-insights@0.12.15-next.1 + - @backstage/plugin-scaffolder@1.16.0-next.1 + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.2-next.1 + - @backstage/plugin-microsoft-calendar@0.1.9-next.1 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-graph@0.2.38-next.1 + - @backstage/plugin-tech-insights@0.3.18-next.1 + - @backstage/plugin-gcalendar@0.3.20-next.1 + - @backstage/plugin-api-docs@0.9.13-next.1 + - @backstage/plugin-playlist@0.1.18-next.1 + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-explore@0.4.12-next.1 + - @backstage/plugin-search@1.4.2-next.1 + - @backstage/plugin-org@0.6.16-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-catalog-import@0.10.2-next.1 + - @backstage/plugin-github-actions@0.6.7-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/plugin-kubernetes@0.11.1-next.1 + - @backstage/plugin-kubernetes-cluster@0.0.2-next.1 + - @backstage/plugin-newrelic@0.3.42-next.1 + - @backstage/plugin-adr@0.6.9-next.1 + - @backstage/plugin-stack-overflow@0.1.22-next.1 + - @backstage/plugin-tech-radar@0.6.10-next.1 + - @backstage/plugin-user-settings@0.7.12-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/plugin-airbrake@0.3.26-next.1 + - @backstage/plugin-azure-devops@0.3.8-next.1 + - @backstage/plugin-azure-sites@0.1.15-next.1 + - @backstage/plugin-badges@0.2.50-next.1 + - @backstage/plugin-circleci@0.3.26-next.1 + - @backstage/plugin-cloudbuild@0.3.26-next.1 + - @backstage/plugin-code-coverage@0.2.19-next.1 + - @backstage/plugin-dynatrace@8.0.0-next.1 + - @backstage/plugin-entity-feedback@0.2.9-next.1 + - @backstage/plugin-gocd@0.1.32-next.1 + - @backstage/plugin-jenkins@0.9.1-next.1 + - @backstage/plugin-kafka@0.3.26-next.1 + - @backstage/plugin-lighthouse@0.4.11-next.1 + - @backstage/plugin-linguist@0.1.11-next.1 + - @backstage/plugin-newrelic-dashboard@0.3.1-next.1 + - @backstage/plugin-nomad@0.1.7-next.1 + - @backstage/plugin-octopus-deploy@0.2.8-next.1 + - @backstage/plugin-pagerduty@0.6.7-next.1 + - @backstage/plugin-puppetdb@0.1.9-next.1 + - @backstage/plugin-rollbar@0.4.26-next.1 + - @backstage/plugin-sentry@0.5.11-next.1 + - @backstage/plugin-todo@0.2.30-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-apache-airflow@0.2.17-next.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-catalog-unprocessed-entities@0.1.5-next.1 + - @backstage/plugin-devtools@0.1.6-next.1 + - @backstage/plugin-gcp-projects@0.3.43-next.1 + - @backstage/plugin-linguist-common@0.1.2 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-shortcuts@0.3.16-next.1 + - @backstage/plugin-stackstorm@0.1.8-next.1 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 0.2.89-next.0 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 4c02aa5cb6..66d675df0a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.89-next.0", + "version": "0.2.89-next.1", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index a6705a897f..a491142ec2 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-app-api +## 0.5.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.5.8-next.0 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index b5bf276e33..d233c26941 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.5.8-next.0", + "version": "0.5.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index cae7c3314a..ecdb4bea7e 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/backend-common +## 0.19.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/backend-dev-utils@0.1.2 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + ## 0.19.9-next.0 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 111370ad4b..fad87cc3ec 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.19.9-next.0", + "version": "0.19.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index a85c49aacc..39296c458c 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.2.7-next.0 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 13982228ea..2f361463e6 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.2.7-next.0", + "version": "0.2.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 1e4227084d..0d669db170 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,46 @@ # example-backend-next +## 0.0.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-techdocs-backend@1.9.0-next.1 + - @backstage/plugin-scaffolder-backend@1.19.0-next.1 + - @backstage/plugin-catalog-backend-module-openapi@0.1.24-next.1 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/plugin-jenkins-backend@0.3.1-next.1 + - @backstage/plugin-kubernetes-backend@0.13.1-next.1 + - @backstage/plugin-lighthouse-backend@0.3.4-next.1 + - @backstage/plugin-linguist-backend@0.5.4-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/plugin-todo-backend@0.3.5-next.1 + - @backstage/plugin-adr-backend@0.4.4-next.1 + - @backstage/backend-defaults@0.2.7-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-app-backend@0.3.55-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-badges-backend@0.3.4-next.1 + - @backstage/plugin-entity-feedback-backend@0.2.4-next.1 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.4-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-playlist-backend@0.3.11-next.1 + - @backstage/plugin-proxy-backend@0.4.5-next.1 + - @backstage/plugin-search-backend@1.4.7-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/plugin-sonarqube-backend@0.2.9-next.1 + - @backstage/plugin-azure-devops-backend@0.4.4-next.1 + - @backstage/plugin-devtools-backend@0.2.4-next.1 + - @backstage/plugin-nomad-backend@0.1.9-next.1 + - @backstage/plugin-permission-backend@0.5.30-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1 + - @backstage/plugin-permission-common@0.7.9 + ## 0.0.17-next.0 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 63bfc35d29..5aa8a04233 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.17-next.0", + "version": "0.0.17-next.1", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index 371ef680c8..087dee6a0a 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-openapi-utils +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.0-next.0 ### Minor Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index 9fd5b5a83f..e72ac24534 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "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/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index e83e630a54..ef826624ec 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-plugin-api +## 0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + ## 0.6.7-next.0 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index cea829b8d7..a1f9149098 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.6.7-next.0", + "version": "0.6.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-plugin-manager/CHANGELOG.md b/packages/backend-plugin-manager/CHANGELOG.md index bb9184ec0c..616663c7d1 100644 --- a/packages/backend-plugin-manager/CHANGELOG.md +++ b/packages/backend-plugin-manager/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/backend-plugin-manager +## 0.0.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-events-backend@0.2.16-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 0.0.3-next.0 ### Patch Changes diff --git a/packages/backend-plugin-manager/package.json b/packages/backend-plugin-manager/package.json index 7fc6b554b0..038a3883d9 100644 --- a/packages/backend-plugin-manager/package.json +++ b/packages/backend-plugin-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-manager", "description": "Backstage plugin management backend", - "version": "0.0.3-next.0", + "version": "0.0.3-next.1", "private": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index b7cdf841eb..ce089328a7 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-tasks +## 0.5.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.5.12-next.0 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 0b08c29c05..f38a209831 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.12-next.0", + "version": "0.5.12-next.1", "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 320d11e8d2..4bc6df5ebe 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/backend-test-utils +## 0.2.8-next.1 + +### Patch Changes + +- bb688f7b3b: Ensure recursive deletion of temporary directories in tests +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-app-api@0.5.8-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.8-next.0 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 55d2d13aa1..1216487880 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.2.8-next.0", + "version": "0.2.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 618218ebd8..dfdf941796 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,64 @@ # example-backend +## 0.2.89-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-auth-backend@0.20.0-next.1 + - @backstage/plugin-techdocs-backend@1.9.0-next.1 + - @backstage/plugin-scaffolder-backend@1.19.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/plugin-jenkins-backend@0.3.1-next.1 + - @backstage/plugin-kubernetes-backend@0.13.1-next.1 + - @backstage/plugin-lighthouse-backend@0.3.4-next.1 + - @backstage/plugin-linguist-backend@0.5.4-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/plugin-todo-backend@0.3.5-next.1 + - example-app@0.2.89-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-adr-backend@0.4.4-next.1 + - @backstage/plugin-code-coverage-backend@0.2.21-next.1 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.8-next.1 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.24-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-app-backend@0.3.55-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-badges-backend@0.3.4-next.1 + - @backstage/plugin-entity-feedback-backend@0.2.4-next.1 + - @backstage/plugin-events-backend@0.2.16-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-playlist-backend@0.3.11-next.1 + - @backstage/plugin-proxy-backend@0.4.5-next.1 + - @backstage/plugin-rollbar-backend@0.1.52-next.1 + - @backstage/plugin-search-backend@1.4.7-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/plugin-search-backend-module-pg@0.5.16-next.1 + - @backstage/plugin-tech-insights-backend@0.5.21-next.1 + - @backstage/plugin-azure-devops-backend@0.4.4-next.1 + - @backstage/plugin-azure-sites-backend@0.1.17-next.1 + - @backstage/plugin-devtools-backend@0.2.4-next.1 + - @backstage/plugin-explore-backend@0.0.17-next.1 + - @backstage/plugin-graphql-backend@0.2.1-next.1 + - @backstage/plugin-kafka-backend@0.3.5-next.1 + - @backstage/plugin-nomad-backend@0.1.9-next.1 + - @backstage/plugin-permission-backend@0.5.30-next.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.10-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.39-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.4-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 0.2.89-next.0 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 5ccc70b104..bd28eadb8f 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.89-next.0", + "version": "0.2.89-next.1", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 10f60a2f78..c2f25872bf 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/cli +## 0.24.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.0-next.0 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/eslint-plugin@0.1.3 + - @backstage/release-manifests@0.0.10 + - @backstage/types@1.1.1 + ## 0.24.0-next.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index f70b0f2696..6ef0e76564 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.24.0-next.0", + "version": "0.24.0-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 652820d5f0..2ed08e98c0 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "1.5.2-next.0", + "version": "1.5.3-next.0", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index 348132ac66..192c720fd7 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/core-compat-api +## 0.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.0.1-next.0 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index 0753917fd8..769e7bd50b 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-compat-api", - "version": "0.0.1-next.0", + "version": "0.0.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 5b6718e958..9ad052c4df 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/core-components +## 0.13.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/version-bridge@1.0.7-next.0 + ## 0.13.7-next.0 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 4c63eeaac5..59181273d0 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.13.7-next.0", + "version": "0.13.8-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 89a46a3b18..5a1b5a78ac 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/create-app +## 0.5.7-next.1 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.13 + ## 0.5.7-next.0 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index bf7780bd49..4b25ce05f0 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.5.7-next.0", + "version": "0.5.7-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 3d800a8bf0..d63a8d6e66 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/dev-utils +## 1.0.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 1.0.23-next.0 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index f1d4420922..1f574f779b 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.23-next.0", + "version": "1.0.23-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 4b50bb883e..964cffcb7c 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/errors@1.2.3 + ## 0.2.9-next.0 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 70e58832f2..3287517d3d 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.9-next.0", + "version": "0.2.9-next.1", "private": true, "backstage": { "role": "cli" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index 84d19133cb..f7566c2294 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/frontend-app-api +## 0.3.0-next.1 + +### Patch Changes + +- fe6d09953d: Fix for app node output IDs not being serialized correctly. +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- 4d6fa921db: Internal refactor to rename the app graph to app tree +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-graphiql@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + ## 0.3.0-next.0 ### Minor Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index b3f3a98dab..48f0aacb70 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.3.0-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 1a432e19de..3e8cd0f303 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/frontend-plugin-api +## 0.3.0-next.1 + +### Minor Changes + +- 77f009b35d: Extensions now return their output from the factory function rather than calling `bind(...)`. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + ## 0.3.0-next.0 ### Minor Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index 37229dcff8..dadbaa91bb 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-plugin-api", - "version": "0.3.0-next.0", + "version": "0.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index d7e2289443..a23564adad 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/integration-react +## 1.1.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 1.1.21-next.0 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index d2fe31eabc..807ae468d0 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.21-next.0", + "version": "1.1.21-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 552e225e3b..bf500bc707 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/integration +## 1.7.2-next.0 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/config@1.1.1 + ## 1.7.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index 42a6ba4bf3..7e88ef8282 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.7.1", + "version": "1.7.2-next.0", "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 67b125c2ed..51d81a5edb 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.88-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/cli@0.24.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/app-defaults@1.4.5-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 0.2.88-next.0 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 0b3e3d2020..12cd53cc5a 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.88-next.0", + "version": "0.2.88-next.1", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 95895a7620..5cc062847a 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @techdocs/cli +## 1.6.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + ## 1.6.1-next.0 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 691e42a232..603db76139 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.6.1-next.0", + "version": "1.6.1-next.1", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 5bfae0013c..0af749351c 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr-backend +## 0.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-adr-common@0.2.17-next.0 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-search-common@1.2.7 + ## 0.4.4-next.0 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index b94c0f858f..760d9540e8 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.4.4-next.0", + "version": "0.4.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index 849b00fdac..e9e1c68cf0 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-adr-common +## 0.2.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-search-common@1.2.7 + ## 0.2.16 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index f3021eb4b1..e737f1fcf9 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.2.16", + "version": "0.2.17-next.0", "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 79443b1988..7eb3244844 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-adr +## 0.6.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-adr-common@0.2.17-next.0 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-search-common@1.2.7 + ## 0.6.9-next.0 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 47cb0da80f..0cb228ae3d 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.6.9-next.0", + "version": "0.6.9-next.1", "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 225310011a..c1d7fe3938 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-airbrake-backend +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index f5732264c6..5948b98dbf 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.3.4-next.0", + "version": "0.3.4-next.1", "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 38fa84f797..01b4ce102f 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-airbrake +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/dev-utils@1.0.23-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index ec5baa8acc..dca303a290 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.26-next.0", + "version": "0.3.26-next.1", "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 83bb766318..9f2705d8da 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-allure +## 0.1.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.42-next.0 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 003d7fa853..88b29c8a6f 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.42-next.0", + "version": "0.1.42-next.1", "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 fc3b9c7c4c..d7c6cef5b5 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.35-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.35-next.0 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 878a28d382..847dc9523a 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.35-next.0", + "version": "0.1.35-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-ga4/CHANGELOG.md b/plugins/analytics-module-ga4/CHANGELOG.md index 43be5517d4..93a10ae72a 100644 --- a/plugins/analytics-module-ga4/CHANGELOG.md +++ b/plugins/analytics-module-ga4/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-ga4 +## 0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/analytics-module-ga4/package.json b/plugins/analytics-module-ga4/package.json index c6811cbb2d..7d021b90f8 100644 --- a/plugins/analytics-module-ga4/package.json +++ b/plugins/analytics-module-ga4/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga4", - "version": "0.1.6-next.0", + "version": "0.1.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-newrelic-browser/CHANGELOG.md b/plugins/analytics-module-newrelic-browser/CHANGELOG.md index dba2d14fd2..1a95f86954 100644 --- a/plugins/analytics-module-newrelic-browser/CHANGELOG.md +++ b/plugins/analytics-module-newrelic-browser/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-analytics-module-newrelic-browser +## 0.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.0.4-next.0 ### Patch Changes diff --git a/plugins/analytics-module-newrelic-browser/package.json b/plugins/analytics-module-newrelic-browser/package.json index fcd1f67658..1a1663b6f1 100644 --- a/plugins/analytics-module-newrelic-browser/package.json +++ b/plugins/analytics-module-newrelic-browser/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-newrelic-browser", - "version": "0.0.4-next.0", + "version": "0.0.4-next.1", "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 435030cde4..889fdb1f29 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apache-airflow +## 0.2.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.2.17-next.0 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 26fa686c88..ab9965c451 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.17-next.0", + "version": "0.2.17-next.1", "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 7e0ac7c44d..141314b009 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-api-docs +## 0.9.13-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.9.13-next.0 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 182380b6f6..bc4bbf2a20 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.13-next.0", + "version": "0.9.13-next.1", "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 9a405a026c..550a454d5e 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-apollo-explorer +## 0.1.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 436d7dbc37..396d898083 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.17-next.0", + "version": "0.1.17-next.1", "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 acd36cac83..0b94abc380 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-app-backend +## 0.3.55-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.7-next.1 + ## 0.3.55-next.0 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 0b3556c239..e8230f715e 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.55-next.0", + "version": "0.3.55-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md index 5cfa6b7aa2..4743bbaa13 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-app-node +## 0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.7-next.0 ### Patch Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index ac892910a5..33c5bd91c0 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-node", "description": "Node.js library for the app plugin", - "version": "0.1.7-next.0", + "version": "0.1.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md index a96202ef8a..264ecd071a 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-gcp-iap-provider +## 0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-gcp-iap-provider/package.json b/plugins/auth-backend-module-gcp-iap-provider/package.json index 473dc7e3b6..a50a9dc9a6 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/package.json +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-gcp-iap-provider", "description": "A GCP IAP auth provider module for the Backstage auth backend", - "version": "0.2.1-next.0", + "version": "0.2.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-github-provider/CHANGELOG.md b/plugins/auth-backend-module-github-provider/CHANGELOG.md index 6b82880afb..143b5a3819 100644 --- a/plugins/auth-backend-module-github-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-github-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-github-provider +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index 9164f6fe2c..887f7d8f9e 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", "description": "The github-provider backend module for the auth plugin.", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md index 400bbbfbbf..046faf1ab9 100644 --- a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-gitlab-provider +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-gitlab-provider/package.json b/plugins/auth-backend-module-gitlab-provider/package.json index 735d241cc9..a0c753b31a 100644 --- a/plugins/auth-backend-module-gitlab-provider/package.json +++ b/plugins/auth-backend-module-gitlab-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-gitlab-provider", "description": "The gitlab-provider backend module for the auth plugin.", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-google-provider/CHANGELOG.md b/plugins/auth-backend-module-google-provider/CHANGELOG.md index 2445a0adf1..32ec6819e1 100644 --- a/plugins/auth-backend-module-google-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-google-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-google-provider +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json index ac0678caf7..ff719ba399 100644 --- a/plugins/auth-backend-module-google-provider/package.json +++ b/plugins/auth-backend-module-google-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-google-provider", "description": "A Google auth provider module for the Backstage auth backend", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md index a45f3e21cc..8af39fec58 100644 --- a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-microsoft-provider +## 0.1.2-next.1 + +### Patch Changes + +- 3979524c74: Added support for specifying a domain hint on the Microsoft authentication provider configuration. +- 5aeb14f035: Correctly mark the client secret in configuration as secret +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json index 907ba3f16f..17d5ad3522 100644 --- a/plugins/auth-backend-module-microsoft-provider/package.json +++ b/plugins/auth-backend-module-microsoft-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-microsoft-provider", "description": "The microsoft-provider backend module for the auth plugin.", - "version": "0.1.2-next.0", + "version": "0.1.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md index 5236bdcd6c..adcd81e3bd 100644 --- a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-oauth2-provider +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-provider/package.json b/plugins/auth-backend-module-oauth2-provider/package.json index 33dfd5582f..f40821cc67 100644 --- a/plugins/auth-backend-module-oauth2-provider/package.json +++ b/plugins/auth-backend-module-oauth2-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-provider", "description": "The oauth2-provider backend module for the auth plugin.", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md index ba7b20ca6a..fe0d00b4da 100644 --- a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-pinniped-provider +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/auth-backend-module-pinniped-provider/package.json b/plugins/auth-backend-module-pinniped-provider/package.json index dcbd48c84f..c9bd43b52a 100644 --- a/plugins/auth-backend-module-pinniped-provider/package.json +++ b/plugins/auth-backend-module-pinniped-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-pinniped-provider", "description": "The pinniped-provider backend module for the auth plugin.", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index bff9f727fe..ccfc8167ca 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-auth-backend +## 0.20.0-next.1 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-backend-module-github-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-google-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.4-next.1 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.1-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.20.0-next.0 ### Minor Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 113fa8a027..b52560cbb9 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.20.0-next.0", + "version": "0.20.0-next.1", "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 d8953c8c94..2bd367cac6 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-node +## 0.4.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.4.1-next.0 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 3eb7a31ca7..c6d56582ce 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.4.1-next.0", + "version": "0.4.1-next.1", "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 12d2b37d5d..de4d1513da 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-azure-devops-backend +## 0.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-azure-devops-common@0.3.1 + ## 0.4.4-next.0 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 218c58f665..aabdb9a1ad 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.4.4-next.0", + "version": "0.4.4-next.1", "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 398d741652..d553e92406 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-azure-devops +## 0.3.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-azure-devops-common@0.3.1 + ## 0.3.8-next.0 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index a09b75ac9e..d51e8c3551 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.3.8-next.0", + "version": "0.3.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md index d6275f8838..0b7ae01cc5 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-azure-sites-common@0.1.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 5be47519ad..6a9bd690ab 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.17-next.0", + "version": "0.1.17-next.1", "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 5cdba26fcb..cb1cdd7cfd 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-sites +## 0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-azure-sites-common@0.1.1 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index eb5390d236..ce2e8ed8b6 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.15-next.0", + "version": "0.1.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 58081b140a..03a706e7ed 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-badges-backend +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 08118445e2..fee41b8e7f 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.3.4-next.0", + "version": "0.3.4-next.1", "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 4ee172f365..740cd7b20b 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges +## 0.2.50-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.50-next.0 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 6b476cac8a..640c2253e1 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.50-next.0", + "version": "0.2.50-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 9b1e3662e1..7e17bdc5b8 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar-backend +## 0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.3.5-next.0 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 838f01577b..28489be39f 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.3.5-next.0", + "version": "0.3.5-next.1", "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 83691388dc..45d26284f8 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-bazaar +## 0.2.18-next.1 + +### Patch Changes + +- c5aad900e3: Adding descending sort in a bazaar plugin +- b3acba9091: Added alert popup in the bazaar plugin +- 1a40159acb: Removed unnecessary dependency on `@backstage/cli`. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.18-next.0 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 53985979d5..b052252319 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.18-next.0", + "version": "0.2.18-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index ce604a6ef5..cbe27eeda7 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + ## 0.2.13 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 9f0488749e..d5987758dc 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", "description": "Common functionalities for bitbucket-cloud plugins", - "version": "0.2.13", + "version": "0.2.14-next.0", "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 871a6a718c..8a180c39c3 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bitrise +## 0.1.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.53-next.0 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 2c2e577ec9..945cc2d5ca 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.53-next.0", + "version": "0.1.53-next.1", "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 4cbd9e3c94..67f0a1821f 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.3.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index f51fd3f8c2..4a6e1bdaa1 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.3.1-next.0", + "version": "0.3.1-next.1", "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 a1b7d52763..1fa97bf4ca 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.1.26-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 9c49fb839a..c92ef52bb9 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.26-next.0", + "version": "0.1.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md index b2ee0a4d14..cbd72e4c3d 100644 --- a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-backstage-openapi +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-backstage-openapi/package.json b/plugins/catalog-backend-module-backstage-openapi/package.json index eaed841623..ff05b7c145 100644 --- a/plugins/catalog-backend-module-backstage-openapi/package.json +++ b/plugins/catalog-backend-module-backstage-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-backstage-openapi", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 67930259fc..5a55572616 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.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.14-next.0 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.22-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index deda20c641..18fb6d89f2 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.22-next.0", + "version": "0.1.22-next.1", "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 3b6e9a9a26..0df1f2bebb 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.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.20-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 249ee24660..7818f0e253 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.20-next.0", + "version": "0.1.20-next.1", "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 cdf8e53426..56ca7b448f 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.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.14-next.0 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.22-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 8efed95068..c779211885 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.22-next.0", + "version": "0.2.22-next.1", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 9240006161..819f01617c 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.1.7-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 678c8e1075..14a73400c6 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", "description": "A Backstage catalog backend module that helps integrate towards GCP", - "version": "0.1.7-next.0", + "version": "0.1.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 280215731b..6d8ecff635 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.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.23-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 7e8b248573..a95f69f906 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.23-next.0", + "version": "0.1.23-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github-org/CHANGELOG.md b/plugins/catalog-backend-module-github-org/CHANGELOG.md index 939233c8db..9ebf0f4f19 100644 --- a/plugins/catalog-backend-module-github-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-github-org/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-github-org +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-catalog-backend-module-github@0.4.5-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-github-org/package.json b/plugins/catalog-backend-module-github-org/package.json index 6b91be826a..f1dbbfdde3 100644 --- a/plugins/catalog-backend-module-github-org/package.json +++ b/plugins/catalog-backend-module-github-org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github-org", "description": "The github-org backend module for the catalog plugin.", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index e5fb524cb3..7b6219998c 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-github +## 0.4.5-next.1 + +### Patch Changes + +- 88b673aa76: Import `AnalyzeOptions` and `ScmLocationAnalyzer` types from `@backstage/plugin-catalog-node` +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.4.5-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index ba51c49eff..36c2fe0f72 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.4.5-next.0", + "version": "0.4.5-next.1", "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 a48379e18d..24d4bcdf3e 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index abf9797f7f..3caab4bd38 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.3.4-next.0", + "version": "0.3.4-next.1", "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 20f2abd655..c93720fa82 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.4.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + ## 0.4.11-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index ef2a876f5f..5eb327b812 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", "description": "An entity provider for streaming large asset sources into the catalog", - "version": "0.4.11-next.0", + "version": "0.4.11-next.1", "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 061536cc9d..36c55ae2c3 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.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.5.22-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 819ad2a81c..5b2331e809 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.22-next.0", + "version": "0.5.22-next.1", "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 acd364a94c..8758a642f9 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.14-next.1 + +### Patch Changes + +- 243c655a68: JSDoc and Error message updates to handle `Azure Active Directory` re-brand to `Entra ID` +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.5.14-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 7802f5a50e..4bc95a380f 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.14-next.0", + "version": "0.5.14-next.1", "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 7e2651b957..55b4a04cf8 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.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.1.24-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index e96649ef95..cab12ec4d5 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.24-next.0", + "version": "0.1.24-next.1", "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 0e1f1fdccd..1bb70e9aac 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.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.1.12-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index ffe9195fa4..9bbe86f3fe 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.12-next.0", + "version": "0.1.12-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index 63b52026af..e37dbf0f2c 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/package.json b/plugins/catalog-backend-module-scaffolder-entity-model/package.json index ca87a07d1d..e4e12e0834 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index a911b911eb..1317202be6 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index ba1080d02b..03f3471b28 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", "description": "Backstage Catalog module to view unprocessed entities", - "version": "0.3.4-next.0", + "version": "0.3.4-next.1", "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 0775bb6a1f..db58e21052 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-catalog-backend +## 1.15.0-next.1 + +### Minor Changes + +- e5bf3749ad: Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.11-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-events-node@0.2.16-next.1 + - @backstage/plugin-permission-common@0.7.9 + ## 1.15.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 8dc96c3cb7..a6f266af48 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.15.0-next.0", + "version": "1.15.0-next.1", "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 31f342f335..98c46185b5 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-graph +## 0.2.38-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + ## 0.2.38-next.0 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index e9a69f1545..541cc49bf6 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.38-next.0", + "version": "0.2.38-next.1", "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 3c4b4e9472..c3d61b6422 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-import +## 0.10.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.10.2-next.0 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 8749b4924f..cca1a75052 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.10.2-next.0", + "version": "0.10.2-next.1", "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 13978277ff..e95ba66a68 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-node +## 1.5.0-next.1 + +### Minor Changes + +- e5bf3749ad: Support adding location analyzers in new catalog analysis extension point and move `AnalyzeOptions` and `ScmLocationAnalyzer` types to `@backstage/plugin-catalog-node` + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + ## 1.4.8-next.0 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index aa5db93f6d..189d066c01 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.4.8-next.0", + "version": "1.5.0-next.1", "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 c8630a80ee..a9a479f7eb 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-catalog-react +## 1.9.0-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-permission-react@0.4.17-next.0 + ## 1.9.0-next.0 ### Minor Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 6f156beea4..25bd244ab7 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.9.0-next.0", + "version": "1.9.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-unprocessed-entities/CHANGELOG.md b/plugins/catalog-unprocessed-entities/CHANGELOG.md index a3039ed051..c070e84445 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.5-next.0 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index 113d0ed648..40e3058e78 100644 --- a/plugins/catalog-unprocessed-entities/package.json +++ b/plugins/catalog-unprocessed-entities/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-unprocessed-entities", - "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/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 1bbe6ed199..e2feec07fb 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog +## 1.15.0-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-search-common@1.2.7 + ## 1.15.0-next.0 ### Minor Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 013f49ba2e..19f148b90b 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.15.0-next.0", + "version": "1.15.0-next.1", "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 fd6d68e389..e88f829428 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.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.28-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.1.22-next.0 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 9c763bbedc..67a93bbaac 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.22-next.0", + "version": "0.1.22-next.1", "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 2ae84785d1..4243b3a621 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics +## 0.1.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.1.28-next.0 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index a19523580e..424294f936 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.28-next.0", + "version": "0.1.28-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 5ed6d4d6e8..9a17e5da7f 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-circleci +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 22ff9d8238..5293043224 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.26-next.0", + "version": "0.3.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index da292577a2..9a3231af28 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-cloudbuild +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index e156694938..78cf593d39 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.26-next.0", + "version": "0.3.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 430efe264e..c1561e8345 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-code-climate +## 0.1.26-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.26-next.0 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index cb154399f1..7c0dbbca9d 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.26-next.0", + "version": "0.1.26-next.1", "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 358ba9c483..2986e1fb6d 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-code-coverage-backend +## 0.2.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.2.21-next.0 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 7f667c50b1..5bc50a3e01 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.21-next.0", + "version": "0.2.21-next.1", "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 111e4ad512..2415851889 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-code-coverage +## 0.2.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.19-next.0 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 2f74877a50..ed5974c619 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.19-next.0", + "version": "0.2.19-next.1", "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 b9d2faff0c..33d4bc928a 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-codescene +## 0.1.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.19-next.0 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 77f4b36f58..e726178020 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.19-next.0", + "version": "0.1.19-next.1", "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 19eb742821..c69690838b 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-config-schema +## 0.1.47-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + ## 0.1.47-next.0 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 9d89e7c9c1..72d5a29e06 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.47-next.0", + "version": "0.1.47-next.1", "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 4885ff4bc8..6652ee10a6 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-cost-insights +## 0.12.15-next.1 + +### Patch Changes + +- 7da799d5b7: Updated dependency `@types/pluralize` to `^0.0.32`. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-cost-insights-common@0.1.2 + ## 0.12.15-next.0 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 4042774235..2d3385bdcb 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.15-next.0", + "version": "0.12.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index e7dbc7427c..e70faf5b2a 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-devtools-backend +## 0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config-loader@1.5.3-next.0 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-devtools-common@0.1.5 + - @backstage/plugin-permission-common@0.7.9 + ## 0.2.4-next.0 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 9938bec6e7..8dd635e650 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.2.4-next.0", + "version": "0.2.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools/CHANGELOG.md b/plugins/devtools/CHANGELOG.md index 0496e56359..215848cca4 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-devtools +## 0.1.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-devtools-common@0.1.5 + - @backstage/plugin-permission-react@0.4.17-next.0 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 4523be5278..a5d995773f 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.6-next.0", + "version": "0.1.6-next.1", "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 7b9e8b609f..0cbd516d64 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-dynatrace +## 8.0.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 8.0.0-next.0 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 86b7ea87b8..b78b7319e5 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "8.0.0-next.0", + "version": "8.0.0-next.1", "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 5ef3f5e709..9939da16f4 100644 --- a/plugins/entity-feedback-backend/CHANGELOG.md +++ b/plugins/entity-feedback-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-entity-feedback-backend +## 0.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-entity-feedback-common@0.1.3 + ## 0.2.4-next.0 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 77e49a7086..0e59338498 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.2.4-next.0", + "version": "0.2.4-next.1", "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 d813946f1f..31f54947ea 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-entity-feedback +## 0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-entity-feedback-common@0.1.3 + ## 0.2.9-next.0 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 67ea558503..8471fe6139 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.9-next.0", + "version": "0.2.9-next.1", "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 3c0b1fe96d..59f769ba8a 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-entity-validation +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.17 + ## 0.1.11-next.0 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index ec2e36d06b..58b38a6fab 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.11-next.0", + "version": "0.1.11-next.1", "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 ea404bd4da..cd20fca678 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.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.2.10-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 877af9b03c..6ef2984120 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.2.10-next.0", + "version": "0.2.10-next.1", "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 0b8ef3e3a3..d53fea2da4 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index d81d912ed4..1e2611c3a8 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.17-next.0", + "version": "0.1.17-next.1", "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 4fe98ad304..e852c37cfe 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index d6a33fbed2..292ae4fc3e 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.17-next.0", + "version": "0.1.17-next.1", "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 c63b5224dc..a70e96dd8b 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 48dace1744..f2e224dda7 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.17-next.0", + "version": "0.1.17-next.1", "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 d1eca166f9..9c23828ae7 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index cf48d2c008..b4a4f2b4e4 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.17-next.0", + "version": "0.1.17-next.1", "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 9c1be3735c..485bc5a21c 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index 7cfb42ad5b..f5c5b08ba9 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.17-next.0", + "version": "0.1.17-next.1", "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 3ddcce8a1f..4377acd0d8 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.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.1.17-next.0 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 508ef0cddc..9113c7876a 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.17-next.0", + "version": "0.1.17-next.1", "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 256bffd508..cf2e60348b 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend +## 0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-events-node@0.2.16-next.1 + ## 0.2.16-next.0 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index 2221d1bf13..9a86415041 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.16-next.0", + "version": "0.2.16-next.1", "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 c35980b9f6..f01f295791 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.2.16-next.0 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index df9b89aa9c..433722a85e 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.16-next.0", + "version": "0.2.16-next.1", "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 b1d1ebabc7..f65ffee2c3 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.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 1.0.19-next.0 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index e020ca765d..f84d55fb5f 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.19-next.0", + "version": "1.0.19-next.1", "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 239785c44b..a7c2870089 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.19-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 1.0.19-next.0 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 5d60daaacd..fa89f94c90 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.19-next.0", + "version": "1.0.19-next.1", "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 04214e66ed..cfafc3ca52 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-explore-backend +## 0.0.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-module-explore@0.1.11-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-search-common@1.2.7 + ## 0.0.17-next.0 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 1ade42b078..c5580c5d41 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.17-next.0", + "version": "0.0.17-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 d4bcc6831d..d9befe5a7c 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-explore +## 0.4.12-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-explore-react@0.0.33-next.0 + - @backstage/plugin-search-common@1.2.7 + ## 0.4.12-next.0 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index d8602fd74d..dbdbaf7b23 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.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/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 4fb7bf8ad2..3477521e2f 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-firehydrant +## 0.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.2.10-next.0 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 994660f424..4a3e281b54 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.10-next.0", + "version": "0.2.10-next.1", "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 ca79919fe4..571a484703 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-fossa +## 0.2.58-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.58-next.0 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 07f32f9af9..35678d505d 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.58-next.0", + "version": "0.2.58-next.1", "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 6e4d9d5b19..d268b1957a 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-gcalendar +## 0.3.20-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.3.20-next.0 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 94435b49b5..a634c73dbc 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.20-next.0", + "version": "0.3.20-next.1", "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 756714b370..516782c8a4 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gcp-projects +## 0.3.43-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.43-next.0 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 50d16b45b8..d33409051f 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.43-next.0", + "version": "0.3.43-next.1", "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 2b568b3f9a..0e97ba77dc 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-git-release-manager +## 0.3.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.39-next.0 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 866eb37c8c..cec69f09d9 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.39-next.0", + "version": "0.3.39-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 4b36c5df29..4060925296 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-actions +## 0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.6.7-next.0 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index d32858250d..fe83bf6b01 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.6.7-next.0", + "version": "0.6.7-next.1", "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 48a7d5cbbf..7bf59d4af3 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-github-deployments +## 0.1.57-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.57-next.0 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 5e966f89d2..74543baf0b 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.57-next.0", + "version": "0.1.57-next.1", "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 520680f50d..61054e200f 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-issues +## 0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.15-next.0 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 1bd8c8eceb..cf4317c416 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.15-next.0", + "version": "0.2.15-next.1", "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 574bb77405..fcf694d31f 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.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.20-next.0 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 02ff243382..53ad4f51d5 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.20-next.0", + "version": "0.1.20-next.1", "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 11102c9c71..7012fc63d8 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gitops-profiles +## 0.3.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.42-next.0 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 298981cabb..2775e3de36 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.42-next.0", + "version": "0.3.42-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 5d8808e7ad..437a18f962 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-gocd +## 0.1.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.32-next.0 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index a9979f9c55..cd86101de6 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.32-next.0", + "version": "0.1.32-next.1", "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 faa69543ec..c60d6f6004 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-graphiql +## 0.3.0-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.0-next.0 ### Minor Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 71687f03b9..e9040faee3 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.3.0-next.0", + "version": "0.3.0-next.1", "publishConfig": { "access": "public" }, diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index 83b9464b38..20c46cf944 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-graphql@0.4.1-next.0 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index b5ef102734..8df9c8b279 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "Deprecated, consider using @frontside/backstage-plugin-graphql-backend instead", - "version": "0.2.1-next.0", + "version": "0.2.1-next.1", "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 750561ae80..712ae8d6ee 100644 --- a/plugins/graphql-voyager/CHANGELOG.md +++ b/plugins/graphql-voyager/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-voyager +## 0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.9-next.0 ### Patch Changes diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index 5c26365a88..7fa1aeb344 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.9-next.0", + "version": "0.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index fa1705caa0..a284cfb021 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-home-react +## 0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + ## 0.1.5-next.0 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 2ca237038b..26e58987fd 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home-react", "description": "A Backstage plugin that contains react components helps you build a home page", - "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/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 36e2e52f11..861f3cc8ba 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-home +## 0.5.10-next.1 + +### Patch Changes + +- d86b2acec4: Fix bug where `retrieveAll` method wasn't fetching visits +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-home-react@0.1.5-next.1 + ## 0.5.10-next.0 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 9ab37dd580..75d5cc29ab 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.5.10-next.0", + "version": "0.5.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index f11a5dfcd1..de13ba29ca 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-ilert +## 0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.15-next.0 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index e015bba7b8..e4125d7b00 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.15-next.0", + "version": "0.2.15-next.1", "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 fe59d2d719..b204faee46 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-jenkins-backend +## 0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-jenkins-common@0.1.20 + - @backstage/plugin-permission-common@0.7.9 + ## 0.3.1-next.0 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 29bdfa7dfa..568941c593 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.3.1-next.0", + "version": "0.3.1-next.1", "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 c22cae3af2..2424ed02d6 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-jenkins +## 0.9.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-jenkins-common@0.1.20 + ## 0.9.1-next.0 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 3515936abf..8ec1d79db3 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.9.1-next.0", + "version": "0.9.1-next.1", "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 e33a3c0f14..9bf3d43c87 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kafka-backend +## 0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.3.5-next.0 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 6626a21412..dc667b117a 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.3.5-next.0", + "version": "0.3.5-next.1", "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 db25947985..a5515b7a0d 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kafka +## 0.3.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.26-next.0 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index d43e58f97c..181dfa42c8 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.26-next.0", + "version": "0.3.26-next.1", "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 b53e5adab2..1e8b8978b2 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-kubernetes-backend +## 0.13.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + - @backstage/plugin-kubernetes-node@0.1.1-next.1 + - @backstage/plugin-permission-common@0.7.9 + ## 0.13.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 4500db50de..a593ce3717 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.13.1-next.0", + "version": "0.13.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-cluster/CHANGELOG.md b/plugins/kubernetes-cluster/CHANGELOG.md index c8903b1a93..c876286855 100644 --- a/plugins/kubernetes-cluster/CHANGELOG.md +++ b/plugins/kubernetes-cluster/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-kubernetes-cluster +## 0.0.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-react@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.0.2-next.0 ### Patch Changes diff --git a/plugins/kubernetes-cluster/package.json b/plugins/kubernetes-cluster/package.json index 5df8c4f32c..fb1cebc171 100644 --- a/plugins/kubernetes-cluster/package.json +++ b/plugins/kubernetes-cluster/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-cluster", "description": "A Backstage plugin that shows details of Kubernetes clusters", - "version": "0.0.2-next.0", + "version": "0.0.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-node/CHANGELOG.md b/plugins/kubernetes-node/CHANGELOG.md index ed31d1ec9a..f2d9f15aec 100644 --- a/plugins/kubernetes-node/CHANGELOG.md +++ b/plugins/kubernetes-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kubernetes-node +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes-node/package.json b/plugins/kubernetes-node/package.json index 6f36abffa2..8efac46e53 100644 --- a/plugins/kubernetes-node/package.json +++ b/plugins/kubernetes-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-node", "description": "Node.js library for the kubernetes plugin", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-react/CHANGELOG.md b/plugins/kubernetes-react/CHANGELOG.md index f3850e88de..322b60e528 100644 --- a/plugins/kubernetes-react/CHANGELOG.md +++ b/plugins/kubernetes-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-kubernetes-react +## 0.1.1-next.1 + +### Patch Changes + +- 0f4cad6da0: Internal refactor to avoid a null pointer problem +- b52f576f48: Make sure types exported by other `kubernetes` plugins in the past are exported again after the creation + of the react package. + + Some types have been moved to this new package but the export was missing, so they were not available anymore for developers. + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes-react/package.json b/plugins/kubernetes-react/package.json index 772ca48cc2..e2a5841411 100644 --- a/plugins/kubernetes-react/package.json +++ b/plugins/kubernetes-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-react", "description": "Web library for the kubernetes-react plugin", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index c6bc0f7fab..06b87a6cde 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-kubernetes +## 0.11.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-react@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-kubernetes-common@0.7.1-next.0 + ## 0.11.1-next.0 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 47fd25542d..08d163d9a4 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.11.1-next.0", + "version": "0.11.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md index 95d3f58194..1cf026f6be 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-lighthouse-backend +## 0.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-lighthouse-common@0.1.4 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index d6acb8facb..44632894b3 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.3.4-next.0", + "version": "0.3.4-next.1", "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 b66e678aab..916a8fd33f 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse +## 0.4.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-lighthouse-common@0.1.4 + ## 0.4.11-next.0 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index d08b41d483..3016938df8 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.11-next.0", + "version": "0.4.11-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md index c55eaf79f5..4510f9ae93 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-linguist-backend +## 0.5.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-linguist-common@0.1.2 + ## 0.5.4-next.0 ### Patch Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 78cdcf7bf5..db00a9ecba 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist-backend", - "version": "0.5.4-next.0", + "version": "0.5.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md index fec35925de..55341c88e2 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-linguist +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-linguist-common@0.1.2 + ## 0.1.11-next.0 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index e6b95a3076..8f77a0e351 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.11-next.0", + "version": "0.1.11-next.1", "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 94140da499..6ce19f22e2 100644 --- a/plugins/microsoft-calendar/CHANGELOG.md +++ b/plugins/microsoft-calendar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-microsoft-calendar +## 0.1.9-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.9-next.0 ### Patch Changes diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json index 82016c58e6..d592fd37a3 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.9-next.0", + "version": "0.1.9-next.1", "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 14e9cbbda3..4ee697474e 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-newrelic-dashboard +## 0.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + ## 0.3.1-next.0 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 6d79b0fda4..bef95e0f02 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.3.1-next.0", + "version": "0.3.1-next.1", "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 a0e8b98414..84e87e5cd3 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic +## 0.3.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.3.42-next.0 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index db7bc65590..470d76add2 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.42-next.0", + "version": "0.3.42-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad-backend/CHANGELOG.md b/plugins/nomad-backend/CHANGELOG.md index ade1a26f2c..c6f30a0bb7 100644 --- a/plugins/nomad-backend/CHANGELOG.md +++ b/plugins/nomad-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-nomad-backend +## 0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.9-next.0 ### Patch Changes diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json index 5c0bd03fac..f3c013652d 100644 --- a/plugins/nomad-backend/package.json +++ b/plugins/nomad-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad-backend", - "version": "0.1.9-next.0", + "version": "0.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad/CHANGELOG.md b/plugins/nomad/CHANGELOG.md index 6e88468d5f..81e09e6fbb 100644 --- a/plugins/nomad/CHANGELOG.md +++ b/plugins/nomad/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-nomad +## 0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.7-next.0 ### Patch Changes diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index d08551da04..62735fe601 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad", - "version": "0.1.7-next.0", + "version": "0.1.7-next.1", "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 bf5857ed7a..4d1c1867e8 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-octopus-deploy +## 0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.2.8-next.0 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index 6949d1c035..62c08f0143 100644 --- a/plugins/octopus-deploy/package.json +++ b/plugins/octopus-deploy/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-octopus-deploy", - "version": "0.2.8-next.0", + "version": "0.2.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/opencost/CHANGELOG.md b/plugins/opencost/CHANGELOG.md index 8ef77dee1f..607403d1a9 100644 --- a/plugins/opencost/CHANGELOG.md +++ b/plugins/opencost/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-opencost +## 0.2.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.2.2-next.0 ### Patch Changes diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index a7f298ab19..c0843ed5d4 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-opencost", - "version": "0.2.2-next.0", + "version": "0.2.2-next.1", "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 f442dd89fd..414931cfd4 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-org-react +## 0.1.15-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 1d6e88a94f..36f343d755 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.15-next.0", + "version": "0.1.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index d29d37c94e..7d6be4deed 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-org +## 0.6.16-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.6.16-next.0 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 9ad92192b5..a829c8e9f5 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.16-next.0", + "version": "0.6.16-next.1", "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 8d00f36ada..8e7f282567 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-pagerduty +## 0.6.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-home-react@0.1.5-next.1 + ## 0.6.7-next.0 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 6ad44ac45b..3e01b9d874 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.6.7-next.0", + "version": "0.6.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index 23f65db9d7..61b0deffcb 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-periskop-backend +## 0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + ## 0.2.5-next.0 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index dc6da1c706..11409a4afd 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.2.5-next.0", + "version": "0.2.5-next.1", "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 6ad4fa1051..feaaac6499 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-periskop +## 0.1.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.24-next.0 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 8f7d424ac7..cc4c2d7076 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.24-next.0", + "version": "0.1.24-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md index e9ea97f2fc..132e1c9d3a 100644 --- a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md +++ b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-permission-backend-module-allow-all-policy +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/plugin-permission-common@0.7.9 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/permission-backend-module-policy-allow-all/package.json b/plugins/permission-backend-module-policy-allow-all/package.json index 048ebc8c4a..dcbcaef4e6 100644 --- a/plugins/permission-backend-module-policy-allow-all/package.json +++ b/plugins/permission-backend-module-policy-allow-all/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-backend-module-allow-all-policy", "description": "Allow all policy backend module for the permission plugin.", - "version": "0.1.4-next.0", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index c84ab82a94..6d54026c45 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-permission-backend +## 0.5.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + ## 0.5.30-next.0 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 70f2bcc3fd..d69231f45f 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.30-next.0", + "version": "0.5.30-next.1", "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 45fd417987..278dc32cb4 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-node +## 0.7.18-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + ## 0.7.18-next.0 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index ccdcd9b6b9..b43edb03e5 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.18-next.0", + "version": "0.7.18-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 0d147a9029..ab2b194dfb 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-playlist-backend +## 0.3.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-playlist-common@0.1.11 + ## 0.3.11-next.0 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 0173864dce..17779c76fb 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist-backend", - "version": "0.3.11-next.0", + "version": "0.3.11-next.1", "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 07a09f24dd..b9e9b8ccdb 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-playlist +## 0.1.18-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-permission-react@0.4.17-next.0 + - @backstage/plugin-playlist-common@0.1.11 + ## 0.1.18-next.0 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 0fbb73f48c..2bd6661c29 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.18-next.0", + "version": "0.1.18-next.1", "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 ce965487d9..712705cefa 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-proxy-backend +## 0.4.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + ## 0.4.5-next.0 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 77f68dd628..3e474935b4 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.4.5-next.0", + "version": "0.4.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/puppetdb/CHANGELOG.md b/plugins/puppetdb/CHANGELOG.md index 91059ae37e..dcc86c4220 100644 --- a/plugins/puppetdb/CHANGELOG.md +++ b/plugins/puppetdb/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-puppetdb +## 0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.9-next.0 ### Patch Changes diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index fdc460ffc6..52c8d3c8c6 100644 --- a/plugins/puppetdb/package.json +++ b/plugins/puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-puppetdb", "description": "Backstage plugin to visualize resource information and Puppet facts from PuppetDB.", - "version": "0.1.9-next.0", + "version": "0.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 3e427756d8..9f8d25ca79 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar-backend +## 0.1.52-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/config@1.1.1 + ## 0.1.52-next.0 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 0a8539fa81..cb7ac7bc2b 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.52-next.0", + "version": "0.1.52-next.1", "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 7d62bc1c6c..84a3db6af0 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-rollbar +## 0.4.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.4.26-next.0 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 4c19c02d27..7f10a1d0db 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.26-next.0", + "version": "0.4.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index e57d942c2b..4c27f15d4c 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.8-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index c18d1ae21c..77141b0859 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", - "version": "0.2.8-next.0", + "version": "0.2.8-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 8929694ace..5375d68cae 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.31-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index f46dac12a9..6ed0b5532f 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.31-next.0", + "version": "0.2.31-next.1", "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 c7fe774851..6d2a926141 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.2.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.2.10-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 7973fa4806..3d51c0b6fb 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.2.10-next.0", + "version": "0.2.10-next.1", "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 daa3a74d8d..eff0f8bd8d 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.24-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.4.24-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index b1da603d4e..8ec43770f6 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.24-next.0", + "version": "0.4.24-next.1", "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 9e0a389114..86f0a82b1f 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.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index abad17cda8..fe5b4c1bbe 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.15-next.0", + "version": "0.1.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index dc01bd58d0..c4b0c21f44 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.28-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + ## 0.2.28-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 63591cc05e..a3cdbdc23a 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.28-next.0", + "version": "0.2.28-next.1", "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 107b707183..392d8a2a4b 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-scaffolder-backend +## 1.19.0-next.1 + +### Patch Changes + +- 2be3922eb8: Add examples for `github:deployKey:create` scaffolder action & improve related tests +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/plugin-catalog-backend@1.15.0-next.1 + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.4-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-scaffolder-node@0.2.8-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + ## 1.19.0-next.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 430cdc84e1..87493ab1a3 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.19.0-next.0", + "version": "1.19.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 3e116696f3..f040d3c03e 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-common +## 1.4.3-next.1 + +### Patch Changes + +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/catalog-model@1.4.3 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + ## 1.4.3-next.0 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 123adc0956..7d69e8a91e 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-common", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", - "version": "1.4.3-next.0", + "version": "1.4.3-next.1", "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 1c5a99bff8..8a2d5d87e3 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-node +## 0.2.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.8-next.0 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index bb02ce31f4..cd15d484ff 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.2.8-next.0", + "version": "0.2.8-next.1", "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 ed16201173..0b25359795 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-scaffolder-react +## 1.6.0-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- 76d07da66a: Make it possible to define control buttons text (Back, Create, Review) per template +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + ## 1.6.0-next.0 ### Minor Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index f53c643710..ce10f49c2d 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.6.0-next.0", + "version": "1.6.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 8ee2a6638c..62541b0cad 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-scaffolder +## 1.16.0-next.1 + +### Patch Changes + +- 26e4d916d5: Title and description in RepoUrlPicker are now correctly displayed. +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-scaffolder-react@1.6.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-scaffolder-common@1.4.3-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-react@0.4.17-next.0 + ## 1.16.0-next.0 ### Minor Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index e5a29ae563..a653195c72 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.16.0-next.0", + "version": "1.16.0-next.1", "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 78f60eae4c..75649c02c3 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 0.1.11-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index 41face5383..2e24dc3d97 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.11-next.0", + "version": "0.1.11-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 47bc95fe4b..06b007e0d9 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.3.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/integration-aws-node@0.1.7 + - @backstage/plugin-search-common@1.2.7 + ## 1.3.10-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 838f226387..07e55f483b 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.3.10-next.0", + "version": "1.3.10-next.1", "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 ddf571771e..eec5bdf3ac 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.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-explore-common@0.0.2 + - @backstage/plugin-search-common@1.2.7 + ## 0.1.11-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index 9fedd97985..dd0690edbc 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.11-next.0", + "version": "0.1.11-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 fb14cb5beb..1db0061328 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.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + ## 0.5.16-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 774429b2a6..cda72a9008 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.16-next.0", + "version": "0.5.16-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md index 482f74f31f..8c16cf80fe 100644 --- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md +++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-stack-overflow-collator +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/search-backend-module-stack-overflow-collator/package.json b/plugins/search-backend-module-stack-overflow-collator/package.json index cc531219fa..aa562d3a76 100644 --- a/plugins/search-backend-module-stack-overflow-collator/package.json +++ b/plugins/search-backend-module-stack-overflow-collator/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-stack-overflow-collator", "description": "A module for the search backend that exports stack overflow 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-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index 0ede11b81c..bbac0122c4 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 0.1.11-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 9be4fa5246..67d849f095 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.11-next.0", + "version": "0.1.11-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 b6fc82c798..aff79ffe47 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.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 1.2.11-next.0 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index e0f07c15fb..8f9d940170 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.11-next.0", + "version": "1.2.11-next.1", "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 69305a8a7f..4e99a5432b 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search-backend +## 1.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/plugin-permission-node@0.7.18-next.1 + - @backstage/plugin-search-backend-node@1.2.11-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 1.4.7-next.0 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 84da308624..a7c686b9fe 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.4.7-next.0", + "version": "1.4.7-next.1", "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 49e259950c..c3143635f2 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-react +## 1.7.2-next.1 + +### Patch Changes + +- 77f009b35d: Internal updates to match changes in the experimental `@backstage/frontend-plugin-api`. +- a539643cba: Minor refactor of search bar analytics capture +- Updated dependencies + - @backstage/frontend-app-api@0.3.0-next.1 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.7 + ## 1.7.2-next.0 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 25ed360a89..f7fa97aacc 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.7.2-next.0", + "version": "1.7.2-next.1", "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 3251137a28..3dc4042e11 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-search +## 1.4.2-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.7 + ## 1.4.2-next.0 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 31dd51d8bc..3735459f17 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.4.2-next.0", + "version": "1.4.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index 78027d462a..08971d235b 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sentry +## 0.5.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.5.11-next.0 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index f570259201..0d87e99a9e 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.11-next.0", + "version": "0.5.11-next.1", "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 093dd70505..41f939b1fe 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-shortcuts +## 0.3.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + ## 0.3.16-next.0 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 6bd14faa1e..a5cf4ea65c 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.16-next.0", + "version": "0.3.16-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md index b5e03c7bc8..669714a953 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-sonarqube-backend +## 0.2.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.2.9-next.0 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 50fbbc590f..6fac4068b0 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.2.9-next.0", + "version": "0.2.9-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 18e618d42f..ee4151a971 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-sonarqube +## 0.7.8-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-sonarqube-react@0.1.10-next.0 + ## 0.7.8-next.0 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index eb00a9736a..6f7f7f421c 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.7.8-next.0", + "version": "0.7.8-next.1", "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 c98ccdbeb4..211e09db23 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.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.4.15-next.0 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 3a971fd613..5e8131c485 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.15-next.0", + "version": "0.4.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 33ede5165e..e4636a60cc 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-stack-overflow-backend +## 0.2.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.0-next.1 + - @backstage/config@1.1.1 + - @backstage/plugin-search-common@1.2.7 + ## 0.2.11-next.0 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index b397d39d75..f93378fe71 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-stack-overflow-backend", "description": "Deprecated, consider using @backstage/plugin-search-backend-module-stack-overflow-collator instead", - "version": "0.2.11-next.0", + "version": "0.2.11-next.1", "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 55a046bfad..a66e3feae6 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-stack-overflow +## 0.1.22-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-home-react@0.1.5-next.1 + - @backstage/plugin-search-common@1.2.7 + ## 0.1.22-next.0 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 51a1031e86..f7626adc5e 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.22-next.0", + "version": "0.1.22-next.1", "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 88736b62aa..1227c44d46 100644 --- a/plugins/stackstorm/CHANGELOG.md +++ b/plugins/stackstorm/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-stackstorm +## 0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.8-next.0 ### Patch Changes diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index bb86be6b13..6ff27b6fd0 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.8-next.0", + "version": "0.1.8-next.1", "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 25a5396f0a..200a98d0d6 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.39-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-tech-insights-common@0.2.12 + ## 0.1.39-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 45e7955366..d1a8ae40fa 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.39-next.0", + "version": "0.1.39-next.1", "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 dc3ce7355d..26e3f70441 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.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/plugin-tech-insights-node@0.4.13-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + ## 0.5.21-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index ab9fb19b22..a681601637 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.21-next.0", + "version": "0.5.21-next.1", "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 6e046eea3b..e136c546d5 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.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/config@1.1.1 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + ## 0.4.13-next.0 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 478125b16c..bb5c1f3f7a 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.13-next.0", + "version": "0.4.13-next.1", "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 1a19864fbb..59a4f7bd19 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-tech-insights +## 0.3.18-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-tech-insights-common@0.2.12 + ## 0.3.18-next.0 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index ff005c0581..30725579c2 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.18-next.0", + "version": "0.3.18-next.1", "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 b70e0607e1..6d78c3fd29 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-tech-radar +## 0.6.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + ## 0.6.10-next.0 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 63a416ae24..8cc93a269d 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.10-next.0", + "version": "0.6.10-next.1", "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 7cc7651156..0bd51fe5c7 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.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.15.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/plugin-techdocs@1.8.1-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/test-utils@1.4.5-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 1.0.23-next.0 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 874524528d..033d6d3a09 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.23-next.0", + "version": "1.0.23-next.1", "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 3d10ddb03c..fa54beba87 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-techdocs-backend +## 1.9.0-next.1 + +### Minor Changes + +- 67cff7b06f: Expose an extension point to set a custom build strategy. Also move `DocsBuildStrategy` type to `@backstage/plugin-techdocs-node` and deprecate `ShouldBuildParameters` type. + +### Patch Changes + +- 48a61bfdca: Fix potential memory leak by not creating a build log transport if not given via `RouterOptions`. +- Updated dependencies + - @backstage/plugin-techdocs-node@1.10.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.11-next.1 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-catalog-common@1.0.17 + - @backstage/plugin-permission-common@0.7.9 + - @backstage/plugin-search-common@1.2.7 + ## 1.8.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index ab1f4ab6f6..8b87f455f1 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.8.1-next.0", + "version": "1.9.0-next.1", "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 e151635876..674200059c 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.1.2-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 1.1.2-next.0 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index c67a4aa3a8..d3a2ef4de9 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.1.2-next.0", + "version": "1.1.2-next.1", "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 c10de03d91..d7f360aa25 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-techdocs-node +## 1.10.0-next.1 + +### Minor Changes + +- 67cff7b06f: Expose an extension point to set a custom build strategy. Also move `DocsBuildStrategy` type to `@backstage/plugin-techdocs-node` and deprecate `ShouldBuildParameters` type. + +### Patch Changes + +- e61a975f61: Switch to `@smithy/node-http-handler` instead of the `@aws-sdk/node-http-handler` +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/integration-aws-node@0.1.7 + - @backstage/plugin-search-common@1.2.7 + ## 1.9.1-next.0 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 956b9f15be..03f9409019 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.9.1-next.0", + "version": "1.10.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 2ed5c503f1..0fe8c02ea5 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-react +## 1.1.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/version-bridge@1.0.7-next.0 + ## 1.1.13-next.0 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index eaae848546..77b31ce5e8 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.13-next.0", + "version": "1.1.13-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 930997aac3..3b8c460e04 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-techdocs +## 1.8.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.7.2-next.0 + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/plugin-search-react@1.7.2-next.1 + - @backstage/integration-react@1.1.21-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/plugin-search-common@1.2.7 + - @backstage/plugin-techdocs-react@1.1.13-next.1 + ## 1.8.1-next.0 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index d3808c961f..4e789d320f 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.8.1-next.0", + "version": "1.8.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index a1ed125e60..230b4d37ea 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-todo-backend +## 0.3.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.5.0-next.1 + - @backstage/integration@1.7.2-next.0 + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-openapi-utils@0.1.0-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-client@1.4.5 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + ## 0.3.5-next.0 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 853e6f20e5..d5630e787d 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.3.5-next.0", + "version": "0.3.5-next.1", "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 11d42ec56a..bc84a17ec9 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.30-next.0 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index af49ab02cf..0f9ae2ac05 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.30-next.0", + "version": "0.2.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index 480574d082..cda748e89c 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings-backend +## 0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/plugin-auth-node@0.4.1-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/types@1.1.1 + ## 0.2.6-next.0 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index 4ea98078dd..0184cf75ef 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.2.6-next.0", + "version": "0.2.6-next.1", "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 6072182b2d..894680b62a 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-user-settings +## 0.7.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.3.0-next.1 + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-app-api@1.11.1-next.0 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + - @backstage/types@1.1.1 + ## 0.7.12-next.0 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 873cc9bf2a..1619b44e43 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.12-next.0", + "version": "0.7.12-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index 9554b05272..e2870d281e 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault-backend +## 0.4.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.9-next.1 + - @backstage/backend-tasks@0.5.12-next.1 + - @backstage/backend-plugin-api@0.6.7-next.1 + - @backstage/config@1.1.1 + - @backstage/errors@1.2.3 + - @backstage/plugin-vault-node@0.1.0-next.1 + ## 0.4.0-next.0 ### Minor Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 7f9b6a5345..4da2ede9f8 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.4.0-next.0", + "version": "0.4.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-node/CHANGELOG.md b/plugins/vault-node/CHANGELOG.md index 696347e9fc..aa325f2a8b 100644 --- a/plugins/vault-node/CHANGELOG.md +++ b/plugins/vault-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-vault-node +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.7-next.1 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/vault-node/package.json b/plugins/vault-node/package.json index 41eb2d8242..e3df8a266c 100644 --- a/plugins/vault-node/package.json +++ b/plugins/vault-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-node", "description": "Node.js library for the vault plugin", - "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/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index ce4fff2c41..1d708869ab 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault +## 0.1.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.0-next.1 + - @backstage/core-components@0.13.8-next.1 + - @backstage/catalog-model@1.4.3 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.1.21-next.0 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index d1c23fae1c..91c0e5d71d 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.21-next.0", + "version": "0.1.21-next.1", "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 b47889abf8..d45f26dae7 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-xcmetrics +## 0.2.45-next.1 + +### Patch Changes + +- 62b5922916: Internal theme type updates +- Updated dependencies + - @backstage/core-components@0.13.8-next.1 + - @backstage/core-plugin-api@1.8.0-next.0 + - @backstage/errors@1.2.3 + - @backstage/theme@0.4.4-next.0 + ## 0.2.45-next.0 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 7aeb570996..a2888aca2c 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.45-next.0", + "version": "0.2.45-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/yarn.lock b/yarn.lock index 7c3810e6b0..32c1d8fbb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4480,7 +4480,23 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@^1.7.1, @backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": +"@backstage/integration@npm:^1.7.1": + version: 1.7.1 + resolution: "@backstage/integration@npm:1.7.1" + dependencies: + "@azure/identity": ^3.2.1 + "@backstage/config": ^1.1.1 + "@octokit/auth-app": ^4.0.0 + "@octokit/rest": ^19.0.3 + cross-fetch: ^3.1.5 + git-url-parse: ^13.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + checksum: e36e91ee9d3f09a3f6e1dbbc2e41af2ecce49e83a06943f151a668422ec7afb07af4f1ee136f21618cc4ce8b59586473ec8fbb66aaf43c26a390f8e2eb26d597 + languageName: node + linkType: hard + +"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" dependencies: From ae30a9ae8cbedc6df69c0656bf7044d1c869db40 Mon Sep 17 00:00:00 2001 From: Andy Muldoon Date: Wed, 11 Oct 2023 12:08:54 +0100 Subject: [PATCH 126/131] Added description for publish:gerrit scaffolder actions Signed-off-by: Andy Muldoon --- .changeset/lovely-turtles-remain.md | 5 + .../builtin/publish/gerrit.examples.ts | 159 ++++++++++++++++++ .../actions/builtin/publish/gerrit.ts | 2 + 3 files changed, 166 insertions(+) create mode 100644 .changeset/lovely-turtles-remain.md create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts diff --git a/.changeset/lovely-turtles-remain.md b/.changeset/lovely-turtles-remain.md new file mode 100644 index 0000000000..711a397baa --- /dev/null +++ b/.changeset/lovely-turtles-remain.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Added description for publish:gerrit scaffolder actions diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts new file mode 100644 index 0000000000..6729b3602f --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts @@ -0,0 +1,159 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: + 'Initializes a Gerrit repository of contents in workspace and publish it to Gerrit with default configuration.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + }, + }, + ], + }), + }, + { + description: 'Initializes a Gerrit repository with a description.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + description: 'Initialize a gerrit repository', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with a default Branch, if not set defaults to master', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + defaultBranch: 'staging', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with an initial commit message, if not set defaults to initial commit', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitCommitMessage: 'Initial Commit Message', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with a repo Author Name, if not set defaults to Scaffolder', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitAuthorName: 'John Doe', + }, + }, + ], + }), + }, + { + description: 'Initializes a Gerrit repository with a repo Author Email', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitAuthorEmail: 'johndoe@email.com', + }, + }, + ], + }), + }, + { + description: + 'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + sourcePath: 'repository/', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with all proporties being set', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + description: 'Initialize a gerrit repository', + defaultBranch: 'staging', + gitCommitMessage: 'Initial Commit Message', + gitAuthorName: 'John Doe', + gitAuthorEmail: 'johndoe@email.com', + sourcePath: 'repository/', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts index 60a0cc4aae..67ed868c4c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts @@ -26,6 +26,7 @@ import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import { getRepoSourceDirectory, parseRepoUrl } from './util'; import fetch, { Response, RequestInit } from 'node-fetch'; import { initRepoAndPush } from '../helpers'; +import { examples } from './gerrit.examples'; const createGerritProject = async ( config: GerritIntegrationConfig, @@ -98,6 +99,7 @@ export function createPublishGerritAction(options: { id: 'publish:gerrit', description: 'Initializes a git repository of the content in the workspace, and publishes it to Gerrit.', + examples, schema: { input: { type: 'object', From 587c1990431c63eee29af7a08445d0e42709e6b9 Mon Sep 17 00:00:00 2001 From: Paul Cowan Date: Tue, 31 Oct 2023 21:29:52 +0000 Subject: [PATCH 127/131] fix dagda1 github link in OWNERS.md Signed-off-by: Paul Cowan --- OWNERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OWNERS.md b/OWNERS.md index 2ea263f3b4..b3f9d7bef9 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -129,7 +129,7 @@ Scope: The Scaffolder frontend and backend plugins, and related tooling. | Name | Organization | GitHub | Discord | | ------------------- | -------------- | ------------------------------------- | ---------------- | | Bogdan Nechyporenko | Bol.com | [acierto](https://github.com/acierto) | `bogdan_haarlem` | -| Paul Cowan | frontendrescue | [dagda1](https://github.com/dadga1) | `dagda1` | +| Paul Cowan | frontendrescue | [dagda1](https://github.com/dagda1) | `dagda1` | ## Sponsors From 57d3193b3d9d0f09d335053ca13d657db0d38a0a Mon Sep 17 00:00:00 2001 From: Vibhav Bobade Date: Sat, 2 Sep 2023 05:24:05 +0530 Subject: [PATCH 128/131] ci: upgrade uffizzi workflow to use clusters Signed-off-by: Vibhav Bobade --- .github/uffizzi/docker-compose.uffizzi.yml | 35 ---- .../uffizzi/k8s/manifests/backstage-crb.yaml | 12 ++ .../k8s/manifests/backstage-deploy.yaml | 37 ++++ .../k8s/manifests/backstage-ingress.yaml | 20 ++ .../uffizzi/k8s/manifests/backstage-sa.yaml | 5 + .../uffizzi/k8s/manifests/backstage-svc.yaml | 11 ++ .../uffizzi/k8s/manifests/kustomization.yaml | 12 ++ .github/uffizzi/k8s/manifests/pg-deploy.yaml | 31 +++ .github/uffizzi/k8s/manifests/pg-secret.yaml | 8 + .github/uffizzi/k8s/manifests/pg-svc.yaml | 9 + .github/uffizzi/k8s/manifests/pg-volume.yaml | 10 + .../uffizzi.production.app-config.yaml | 5 +- .github/workflows/uffizzi-build.yml | 26 +-- .github/workflows/uffizzi-preview.yaml | 182 +++++++++++++++--- 14 files changed, 331 insertions(+), 72 deletions(-) delete mode 100644 .github/uffizzi/docker-compose.uffizzi.yml create mode 100644 .github/uffizzi/k8s/manifests/backstage-crb.yaml create mode 100644 .github/uffizzi/k8s/manifests/backstage-deploy.yaml create mode 100644 .github/uffizzi/k8s/manifests/backstage-ingress.yaml create mode 100644 .github/uffizzi/k8s/manifests/backstage-sa.yaml create mode 100644 .github/uffizzi/k8s/manifests/backstage-svc.yaml create mode 100644 .github/uffizzi/k8s/manifests/kustomization.yaml create mode 100644 .github/uffizzi/k8s/manifests/pg-deploy.yaml create mode 100644 .github/uffizzi/k8s/manifests/pg-secret.yaml create mode 100644 .github/uffizzi/k8s/manifests/pg-svc.yaml create mode 100644 .github/uffizzi/k8s/manifests/pg-volume.yaml diff --git a/.github/uffizzi/docker-compose.uffizzi.yml b/.github/uffizzi/docker-compose.uffizzi.yml deleted file mode 100644 index f2e9bbeee6..0000000000 --- a/.github/uffizzi/docker-compose.uffizzi.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: '3' - -x-uffizzi: - ingress: - service: backstage - port: 7007 - -services: - backstage: - image: '${BACKSTAGE_IMAGE}' - - environment: - POSTGRES_HOST: localhost - POSTGRES_PORT: 5432 - POSTGRES_USER: postgres - POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv - REF_NAME: ${GITHUB_SHA} - NODE_ENV: production - deploy: - resources: - limits: - memory: 500M - entrypoint: '/bin/sh' - command: - - '-c' - - "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml" - - db: - image: postgres - environment: - POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv - deploy: - resources: - limits: - memory: 250M diff --git a/.github/uffizzi/k8s/manifests/backstage-crb.yaml b/.github/uffizzi/k8s/manifests/backstage-crb.yaml new file mode 100644 index 0000000000..a5dad3408a --- /dev/null +++ b/.github/uffizzi/k8s/manifests/backstage-crb.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: backstage-cluster-ro +subjects: + - namespace: backstage + kind: ServiceAccount + name: backstage-service-account +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:aggregate-to-view diff --git a/.github/uffizzi/k8s/manifests/backstage-deploy.yaml b/.github/uffizzi/k8s/manifests/backstage-deploy.yaml new file mode 100644 index 0000000000..9bf62e991a --- /dev/null +++ b/.github/uffizzi/k8s/manifests/backstage-deploy.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backstage +spec: + replicas: 1 + selector: + matchLabels: + app: backstage + template: + metadata: + labels: + app: backstage + spec: + serviceAccountName: backstage-service-account + containers: + - name: backstage + image: backstage + command: + - /bin/sh + args: + - '-c' + - "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 7007 + envFrom: + - secretRef: + name: postgres-secrets + env: + - name: POSTGRES_PORT + value: '5432' + - name: POSTGRES_HOST + value: 'postgres.default.svc.cluster.local' + - name: NODE_ENV + value: production diff --git a/.github/uffizzi/k8s/manifests/backstage-ingress.yaml b/.github/uffizzi/k8s/manifests/backstage-ingress.yaml new file mode 100644 index 0000000000..8a7f58c524 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/backstage-ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: backstage +spec: + ingressClassName: uffizzi + rules: + - host: backstage.example.com + http: + paths: + - backend: + service: + name: backstage + port: + number: 80 + path: / + pathType: Prefix + tls: + - hosts: + - backstage.example.com diff --git a/.github/uffizzi/k8s/manifests/backstage-sa.yaml b/.github/uffizzi/k8s/manifests/backstage-sa.yaml new file mode 100644 index 0000000000..db0b5bde38 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/backstage-sa.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: backstage-service-account + namespace: default diff --git a/.github/uffizzi/k8s/manifests/backstage-svc.yaml b/.github/uffizzi/k8s/manifests/backstage-svc.yaml new file mode 100644 index 0000000000..1f4abc79b4 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/backstage-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: backstage +spec: + selector: + app: backstage + ports: + - name: http + port: 80 + targetPort: http diff --git a/.github/uffizzi/k8s/manifests/kustomization.yaml b/.github/uffizzi/k8s/manifests/kustomization.yaml new file mode 100644 index 0000000000..d4db0e97b2 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - backstage-deploy.yaml + - backstage-crb.yaml + - backstage-ingress.yaml + - backstage-sa.yaml + - backstage-svc.yaml + - pg-svc.yaml + - pg-deploy.yaml + - pg-secret.yaml + - pg-volume.yaml diff --git a/.github/uffizzi/k8s/manifests/pg-deploy.yaml b/.github/uffizzi/k8s/manifests/pg-deploy.yaml new file mode 100644 index 0000000000..354acd8e87 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/pg-deploy.yaml @@ -0,0 +1,31 @@ +# kubernetes/postgres.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postgres +spec: + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:13.2-alpine + imagePullPolicy: 'IfNotPresent' + ports: + - containerPort: 5432 + envFrom: + - secretRef: + name: postgres-secrets + volumeMounts: + - mountPath: /var/lib/postgresql + name: postgresdb + volumes: + - name: postgresdb + persistentVolumeClaim: + claimName: postgres-storage-claim diff --git a/.github/uffizzi/k8s/manifests/pg-secret.yaml b/.github/uffizzi/k8s/manifests/pg-secret.yaml new file mode 100644 index 0000000000..28a31f7c53 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/pg-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: postgres-secrets +type: Opaque +data: + POSTGRES_USER: YmFja3N0YWdl + POSTGRES_PASSWORD: aHVudGVyMg== diff --git a/.github/uffizzi/k8s/manifests/pg-svc.yaml b/.github/uffizzi/k8s/manifests/pg-svc.yaml new file mode 100644 index 0000000000..ab7e192a65 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/pg-svc.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Service +metadata: + name: postgres +spec: + selector: + app: postgres + ports: + - port: 5432 diff --git a/.github/uffizzi/k8s/manifests/pg-volume.yaml b/.github/uffizzi/k8s/manifests/pg-volume.yaml new file mode 100644 index 0000000000..0dcb317e50 --- /dev/null +++ b/.github/uffizzi/k8s/manifests/pg-volume.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-storage-claim +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2G diff --git a/.github/uffizzi/uffizzi.production.app-config.yaml b/.github/uffizzi/uffizzi.production.app-config.yaml index 34f4c90f0b..fb6638295e 100644 --- a/.github/uffizzi/uffizzi.production.app-config.yaml +++ b/.github/uffizzi/uffizzi.production.app-config.yaml @@ -160,7 +160,10 @@ kubernetes: type: 'multiTenant' clusterLocatorMethods: - type: 'config' - clusters: [] + clusters: + - url: ${UFFIZZI_CLUSTER_APISERVER} + name: uffizzi + authProvider: 'serviceAccount' kafka: clientId: backstage diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index 910cff0873..75eeb370ee 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -12,7 +12,7 @@ jobs: build-backstage: env: NODE_OPTIONS: --max-old-space-size=4096 - UFFIZZI_URL: https://uffizzi.com + UFFIZZI_URL: https://app.uffizzi.com name: Build PR image runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }} @@ -72,14 +72,14 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: true + cache-from: type=gha + cache-to: type=gha,mode=max - render-compose-file: - name: Render Docker Compose File + render-kustomize: + name: Render Kustomize Manifests runs-on: ubuntu-latest needs: - build-backstage - outputs: - compose-file-cache-key: ${{ steps.hash.outputs.hash }} steps: - name: Harden Runner uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 @@ -90,16 +90,16 @@ jobs: uses: actions/checkout@v4.1.1 - name: Render Compose File run: | - BACKSTAGE_IMAGE=$(echo ${{ needs.build-backstage.outputs.tags }}) - export BACKSTAGE_IMAGE - # Render simple template from environment variables. - envsubst '$BACKSTAGE_IMAGE $GITHUB_SHA' < .github/uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml - cat docker-compose.rendered.yml - - name: Upload Rendered Compose File as Artifact - uses: actions/upload-artifact@v3.1.3 + # update image after the build above + cd ./.github/uffizzi/k8s/manifests + kustomize edit set image backstage=${{ needs.build-backstage.outputs.tags }} + kustomize build . > manifests.rendered.yml + cat manifests.rendered.yml + - name: Upload Rendered Manifests File as Artifact + uses: actions/upload-artifact@v3 with: name: preview-spec - path: docker-compose.rendered.yml + path: ./.github/uffizzi/k8s/manifests/manifests.rendered.yml retention-days: 2 - name: Upload PR Event as Artifact uses: actions/upload-artifact@v3.1.3 diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml index deebf356bf..1d13680b82 100644 --- a/.github/workflows/uffizzi-preview.yaml +++ b/.github/workflows/uffizzi-preview.yaml @@ -8,14 +8,15 @@ on: - completed jobs: - cache-compose-file: - name: Cache Compose File + cache-manifests-file: + name: Cache Manifests File runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} outputs: - compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} + manifests-cache-key: ${{ env.MANIFESTS_FILE_HASH }} git-ref: ${{ env.GIT_REF }} pr-number: ${{ env.PR_NUMBER }} + action: ${{ env.ACTION }} steps: - name: Harden Runner uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 @@ -56,23 +57,29 @@ jobs: cat event.json >> $GITHUB_ENV echo -e '\nEOF' >> $GITHUB_ENV - - name: Hash Rendered Compose File + - name: Hash Rendered Manifests File id: hash - # If the previous workflow was triggered by a PR close event, we will not have a compose file artifact. + # If the previous workflow was triggered by a PR close event, we will not have a manifests file artifact. if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} - run: echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV + run: | + ls + echo "MANIFESTS_FILE_HASH=$(md5sum manifests.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV - - name: Cache Rendered Compose File + - name: Cache Manifests File if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} uses: actions/cache@v3.3.2 with: - path: docker-compose.rendered.yml - key: ${{ env.COMPOSE_FILE_HASH }} + path: manifests.rendered.yml + key: ${{ env.MANIFESTS_FILE_HASH }} - name: Read PR Number From Event Object id: pr run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV + - name: Read Event Type from Event Object + id: action + run: echo "ACTION=${{ fromJSON(env.EVENT_JSON).action }}" >> $GITHUB_ENV + - name: Read Git Ref From Event Object id: ref run: echo "GIT_REF=${{ fromJSON(env.EVENT_JSON).pull_request.head.sha }}" >> $GITHUB_ENV @@ -82,24 +89,153 @@ jobs: run: | echo "PR number: ${{ env.PR_NUMBER }}" echo "Git Ref: ${{ env.GIT_REF }}" - echo "Compose file hash: ${{ env.COMPOSE_FILE_HASH }}" + echo "Manifests file hash: ${{ env.MANIFESTS_FILE_HASH }}" cat event.json deploy-uffizzi-preview: - name: Use Remote Workflow to Preview on Uffizzi - needs: - - cache-compose-file - if: ${{ github.event.workflow_run.conclusion == 'success' }} - uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2 - with: - # If this workflow was triggered by a PR close event, cache-key will be an empty string - # and this reusable workflow will delete the preview deployment. - compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }} - compose-file-cache-path: docker-compose.rendered.yml - git-ref: ${{ needs.cache-compose-file.outputs.git-ref }} - pr-number: ${{ needs.cache-compose-file.outputs.pr-number }} - server: https://app.uffizzi.com permissions: contents: read pull-requests: write id-token: write + name: Deploy to Uffizzi Virtual Cluster + needs: + - cache-manifests-file + if: ${{ github.event.workflow_run.conclusion == 'success' && needs.cache-manifests-file.outputs.action != 'closed' }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + # Identify comment to be updated + - name: Find comment for Ephemeral Environment + uses: peter-evans/find-comment@v2 + id: find-comment + with: + issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }} + comment-author: 'github-actions[bot]' + body-includes: pr-${{ needs.cache-manifests-file.outputs.pr-number }} + direction: last + + # Create/Update comment with action deployment status + - name: Create or Update Comment with Deployment Notification + id: notification + uses: peter-evans/create-or-update-comment@v2 + with: + comment-id: ${{ steps.find-comment.outputs.comment-id }} + issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }} + body: | + ## Uffizzi Ephemeral Environment - Virtual Cluster + + :cloud: deploying ... + + :gear: Updating now by workflow run [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}). + + Download the Uffizzi CLI to interact with the upcoming virtual cluster + https://docs.uffizzi.com/install + edit-mode: replace + + - name: Connect to Virtual Cluster + uses: UffizziCloud/cluster-action@main + with: + cluster-name: pr-${{ needs.cache-manifests-file.outputs.pr-number }} + server: https://app.uffizzi.com + + - name: Fetch cached Manifests File + id: cache + # if: ${{ contains(fromJSON('["create", "update"]'), env.UFFIZZI_ACTION) }} + uses: actions/cache@v3 + with: + path: manifests.rendered.yml + key: ${{ needs.cache-manifests-file.outputs.manifests-cache-key }} + + - name: Kustomize and Apply Manifests + id: prev + run: | + # Apply kustomized manifests to virtual cluster. + export KUBECONFIG=`pwd`/kubeconfig + kubectl apply -f manifests.rendered.yml --kubeconfig ./kubeconfig + # Allow uffizzi to sync the resources + sleep 10 + # Get the hostnames assigned by uffizzi + export BACKSTAGE_HOST=$(kubectl get ingress backstage --kubeconfig kubeconfig -o json | jq '.spec.rules[0].host' | tr -d '"') + export UFFIZZI_CLUSTER_APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ") + # Patch backstage deployment to use UFFIZZI_URL + kubectl patch deployment backstage --kubeconfig kubeconfig -p '{"spec": {"template": {"spec": {"containers": [{"name": "backstage", "args":["-c", "APP_CONFIG_app_baseUrl='https://${BACKSTAGE_HOST}' APP_CONFIG_backend_baseUrl='https://${BACKSTAGE_HOST}' APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"], "env": [{"name": "UFFIZZI_URL", "value": "'https://${BACKSTAGE_HOST}'"}, {"name": "UFFIZZI_CLUSTER_APISERVER", "value": "'${UFFIZZI_CLUSTER_APISERVER}'"}, {"name": "GITHUB_SHA", "value": "'${GITHUB_SHA}'"}, {"name": "REF_NAME", "value": "'${{ needs.cache-manifests-file.outputs.git-ref }}'"}]}]}}}}' + if [[ ${RUNNER_DEBUG} == 1 ]]; then + kubectl get all --kubeconfig ./kubeconfig + fi + echo "backstage_url=${BACKSTAGE_HOST}" >> $GITHUB_OUTPUT + echo "Access the \`backstage\` endpoint at [\`${BACKSTAGE_HOST}\`](http://${BACKSTAGE_HOST})" >> $GITHUB_STEP_SUMMARY + + - name: Create or Update Comment with Deployment URL + uses: peter-evans/create-or-update-comment@v2 + with: + comment-id: ${{ steps.notification.outputs.comment-id }} + issue-number: ${{ github.event.pull_request.number }} + body: | + ## Uffizzi Ephemeral Environment - Virtual Cluster + + Your cluster `pr-${{ needs.cache-manifests-file.outputs.pr-number }}` was successfully created. Learn more about [Uffizzi virtual clusters](https://docs.uffizzi.com/topics/virtual-clusters) + To connect to this cluster, follow these steps: + + 1. Download and install the Uffizzi CLI from https://docs.uffizzi.com/install + 2. Login to Uffizzi, then select the `backstage` account and project: + ``` + uffizzi login + ``` + + ``` + Select an account: + ‣ ${{ github.event.repository.name }} + jdoe + + Select a project or create a new project: + ‣ ${{ github.event.repository.name }}-6783521 + ``` + 3. Update your kubeconfig: `uffizzi cluster update-kubeconfig pr-${{ needs.cache-manifests-file.outputs.pr-number }} --kubeconfig=[PATH_TO_KUBECONFIG]` + After updating your kubeconfig, you can manage your cluster with `kubectl`, `kustomize`, `helm`, and other tools that use kubeconfig files: `kubectl get namespace --kubeconfig [PATH_TO_KUBECONFIG]` + + + Access the `backstage` endpoint at [`https://${{ steps.prev.outputs.backstage_url }}`](https://${{ steps.prev.outputs.backstage_url }}) + + edit-mode: replace + + delete-uffizzi-preview: + permissions: + contents: read + pull-requests: write + id-token: write + name: Delete the Uffizzi Virtual Cluster + needs: + - cache-manifests-file + if: ${{ needs.cache-manifests-file.outputs.action == 'closed' }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Delete Virtual Cluster + uses: UffizziCloud/cluster-action@main + with: + cluster-name: pr-${{ needs.cache-manifests-file.outputs.pr-number }} + server: https://app.uffizzi.com + action: delete + + # Identify comment to be updated + - name: Find comment for Ephemeral Environment + uses: peter-evans/find-comment@v2 + id: find-comment + with: + issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }} + comment-author: 'github-actions[bot]' + body-includes: pr-${{ needs.cache-manifests-file.outputs.pr-number }} + direction: last + + - name: Update Comment with Deletion + uses: peter-evans/create-or-update-comment@v2 + with: + comment-id: ${{ steps.find-comment.outputs.comment-id }} + issue-number: ${{ needs.cache-manifests-file.outputs.pr-number }} + body: | + Uffizzi Cluster `pr-${{ needs.cache-manifests-file.outputs.pr-number }}` was deleted. + edit-mode: replace From 6192093e21bab602c428da1b497704712998bd54 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:10:42 +0000 Subject: [PATCH 129/131] chore(deps): update dependency @types/swagger-ui-react to v4.18.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 0a8a00ef9f..7fe8853e37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19813,11 +19813,11 @@ __metadata: linkType: hard "@types/swagger-ui-react@npm:^4.18.0": - version: 4.18.1 - resolution: "@types/swagger-ui-react@npm:4.18.1" + version: 4.18.2 + resolution: "@types/swagger-ui-react@npm:4.18.2" dependencies: "@types/react": "*" - checksum: 33c5e9aeccaf6591bd8f59489f8ef50b941daf491f08ba00cb1f26140a756b00ecd6a84fcf0171cdb068134e52c3877bdac571357e12f224ae7fc5979aeedb6f + checksum: 71c5659f6d4bd75da20923aea551ecf013f4bc5af25cb03824ae6a8d324704ca413a0031c0488107c748000ff919b2179a36f34ab8d47e3519617217a95de039 languageName: node linkType: hard From 165db53cbec8661b7d839570cdb01c8e213d867c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:11:14 +0000 Subject: [PATCH 130/131] chore(deps): update dependency @types/tar to v6.1.7 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 0a8a00ef9f..9436e31683 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19822,12 +19822,12 @@ __metadata: linkType: hard "@types/tar@npm:^6.1.1": - version: 6.1.6 - resolution: "@types/tar@npm:6.1.6" + version: 6.1.7 + resolution: "@types/tar@npm:6.1.7" dependencies: "@types/node": "*" minipass: ^4.0.0 - checksum: d4bcb5a06d8e4b6eac564f22274d72f6a14c614eaf5f6c6c270f3a43c197da2797a7c707bc0377cd2e6d8c429f277e1ca446121546c86021e9782034a306eafb + checksum: 74a346c86eb9fd1d7849b675e019ec784accf2f4a2abedc607e5449809f5205db6c31a7c0e7ac34e1ae5beabc3d260dbf82d7829398791397b971a56de4028b9 languageName: node linkType: hard From 9d52c0831d9912db1e28cb4d93f125296ffa6034 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 Nov 2023 15:14:04 +0000 Subject: [PATCH 131/131] chore(deps): update dependency @types/xml2js to v0.4.13 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 9df6b9bcd3..f98a71a3b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19970,11 +19970,11 @@ __metadata: linkType: hard "@types/xml2js@npm:*, @types/xml2js@npm:^0.4.7": - version: 0.4.12 - resolution: "@types/xml2js@npm:0.4.12" + version: 0.4.13 + resolution: "@types/xml2js@npm:0.4.13" dependencies: "@types/node": "*" - checksum: 6197f6d51d70ba7e6d3169ef6d58adacfeddeb2d8cfe4d2bb24eda86223c7dd77c82896c3aa3c636b3b1442cebc6d05959d1e65fa206dac2caeb99aa2c943716 + checksum: 757355c1867b4bd70a85cacac91ed771d172f269469b92b3bace2c7e91f9848ea3efa2be2901f831e2a632efbf6d128208a4495ec8a5fed9f7c12f2c9ec4d929 languageName: node linkType: hard