From 2507e3d0db9b6c05c6f9bfae94b3f787d9825338 Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Tue, 19 Mar 2024 23:37:32 +0100 Subject: [PATCH 001/153] bep: add user notification settings plan Signed-off-by: Heikki Hellgren --- beps/0001-notifications-system/README.md | 31 +++++++++++++++++- .../UserNotificationSettings.png | Bin 0 -> 29081 bytes 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 beps/0001-notifications-system/UserNotificationSettings.png diff --git a/beps/0001-notifications-system/README.md b/beps/0001-notifications-system/README.md index 66e23542dc..bd3a097dea 100644 --- a/beps/0001-notifications-system/README.md +++ b/beps/0001-notifications-system/README.md @@ -380,10 +380,39 @@ interface SignalApi { - Render dynamic values with various different React elements such as the `EntityRefLink` for entity references (for example `{{ user:default/john.doe }}`) in the notification payload - Handle `link` values that use route references. For example instead hard-coding link to `/catalog/default/component/artist-web` it should be possible to use `catalogPlugin.catalogEntity` route reference as a link of the notification. This should also allow using parameters to be passed to the route reference. Links to external systems are still supported. - Add support for `analyticsApi` to notification actions like marking notifications done, saved or opening links in the notifications -- Add support for user settings to control how notifications are shown to the user and which notifications user wants to receive. This should also include support for different `NotificationProcessor`s that can send notification to external systems - Add a sound to be played when notification is received - Add i18n internationalization support for the notification payload +### User specific notification settings + +To allow the users more fine-grained control of notifications, user must have an option to unsubscribe from specific origins, topics and channels. + +By default, all notifications are enabled for the user in all notification channels. Frontend plugin provides an user interface to change these settings for example as described in the following image: + +![user notification settings UI example](./UserNotificationSettings.png) + +Each notification processor with `send` functionality will be listed as a separate channel among the Backstage internal notification channel `Web`. For this, each notification processor must implement a function to get a human readable name to be rendered in the frontend. + +User must be able to save these settings to the notification database, and they are be checked each time a new notification is sent to the user. + +Disabling a notification from specific origin or topic in the `Web` channel will not remove the old notifications being visible in the frontend from that source but instead, it only prevents new notifications being sent. + +For performance reasons the notification settings will ignore all broadcast notifications and those will be sent to all users despite their origin or channel. + +```ts +export type NotificationSetting = { + origin: string; + topic?: string; + channels: Record; +}; + +export type UserNotificationSettings = { + settings: NotificationSetting[]; +}; +``` + +The backend plugin returns user notification settings for all known origins, topics and channels it knows of. As new origins, topics and channels will get added, also the notification settings list will get longer. This allows an easy way to add new notification origins, topics and channels without need to change the notification plugin. If the user is missing notification setting from specific origin/topic/channel, the backend considers it as enabled. + ## Release Plan The notification and signal plugins are released as two new plugins in the Backstage ecosystem. They will both start out in an experimental state. diff --git a/beps/0001-notifications-system/UserNotificationSettings.png b/beps/0001-notifications-system/UserNotificationSettings.png new file mode 100644 index 0000000000000000000000000000000000000000..de9a5881b43a47c0c28778eae6c609ec20d659c0 GIT binary patch literal 29081 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 p`T31&oQq26@WiBJWWGD@t=-~1<4^wx-nF Date: Wed, 10 Apr 2024 23:04:50 +0200 Subject: [PATCH 002/153] add more known styles Signed-off-by: Juan Pablo Garcia Ripa --- .../no-top-level-material-ui-4-imports.js | 18 +++++++++++++++++- .../no-top-level-material-ui-4-imports.test.ts | 8 +++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js index 77adcad215..fa13c0367e 100644 --- a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js +++ b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js @@ -27,7 +27,23 @@ */ const KNOWN_STYLES = [ - // TODO: add exports from colorManipulator and transitions + // colorManipulator + 'hexToRgb', + 'rgbToHex', + 'hslToRgb', + 'decomposeColor', + 'recomposeColor', + 'getContrastRatio', + 'getLuminance', + 'emphasize', + 'fade', + 'alpha', + 'darken', + 'lighten', + // transitions + 'easing', + 'duration', + // styles 'createTheme', 'unstable_createMuiStrictModeTheme', 'createMuiTheme', diff --git a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts index 2d29c2f9e9..0fe8b09364 100644 --- a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts +++ b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts @@ -93,6 +93,8 @@ import SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';`, ThemeProvider, WithStyles, Tooltip as MaterialTooltip, + alpha, + easing } from '@material-ui/core';`, errors: [{ messageId: 'topLevelImport' }], output: `import Box from '@material-ui/core/Box'; @@ -101,7 +103,7 @@ import DialogContent from '@material-ui/core/DialogContent'; import DialogTitle from '@material-ui/core/DialogTitle'; import Grid from '@material-ui/core/Grid'; import MaterialTooltip from '@material-ui/core/Tooltip'; -import { makeStyles, ThemeProvider, WithStyles } from '@material-ui/core/styles';`, +import { makeStyles, ThemeProvider, WithStyles, alpha, easing } from '@material-ui/core/styles';`, }, { code: `import { Box, Button, makeStyles } from '@material-ui/core';`, @@ -111,11 +113,11 @@ import Button from '@material-ui/core/Button'; import { makeStyles } from '@material-ui/core/styles';`, }, { - code: `import { Paper, Typography, styled, withStyles } from '@material-ui/core';`, + code: `import { Paper, Typography, styled, withStyles, alpha, duration} from '@material-ui/core';`, errors: [{ messageId: 'topLevelImport' }], output: `import Paper from '@material-ui/core/Paper'; import Typography from '@material-ui/core/Typography'; -import { styled, withStyles } from '@material-ui/core/styles';`, +import { styled, withStyles, alpha, duration } from '@material-ui/core/styles';`, }, { code: `import { styled } from '@material-ui/core';`, From c56cfd89906d28a40e43737a7f1cde386f162e3e Mon Sep 17 00:00:00 2001 From: Juan Pablo Garcia Ripa Date: Wed, 10 Apr 2024 23:09:21 +0200 Subject: [PATCH 003/153] remove harcoded module Signed-off-by: Juan Pablo Garcia Ripa --- .../rules/no-top-level-material-ui-4-imports.js | 8 ++++---- .../src/no-top-level-material-ui-4-imports.test.ts | 7 +++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js index fa13c0367e..adf04492b4 100644 --- a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js +++ b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js @@ -204,7 +204,7 @@ module.exports = { if (specifier.emitProp && !specifier.emitComponent) { const replacement = `import { ${getNamedImportValue( specifier, - )} } from '@material-ui/core/${specifier.componentValue}';`; + )} } from '${node.source.value}/${specifier.componentValue}';`; replacements.push(replacement); } @@ -213,9 +213,9 @@ module.exports = { replacements.push( `import ${ specifier.componentAlias ?? specifier.componentValue - }, { ${getNamedImportValue( - specifier, - )} } from '@material-ui/core/${specifier.componentValue}';`, + }, { ${getNamedImportValue(specifier)} } from '${ + node.source.value + }/${specifier.componentValue}';`, ); } } diff --git a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts index 0fe8b09364..fdde615c3e 100644 --- a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts +++ b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts @@ -154,5 +154,12 @@ import { styled, withStyles, alpha, duration } from '@material-ui/core/styles';` errors: [{ messageId: 'topLevelImport' }], output: `import { styled as s } from '@material-ui/core/styles';`, }, + { + code: `import { TreeItem, TreeItemProps, TreeView, AlertProps } from '@material-ui/lab';`, + errors: [{ messageId: 'topLevelImport' }], + output: `import TreeItem, { TreeItemProps } from '@material-ui/lab/TreeItem'; +import TreeView from '@material-ui/lab/TreeView'; +import { AlertProps } from '@material-ui/lab/Alert';`, + }, ], }); From d76cb295d4018bd1fb0a4667dd45de011429d5fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Apr 2024 20:36:23 +0000 Subject: [PATCH 004/153] chore(deps): update dependency ts-morph to v22 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .changeset/renovate-228c530.md | 5 ++++ plugins/bitbucket-cloud-common/package.json | 2 +- yarn.lock | 30 ++++++++++----------- 3 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 .changeset/renovate-228c530.md diff --git a/.changeset/renovate-228c530.md b/.changeset/renovate-228c530.md new file mode 100644 index 0000000000..e1838b3481 --- /dev/null +++ b/.changeset/renovate-228c530.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bitbucket-cloud-common': patch +--- + +Updated dependency `ts-morph` to `^22.0.0`. diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 12bf713f11..4935aa3347 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -44,6 +44,6 @@ "@backstage/cli": "workspace:^", "@openapitools/openapi-generator-cli": "^2.4.26", "msw": "^1.0.0", - "ts-morph": "^21.0.0" + "ts-morph": "^22.0.0" } } diff --git a/yarn.lock b/yarn.lock index 6420fa6e3a..f59e37375c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5389,7 +5389,7 @@ __metadata: "@openapitools/openapi-generator-cli": ^2.4.26 cross-fetch: ^4.0.0 msw: ^1.0.0 - ts-morph: ^21.0.0 + ts-morph: ^22.0.0 languageName: unknown linkType: soft @@ -18188,15 +18188,15 @@ __metadata: languageName: node linkType: hard -"@ts-morph/common@npm:~0.22.0": - version: 0.22.0 - resolution: "@ts-morph/common@npm:0.22.0" +"@ts-morph/common@npm:~0.23.0": + version: 0.23.0 + resolution: "@ts-morph/common@npm:0.23.0" dependencies: fast-glob: ^3.3.2 minimatch: ^9.0.3 mkdirp: ^3.0.1 path-browserify: ^1.0.1 - checksum: e549facfff2a68eeef4e3e2c4183e7216a02b57e62cdfe60ca15d5fdee24770bd3b5b6d1a0388cfce7b4dfaeb0ebe31ffa40585e36b9fb7948aea8081fa73769 + checksum: 96463742ec1114900901ded8aecc2c9664b20119454a56c896042e6a5e5b153af1d986467362d737ed0130506aeac9655731922dc8c4e851a16f9c1a8a8099b4 languageName: node linkType: hard @@ -23566,10 +23566,10 @@ __metadata: languageName: node linkType: hard -"code-block-writer@npm:^12.0.0": - version: 12.0.0 - resolution: "code-block-writer@npm:12.0.0" - checksum: 9f6505a4d668c9131c6f3f686359079439e66d5f50c236614d52fcfa53aeb0bc615b2c6c64ef05b5511e3b0433ccfd9f7756ad40eb3b9298af6a7d791ab1981d +"code-block-writer@npm:^13.0.1": + version: 13.0.1 + resolution: "code-block-writer@npm:13.0.1" + checksum: 678b740d1723c7cc3c5addcbc1a91d9a7a3f033510eb8e0639154fcaae456c80630dbd40d16aefdffaf3edb5ffb352d7d46f195f69c8be692c4d7debb1dc7933 languageName: node linkType: hard @@ -44024,13 +44024,13 @@ __metadata: languageName: node linkType: hard -"ts-morph@npm:^21.0.0": - version: 21.0.1 - resolution: "ts-morph@npm:21.0.1" +"ts-morph@npm:^22.0.0": + version: 22.0.0 + resolution: "ts-morph@npm:22.0.0" dependencies: - "@ts-morph/common": ~0.22.0 - code-block-writer: ^12.0.0 - checksum: f8e6acd4cdb2842af47ccf4e8900dc3f230f20c3b0d28e1e8b58c395b0a16d7b3e03ef56f29da3fdb861c50e22eb52524e0fc4bfca0fde8448f81b8f4f6aa157 + "@ts-morph/common": ~0.23.0 + code-block-writer: ^13.0.1 + checksum: 7bf0ec8cc9ab2a4ce528ec249634db315caa01b5783259484fd91ac0dae2f05b94d9c53ba236939fad2b8ab882e7fce1c82a689ab7c9a4a9dcec5c1160d77264 languageName: node linkType: hard From 9b7dfe7ea98bc6bd30daaa511b96e47b08c36db0 Mon Sep 17 00:00:00 2001 From: Kiss Miklos Date: Wed, 17 Apr 2024 17:04:13 +0200 Subject: [PATCH 005/153] improve TechDocsSearch Signed-off-by: Kiss Miklos --- plugins/techdocs/src/search/components/TechDocsSearch.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/search/components/TechDocsSearch.tsx b/plugins/techdocs/src/search/components/TechDocsSearch.tsx index 665f99c1bb..ce77d547db 100644 --- a/plugins/techdocs/src/search/components/TechDocsSearch.tsx +++ b/plugins/techdocs/src/search/components/TechDocsSearch.tsx @@ -63,6 +63,7 @@ const TechDocsSearchBar = (props: TechDocsSearchProps) => { const navigate = useNavigate(); const { setFilters, + term, result: { loading, value: searchVal }, } = useSearch(); const [options, setOptions] = useState([]); @@ -109,7 +110,7 @@ const TechDocsSearchBar = (props: TechDocsSearchProps) => { ''} filterOptions={x => { return x; // This is needed to get renderOption to be called after options change. Bug in material-ui? @@ -117,7 +118,7 @@ const TechDocsSearchBar = (props: TechDocsSearchProps) => { onClose={() => { setOpen(false); }} - onFocus={() => { + onOpen={() => { setOpen(true); }} onChange={handleSelection} From 1256d8813d3fc5ad0eca36d78b66825ca6c48b1e Mon Sep 17 00:00:00 2001 From: Kiss Miklos Date: Wed, 17 Apr 2024 18:37:35 +0200 Subject: [PATCH 006/153] add changeset Signed-off-by: Kiss Miklos --- .changeset/slimy-fans-raise.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/slimy-fans-raise.md diff --git a/.changeset/slimy-fans-raise.md b/.changeset/slimy-fans-raise.md new file mode 100644 index 0000000000..782ef4bc82 --- /dev/null +++ b/.changeset/slimy-fans-raise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Fix weird opening behaviour of the component. From 88191bb54ebf9e118f3c5fbbd2a7ab7b1e669bd6 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Wed, 17 Apr 2024 17:39:41 -0300 Subject: [PATCH 007/153] bugfix: Proper error thrown in plugin-azure-devops-backend when gitRepository is not found. Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/three-sheep-remember.md | 5 +++ .../src/api/AzureDevOpsApi.test.ts | 37 +++++++++++++++++++ .../src/api/AzureDevOpsApi.ts | 20 ++++++++++ 3 files changed, 62 insertions(+) create mode 100644 .changeset/three-sheep-remember.md diff --git a/.changeset/three-sheep-remember.md b/.changeset/three-sheep-remember.md new file mode 100644 index 0000000000..51ffc8e3db --- /dev/null +++ b/.changeset/three-sheep-remember.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-azure-devops-backend': minor +--- + +Fixed bug in plugin-azure-devops-backend where proper error was not thrown when gitRepository was not found. diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts index 174c5ff6cd..a056beee02 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts @@ -465,6 +465,43 @@ describe('AzureDevOpsApi', () => { ]); }); + it('should throw error when gitRepository is undefined', async () => { + const mockApi = { + getGitApi: jest.fn().mockReturnValue({}), + serverUrl: 'serverUrl', + }; + + (WebApi as unknown as jest.Mock).mockImplementation(() => mockApi); + + const api = AzureDevOpsApi.fromConfig(mockConfig, { + logger: mockLogger, + urlReader: mockUrlReader, + }); + + const pullRequestOptions: PullRequestOptions = { + top: 10, + status: PullRequestStatus.Active, + }; + + api.getGitRepository = jest.fn().mockResolvedValue(undefined); + + const temp = async () => { + try { + await api.getPullRequests('project', 'repo', pullRequestOptions); + return null; + } catch (error) { + return error; + } + }; + + const error = await temp(); + + expect(error).toHaveProperty( + 'message', + 'No repository found for Project "project" with Repository "repo" on host "undefined" under organization "undefined".', + ); + }); + it('should get build definitions', async () => { const mockBuilds: Build[] = [ { diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 4ed54e63eb..468d6a9d88 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -231,6 +231,11 @@ export class AzureDevOpsApi { host, org, ); + if (!gitRepository) { + throw new Error( + `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, + ); + } const buildList = await this.getBuildList( projectName, gitRepository.id as string, @@ -262,6 +267,11 @@ export class AzureDevOpsApi { host, org, ); + if (!gitRepository) { + throw new Error( + `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, + ); + } const webApi = await this.getWebApi(host, org); const client = await webApi.getGitApi(); const tagRefs: GitRef[] = await client.getRefs( @@ -304,6 +314,11 @@ export class AzureDevOpsApi { host, org, ); + if (!gitRepository) { + throw new Error( + `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, + ); + } const webApi = await this.getWebApi(host, org); const client = await webApi.getGitApi(); const searchCriteria: GitPullRequestSearchCriteria = { @@ -514,6 +529,11 @@ export class AzureDevOpsApi { host, org, ); + if (!gitRepository) { + throw new Error( + `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, + ); + } repoId = gitRepository.id; } From dbde8c0d6fa8d5937faad7bb347c4ab5440143b0 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Fri, 19 Apr 2024 09:46:44 -0300 Subject: [PATCH 008/153] feat: EntityListComponent now uses Catalog Presentation API Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- plugins/catalog-import/package.json | 1 + .../EntityListComponent.tsx | 43 ++++-- .../StepPrepareSelectLocations.test.tsx | 126 ++++++++++++------ 3 files changed, 118 insertions(+), 52 deletions(-) diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 67215f6a74..8a882206a3 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -78,6 +78,7 @@ "@backstage/cli": "workspace:^", "@backstage/core-app-api": "workspace:^", "@backstage/dev-utils": "workspace:^", + "@backstage/plugin-catalog": "workspace:^", "@backstage/test-utils": "workspace:^", "@testing-library/dom": "^10.0.0", "@testing-library/jest-dom": "^6.0.0", diff --git a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx index ef57fad204..9c4af562e5 100644 --- a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx +++ b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx @@ -14,11 +14,15 @@ * limitations under the License. */ -import { Entity, CompoundEntityRef } from '@backstage/catalog-model'; -import { useApp } from '@backstage/core-plugin-api'; +import { + Entity, + CompoundEntityRef, + stringifyEntityRef, +} from '@backstage/catalog-model'; +import { useApi, useApp } from '@backstage/core-plugin-api'; import { EntityRefLink, - humanizeEntityRef, + entityPresentationApiRef, } from '@backstage/plugin-catalog-react'; import Collapse from '@material-ui/core/Collapse'; import IconButton from '@material-ui/core/IconButton'; @@ -38,12 +42,6 @@ const useStyles = makeStyles(theme => ({ }, })); -function sortEntities(entities: Array) { - return entities.sort((a, b) => - humanizeEntityRef(a).localeCompare(humanizeEntityRef(b)), - ); -} - /** * Props for {@link EntityListComponent}. * @@ -78,7 +76,7 @@ export const EntityListComponent = (props: EntityListComponentProps) => { const app = useApp(); const classes = useStyles(); - + const entityPresentationApi = useApi(entityPresentationApiRef); const [expandedUrls, setExpandedUrls] = useState([]); const handleClick = (url: string) => { @@ -87,6 +85,17 @@ export const EntityListComponent = (props: EntityListComponentProps) => { ); }; + function sortEntities(entities: Array) { + return entities.sort((a, b) => + entityPresentationApi + .forEntity(stringifyEntityRef(a)) + .snapshot.entityRef.localeCompare( + entityPresentationApi.forEntity(stringifyEntityRef(b)).snapshot + .entityRef, + ), + ); + } + return ( {firstListItem} @@ -129,7 +138,11 @@ export const EntityListComponent = (props: EntityListComponentProps) => { ); return ( { : {})} > {Icon && } - + ); })} diff --git a/plugins/catalog-import/src/components/StepPrepareSelectLocations/StepPrepareSelectLocations.test.tsx b/plugins/catalog-import/src/components/StepPrepareSelectLocations/StepPrepareSelectLocations.test.tsx index b5efd3fbbf..e5a4174859 100644 --- a/plugins/catalog-import/src/components/StepPrepareSelectLocations/StepPrepareSelectLocations.test.tsx +++ b/plugins/catalog-import/src/components/StepPrepareSelectLocations/StepPrepareSelectLocations.test.tsx @@ -14,14 +14,22 @@ * limitations under the License. */ -import { renderInTestApp } from '@backstage/test-utils'; +import { TestApiProvider, renderInTestApp } from '@backstage/test-utils'; import { act, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; import { AnalyzeResult } from '../../api'; import { StepPrepareSelectLocations } from './StepPrepareSelectLocations'; +import { + CatalogApi, + catalogApiRef, + entityPresentationApiRef, +} from '@backstage/plugin-catalog-react'; +import { DefaultEntityPresentationApi } from '@backstage/plugin-catalog'; +import { Entity } from '@backstage/catalog-model'; describe('', () => { + let entities: Entity[]; const analyzeResult = { type: 'locations', locations: [ @@ -53,17 +61,43 @@ describe('', () => { ], } as Extract; + const catalogApi: jest.Mocked = { + getLocationById: jest.fn(), + getEntityByName: jest.fn(), + getEntities: jest.fn(async () => ({ items: entities })), + addLocation: jest.fn(), + getLocationByRef: jest.fn(), + removeEntityByUid: jest.fn(), + } as any; + let Wrapper: React.ComponentType>; + beforeEach(() => { jest.resetAllMocks(); + catalogApi.getEntities.mockResolvedValue({ items: entities }); + Wrapper = ({ children }: { children?: React.ReactNode }) => ( + + {children} + + ); }); it('renders display locations to be added', async () => { await renderInTestApp( - undefined} - onGoBack={() => undefined} - />, + + undefined} + onGoBack={() => undefined} + /> + , ); expect(screen.getByText('url-1')).toBeInTheDocument(); @@ -96,11 +130,13 @@ describe('', () => { } as Extract; await renderInTestApp( - undefined} - onGoBack={() => undefined} - />, + + undefined} + onGoBack={() => undefined} + /> + , ); expect(screen.getByText(/my-target/)).toBeInTheDocument(); @@ -112,11 +148,13 @@ describe('', () => { it('should select and deselect all', async () => { await renderInTestApp( - undefined} - onGoBack={() => undefined} - />, + + undefined} + onGoBack={() => undefined} + /> + , ); const checkboxes = screen.getAllByRole('checkbox'); @@ -144,15 +182,17 @@ describe('', () => { it('should preselect prepared locations', async () => { await renderInTestApp( - undefined} - onGoBack={() => undefined} - />, + + undefined} + onGoBack={() => undefined} + /> + , ); const checkboxes = screen.getAllByRole('checkbox'); @@ -164,11 +204,13 @@ describe('', () => { it('should select items', async () => { await renderInTestApp( - undefined} - onGoBack={() => undefined} - />, + + undefined} + onGoBack={() => undefined} + /> + , ); const checkboxes = screen.getAllByRole('checkbox'); @@ -193,11 +235,13 @@ describe('', () => { const onGoBack = jest.fn(); await renderInTestApp( - undefined} - onGoBack={onGoBack} - />, + + undefined} + onGoBack={onGoBack} + /> + , ); await act(async () => { @@ -211,11 +255,13 @@ describe('', () => { const onPrepare = jest.fn(); await renderInTestApp( - undefined} - />, + + undefined} + /> + , ); const checkboxes = screen.getAllByRole('checkbox'); From 026c199ead6734043e805fecb62792197d9b152d Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 19 Apr 2024 20:30:15 +0530 Subject: [PATCH 009/153] removing react-text-truncate Signed-off-by: npiyush97 --- .changeset/strange-doors-glow.md | 5 +++ .../OverflowTooltip/OverflowTooltip.tsx | 34 +++++++++++-------- 2 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 .changeset/strange-doors-glow.md diff --git a/.changeset/strange-doors-glow.md b/.changeset/strange-doors-glow.md new file mode 100644 index 0000000000..71dcc375c0 --- /dev/null +++ b/.changeset/strange-doors-glow.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Removing react-text-truncate with css styles. diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index da489725e4..8585da1013 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ /* * Copyright 2020 The Backstage Authors * @@ -19,6 +20,7 @@ import Tooltip, { TooltipProps } from '@material-ui/core/Tooltip'; import React, { useState } from 'react'; import TextTruncate, { TextTruncateProps } from 'react-text-truncate'; import { useIsMounted } from '@react-hookz/web'; +import Typography from '@material-ui/core/Typography'; type Props = { text: TextTruncateProps['text']; @@ -35,33 +37,35 @@ const useStyles = makeStyles( container: { overflow: 'visible !important', }, + typo: { + // width: 200, + display: 'inline-block', + overflow: 'hidden', + whiteSpace: 'nowrap', + textOverflow: 'ellipsis', + }, }, { name: 'BackstageOverflowTooltip' }, ); export function OverflowTooltip(props: Props) { - const [hover, setHover] = useState(false); - const isMounted = useIsMounted(); + // const [hover, setHover] = useState(false); + // const isMounted = useIsMounted(); const classes = useStyles(); - - const handleToggled = (truncated: boolean) => { - if (isMounted()) { - setHover(truncated); - } - }; + console.log(classes); + // const handleToggled = (truncated: boolean) => { + // if (isMounted()) { + // setHover(truncated); + // } + // }; return ( - + {props.text} ); } From ad0ee563836559f34963f2ac7639aca1cf1679ad Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 19 Apr 2024 20:56:19 +0530 Subject: [PATCH 010/153] little cleanup Signed-off-by: npiyush97 --- .../OverflowTooltip/OverflowTooltip.tsx | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index 8585da1013..b7a33f97fc 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -17,15 +17,11 @@ import { makeStyles } from '@material-ui/core/styles'; import Tooltip, { TooltipProps } from '@material-ui/core/Tooltip'; -import React, { useState } from 'react'; -import TextTruncate, { TextTruncateProps } from 'react-text-truncate'; -import { useIsMounted } from '@react-hookz/web'; +import React from 'react'; import Typography from '@material-ui/core/Typography'; type Props = { - text: TextTruncateProps['text']; - line?: TextTruncateProps['line']; - element?: TextTruncateProps['element']; + text: string; title?: TooltipProps['title']; placement?: TooltipProps['placement']; }; @@ -38,7 +34,6 @@ const useStyles = makeStyles( overflow: 'visible !important', }, typo: { - // width: 200, display: 'inline-block', overflow: 'hidden', whiteSpace: 'nowrap', @@ -49,21 +44,12 @@ const useStyles = makeStyles( ); export function OverflowTooltip(props: Props) { - // const [hover, setHover] = useState(false); - // const isMounted = useIsMounted(); const classes = useStyles(); - console.log(classes); - // const handleToggled = (truncated: boolean) => { - // if (isMounted()) { - // setHover(truncated); - // } - // }; return ( {props.text} From 7c234d0cead00265f05cbc81a6a84b5bd07d1b5f Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 19 Apr 2024 21:25:00 +0530 Subject: [PATCH 011/153] added style maxwidth 200 and props Signed-off-by: npiyush97 --- packages/core-components/api-report.md | 1 - packages/core-components/package.json | 46 +++++++++---------- .../OverflowTooltip.stories.tsx | 8 +--- .../OverflowTooltip/OverflowTooltip.tsx | 3 +- 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 7fd706db43..06676ab429 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -47,7 +47,6 @@ import { StyledComponentProps } from '@material-ui/core/styles/withStyles'; import { StyleRules } from '@material-ui/styles'; import { StyleRules as StyleRules_2 } from '@material-ui/core/styles/withStyles'; import { TabProps } from '@material-ui/core/Tab'; -import { TextTruncateProps } from 'react-text-truncate'; import { Theme } from '@material-ui/core/styles'; import { TooltipProps } from '@material-ui/core/Tooltip'; import { WithStyles } from '@material-ui/core/styles'; diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 9f632bcc7f..cbdb256c65 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,31 +1,32 @@ { "name": "@backstage/core-components", - "description": "Core components used by Backstage plugins and apps", "version": "0.14.4", - "publishConfig": { - "access": "public" - }, + "description": "Core components used by Backstage plugins and apps", "backstage": { "role": "web-library" }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "packages/core-components" }, - "keywords": [ - "backstage" - ], "license": "Apache-2.0", - "main": "src/index.ts", - "types": "src/index.ts", + "sideEffects": false, "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", "./testUtils": "./src/testUtils.ts", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -39,15 +40,18 @@ ] } }, - "sideEffects": false, + "files": [ + "dist", + "config.d.ts" + ], "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", - "start": "backstage-cli package start" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/config": "workspace:^", @@ -63,7 +67,6 @@ "@react-hookz/web": "^24.0.0", "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", "@types/react-sparklines": "^1.7.0", - "@types/react-text-truncate": "^0.14.0", "ansi-regex": "^6.0.1", "classnames": "^2.2.6", "d3-selection": "^3.0.0", @@ -82,7 +85,6 @@ "react-markdown": "^8.0.0", "react-sparklines": "^1.7.0", "react-syntax-highlighter": "^15.4.5", - "react-text-truncate": "^0.19.0", "react-use": "^17.3.2", "react-virtualized-auto-sizer": "^1.0.11", "react-window": "^1.8.6", @@ -90,11 +92,6 @@ "zen-observable": "^0.10.0", "zod": "^3.22.4" }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, "devDependencies": { "@backstage/app-defaults": "workspace:^", "@backstage/cli": "workspace:^", @@ -120,9 +117,10 @@ "history": "^5.0.0", "msw": "^1.0.0" }, - "files": [ - "dist", - "config.d.ts" - ], + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + }, "configSchema": "config.d.ts" } diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx index 5ab5ba7dc4..a302a0a7e3 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx @@ -33,16 +33,12 @@ export const Default = () => ( export const MultiLine = () => ( - + ); export const DifferentTitle = () => ( - + ); diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index b7a33f97fc..12de79644f 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -21,7 +21,7 @@ import React from 'react'; import Typography from '@material-ui/core/Typography'; type Props = { - text: string; + text?: string | undefined; title?: TooltipProps['title']; placement?: TooltipProps['placement']; }; @@ -34,6 +34,7 @@ const useStyles = makeStyles( overflow: 'visible !important', }, typo: { + maxWidth: 200, display: 'inline-block', overflow: 'hidden', whiteSpace: 'nowrap', From 3e39b436e5a1cf837335acb57f6d7811e7683ba3 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 19 Apr 2024 21:26:54 +0530 Subject: [PATCH 012/153] add yarn.lock Signed-off-by: npiyush97 --- yarn.lock | 2 -- 1 file changed, 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0a27eecdea..8ef4c2bab1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3923,7 +3923,6 @@ __metadata: "@types/react-helmet": ^6.1.0 "@types/react-sparklines": ^1.7.0 "@types/react-syntax-highlighter": ^15.0.0 - "@types/react-text-truncate": ^0.14.0 "@types/react-virtualized-auto-sizer": ^1.0.1 "@types/react-window": ^1.8.5 "@types/zen-observable": ^0.8.0 @@ -3948,7 +3947,6 @@ __metadata: react-markdown: ^8.0.0 react-sparklines: ^1.7.0 react-syntax-highlighter: ^15.4.5 - react-text-truncate: ^0.19.0 react-use: ^17.3.2 react-virtualized-auto-sizer: ^1.0.11 react-window: ^1.8.6 From d74a191b6c269ae9bcd99769d6d2a1d5dc902ff4 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 19 Apr 2024 21:33:31 +0530 Subject: [PATCH 013/153] missing this one Signed-off-by: npiyush97 --- plugins/catalog-react/src/components/EntityTable/columns.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/catalog-react/src/components/EntityTable/columns.tsx b/plugins/catalog-react/src/components/EntityTable/columns.tsx index 292235c78c..3357f1dded 100644 --- a/plugins/catalog-react/src/components/EntityTable/columns.tsx +++ b/plugins/catalog-react/src/components/EntityTable/columns.tsx @@ -141,7 +141,6 @@ export const columnFactories = Object.freeze({ ), }; From ff03fd55dee6b85b63ee79bdd8a1930433b46f8a Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 20 Apr 2024 12:03:21 -0300 Subject: [PATCH 014/153] feat: allow promise in EntityPresentationApi for all the asynchronous processes working under the hood Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../EntityPresentationApi.ts | 5 ++++ .../DefaultEntityPresentationApi.ts | 29 ++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts index 945bce1d27..de5449917a 100644 --- a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts +++ b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts @@ -109,6 +109,11 @@ export interface EntityRefPresentation { * elsewhere. */ update$?: Observable; + + /* The `promise` property in the `EntityRefPresentation` interface is defining a property named + `promise` that holds a promise. This promise resolves to an array of + `EntityRefPresentationSnapshot` objects. */ + promise: Promise; } /** diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts index 82862be435..bbd5540d15 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts @@ -298,10 +298,37 @@ export class DefaultEntityPresentationApi implements EntityPresentationApi { }; }); - return { + const entityRefPresentation: EntityRefPresentation = { snapshot: initialSnapshot, update$: observable, + get promise() { + return new Promise( + (resolve, reject) => { + if (!observable) { + resolve([initialSnapshot]); + } else { + const res: EntityRefPresentationSnapshot[] = []; + const subscription = observable.subscribe({ + next: snapshot => { + res.push(snapshot); + }, + error: error => { + initialSnapshot = { + primaryTitle: entityRef, + entityRef: entityRef, + }; + }, + complete() { + subscription.unsubscribe(); + resolve(res); + }, + }); + } + }, + ); + }, }; + return entityRefPresentation; } #getEntityForInitialRender(entityOrRef: Entity | string): { From 929cb2611873cee3d562530e0313b2ca9c727aa3 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 20 Apr 2024 12:09:43 -0300 Subject: [PATCH 015/153] feat: MultiEntityPicker uses entityPresentationApi to display entity instead of humanizeEntityRef Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../MultiEntityPicker.test.tsx | 17 ++++- .../MultiEntityPicker/MultiEntityPicker.tsx | 76 +++++++++++-------- 2 files changed, 60 insertions(+), 33 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.test.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.test.tsx index bc0a5ed32d..4be07b139d 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.test.tsx @@ -16,7 +16,11 @@ import { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; -import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react'; +import { + CatalogApi, + catalogApiRef, + entityPresentationApiRef, +} from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import { fireEvent, screen } from '@testing-library/react'; @@ -24,6 +28,7 @@ import React from 'react'; import { MultiEntityPicker } from './MultiEntityPicker'; import { MultiEntityPickerProps } from './schema'; import { ScaffolderRJSFFieldProps as FieldProps } from '@backstage/plugin-scaffolder-react'; +import { DefaultEntityPresentationApi } from '@backstage/plugin-catalog'; const makeEntity = (kind: string, namespace: string, name: string): Entity => ({ apiVersion: 'scaffolder.backstage.io/v1beta3', @@ -59,7 +64,15 @@ describe('', () => { ]; Wrapper = ({ children }: { children?: React.ReactNode }) => ( - + {children} ); diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx index d9804a8cba..0a0fcfdc2b 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx @@ -25,7 +25,9 @@ import { import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, - humanizeEntityRef, + entityPresentationApiRef, + EntityRefPresentationSnapshot, + EntityDisplayName, } from '@backstage/plugin-catalog-react'; import TextField from '@material-ui/core/TextField'; import FormControl from '@material-ui/core/FormControl'; @@ -64,40 +66,35 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { uiSchema['ui:options']?.defaultNamespace || undefined; const catalogApi = useApi(catalogApiRef); - + const entityPresentationApi = useApi(entityPresentationApiRef); const { value: entities, loading } = useAsync(async () => { const { items } = await catalogApi.getEntities( catalogFilter ? { filter: catalogFilter } : undefined, ); - return items; + const primaryTitles: string[] = []; + for (const item of items) { + const entityPresentation = (await entityPresentationApi.forEntity(item) + ?.promise) as EntityRefPresentationSnapshot[]; + entityPresentation.map(e => primaryTitles.push(e.primaryTitle)); + } + + return { items, primaryTitles }; }); const allowArbitraryValues = uiSchema['ui:options']?.allowArbitraryValues ?? true; - const getLabel = useCallback( - (ref: string) => { - try { - return humanizeEntityRef( - parseEntityRef(ref, { defaultKind, defaultNamespace }), - { - defaultKind, - defaultNamespace, - }, - ); - } catch (err) { - return ref; - } - }, - [defaultKind, defaultNamespace], - ); - const onSelect = useCallback( (_: any, refs: (string | Entity)[], reason: AutocompleteChangeReason) => { const values = refs .map(ref => { if (typeof ref !== 'string') { // if ref does not exist: pass 'undefined' to trigger validation for required value - return ref ? stringifyEntityRef(ref as Entity) : undefined; + return ref + ? entityPresentationApi.forEntity(ref, { + defaultKind, + defaultNamespace, + }).snapshot.entityRef + : undefined; } if (reason === 'blur' || reason === 'create-option') { // Add in default namespace, etc. @@ -126,14 +123,21 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { onChange(values); }, - [onChange, formData, defaultKind, defaultNamespace, allowArbitraryValues], + [ + onChange, + formData, + defaultKind, + defaultNamespace, + allowArbitraryValues, + entityPresentationApi, + ], ); useEffect(() => { - if (entities?.length === 1) { - onChange([stringifyEntityRef(entities[0])]); + if (entities?.items?.length === 1) { + onChange([stringifyEntityRef(entities.items[0])]); } - }, [entities, onChange]); + }, [entities?.items, onChange]); return ( { formData && formData.includes(stringifyEntityRef(e)), - ) ?? (allowArbitraryValues && formData ? formData.map(getLabel) : []) + ) ?? + (allowArbitraryValues && formData + ? entities?.primaryTitles || [] + : []) } loading={loading} onChange={onSelect} - options={entities || []} + options={entities?.items || []} + renderOption={option => } getOptionLabel={option => // option can be a string due to freeSolo. typeof option === 'string' ? option - : humanizeEntityRef(option, { defaultKind, defaultNamespace })! + : entityPresentationApi.forEntity(option, { + defaultKind, + defaultNamespace, + }).snapshot.entityRef! } autoSelect freeSolo={allowArbitraryValues} @@ -170,7 +181,10 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { label={title} margin="dense" helperText={description} - FormHelperTextProps={{ margin: 'dense', style: { marginLeft: 0 } }} + FormHelperTextProps={{ + margin: 'dense', + style: { marginLeft: 0 }, + }} variant="outlined" required={required} InputProps={params.InputProps} From 82214e72c9a8abc6c39613841fc48f30210e39eb Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 20 Apr 2024 14:18:23 -0300 Subject: [PATCH 016/153] Revert "bugfix: Proper error thrown in plugin-azure-devops-backend when gitRepository is not found." This reverts commit 88191bb54ebf9e118f3c5fbbd2a7ab7b1e669bd6. Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/three-sheep-remember.md | 5 --- .../src/api/AzureDevOpsApi.test.ts | 37 ------------------- .../src/api/AzureDevOpsApi.ts | 20 ---------- 3 files changed, 62 deletions(-) delete mode 100644 .changeset/three-sheep-remember.md diff --git a/.changeset/three-sheep-remember.md b/.changeset/three-sheep-remember.md deleted file mode 100644 index 51ffc8e3db..0000000000 --- a/.changeset/three-sheep-remember.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-azure-devops-backend': minor ---- - -Fixed bug in plugin-azure-devops-backend where proper error was not thrown when gitRepository was not found. diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts index a056beee02..174c5ff6cd 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.test.ts @@ -465,43 +465,6 @@ describe('AzureDevOpsApi', () => { ]); }); - it('should throw error when gitRepository is undefined', async () => { - const mockApi = { - getGitApi: jest.fn().mockReturnValue({}), - serverUrl: 'serverUrl', - }; - - (WebApi as unknown as jest.Mock).mockImplementation(() => mockApi); - - const api = AzureDevOpsApi.fromConfig(mockConfig, { - logger: mockLogger, - urlReader: mockUrlReader, - }); - - const pullRequestOptions: PullRequestOptions = { - top: 10, - status: PullRequestStatus.Active, - }; - - api.getGitRepository = jest.fn().mockResolvedValue(undefined); - - const temp = async () => { - try { - await api.getPullRequests('project', 'repo', pullRequestOptions); - return null; - } catch (error) { - return error; - } - }; - - const error = await temp(); - - expect(error).toHaveProperty( - 'message', - 'No repository found for Project "project" with Repository "repo" on host "undefined" under organization "undefined".', - ); - }); - it('should get build definitions', async () => { const mockBuilds: Build[] = [ { diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 468d6a9d88..4ed54e63eb 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -231,11 +231,6 @@ export class AzureDevOpsApi { host, org, ); - if (!gitRepository) { - throw new Error( - `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, - ); - } const buildList = await this.getBuildList( projectName, gitRepository.id as string, @@ -267,11 +262,6 @@ export class AzureDevOpsApi { host, org, ); - if (!gitRepository) { - throw new Error( - `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, - ); - } const webApi = await this.getWebApi(host, org); const client = await webApi.getGitApi(); const tagRefs: GitRef[] = await client.getRefs( @@ -314,11 +304,6 @@ export class AzureDevOpsApi { host, org, ); - if (!gitRepository) { - throw new Error( - `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, - ); - } const webApi = await this.getWebApi(host, org); const client = await webApi.getGitApi(); const searchCriteria: GitPullRequestSearchCriteria = { @@ -529,11 +514,6 @@ export class AzureDevOpsApi { host, org, ); - if (!gitRepository) { - throw new Error( - `No repository found for Project "${projectName}" with Repository "${repoName}" on host "${host}" under organization "${org}".`, - ); - } repoId = gitRepository.id; } From e1174b01b20e4a29fc81b07f25798aebb2595729 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 20 Apr 2024 15:28:46 -0300 Subject: [PATCH 017/153] chore: changeset added for this feature Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/five-cows-crash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/five-cows-crash.md diff --git a/.changeset/five-cows-crash.md b/.changeset/five-cows-crash.md new file mode 100644 index 0000000000..2c298dbad3 --- /dev/null +++ b/.changeset/five-cows-crash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-import': minor +--- + +`EntityListComponent` uses `entityPresentationApi` instead of `humanizeEntityRef` to display Entity From 4946ed88513e70ed5787c4503096810097f994c3 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 20 Apr 2024 15:45:50 -0300 Subject: [PATCH 018/153] chore: yarn.lock updated with new dependencies Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- yarn.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/yarn.lock b/yarn.lock index 0a27eecdea..5b5aef8874 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5868,6 +5868,7 @@ __metadata: "@backstage/frontend-plugin-api": "workspace:^" "@backstage/integration": "workspace:^" "@backstage/integration-react": "workspace:^" + "@backstage/plugin-catalog": "workspace:^" "@backstage/plugin-catalog-common": "workspace:^" "@backstage/plugin-catalog-react": "workspace:^" "@backstage/test-utils": "workspace:^" From 4268696352ec81671b543059ce732b1442b6ee92 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sun, 21 Apr 2024 21:57:36 -0300 Subject: [PATCH 019/153] chore: changeset added Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/olive-rockets-drum.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/olive-rockets-drum.md diff --git a/.changeset/olive-rockets-drum.md b/.changeset/olive-rockets-drum.md new file mode 100644 index 0000000000..12f80dab5c --- /dev/null +++ b/.changeset/olive-rockets-drum.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-react': minor +'@backstage/plugin-scaffolder': minor +'@backstage/plugin-catalog': minor +--- + +`MultiEntityPicker` uses `entityPresentationApi` instead of `humanizeEntityRef` to display entity. Also, `EntityPresentationApi` now allows `promise` getter for under asynchronous process of presentation api From ac6cff672e9dd1e8194a342610e77f4a2d3eeec1 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Mon, 22 Apr 2024 22:23:01 -0300 Subject: [PATCH 020/153] testcase updated for new promise getter in api Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../DefaultEntityPresentationApi.test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts index 42ff777cbd..475bfe1660 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts @@ -35,6 +35,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, + promise: new Promise((resolve, reject) => resolve({})), }); expect( @@ -48,6 +49,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, + promise: new Promise((resolve, reject) => resolve({})), }); expect( @@ -63,6 +65,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, + promise: new Promise((resolve, reject) => resolve({})), }); const entity: Entity = { @@ -85,6 +88,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, + promise: new Promise((resolve, reject) => resolve({})), }); }); @@ -150,6 +154,47 @@ describe('DefaultEntityPresentationApi', () => { }), ); }); + + it('returns the correct snapshots via promise', async () => { + const catalogApi = { + getEntitiesByRefs: jest.fn(), + }; + const api = DefaultEntityPresentationApi.create({ + catalogApi: catalogApi as Partial as any, + }); + + catalogApi.getEntitiesByRefs.mockResolvedValueOnce({ + items: [ + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'test', + namespace: 'default', + etag: 'something', + }, + spec: { + type: 'service', + }, + }, + ], + }); + + const entityRef = 'component:default/test'; + const entitySnapshot = { + entityRef: entityRef, + primaryTitle: 'test', + secondaryTitle: 'component:default/test | service', + Icon: expect.anything(), + }; + + const promise = api.forEntity(entityRef).promise; + + const snapshots = await promise; + + expect(snapshots.length).toEqual(1); // Only one snapshot expected + expect(snapshots[0]).toEqual(entitySnapshot); // Snapshot should match the simulated one + }); }); async function consumePresentation( From 30e92e77097540746d66d2d3b0330e8cf30119d9 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Mon, 22 Apr 2024 23:18:55 -0300 Subject: [PATCH 021/153] chore: lint errors resolved Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../EntityPresentationApi.ts | 2 +- .../DefaultEntityPresentationApi.test.ts | 12 ++--- .../DefaultEntityPresentationApi.ts | 46 +++++++++---------- 3 files changed, 29 insertions(+), 31 deletions(-) diff --git a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts index de5449917a..f4f1193718 100644 --- a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts +++ b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts @@ -113,7 +113,7 @@ export interface EntityRefPresentation { /* The `promise` property in the `EntityRefPresentation` interface is defining a property named `promise` that holds a promise. This promise resolves to an array of `EntityRefPresentationSnapshot` objects. */ - promise: Promise; + promise?: Promise; } /** diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts index 475bfe1660..c37efb204f 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts @@ -35,7 +35,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise((resolve, reject) => resolve({})), + promise: new Promise(resolve => resolve({})), }); expect( @@ -49,7 +49,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise((resolve, reject) => resolve({})), + promise: new Promise(resolve => resolve({})), }); expect( @@ -65,7 +65,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise((resolve, reject) => resolve({})), + promise: new Promise(resolve => resolve({})), }); const entity: Entity = { @@ -88,7 +88,7 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise((resolve, reject) => resolve({})), + promise: new Promise(resolve => resolve({})), }); }); @@ -192,8 +192,8 @@ describe('DefaultEntityPresentationApi', () => { const snapshots = await promise; - expect(snapshots.length).toEqual(1); // Only one snapshot expected - expect(snapshots[0]).toEqual(entitySnapshot); // Snapshot should match the simulated one + expect(snapshots?.length).toEqual(1); // Only one snapshot expected + expect(snapshots?.[0]).toEqual(entitySnapshot); // Snapshot should match the simulated one }); }); diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts index bbd5540d15..c7572cca3b 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts @@ -302,30 +302,28 @@ export class DefaultEntityPresentationApi implements EntityPresentationApi { snapshot: initialSnapshot, update$: observable, get promise() { - return new Promise( - (resolve, reject) => { - if (!observable) { - resolve([initialSnapshot]); - } else { - const res: EntityRefPresentationSnapshot[] = []; - const subscription = observable.subscribe({ - next: snapshot => { - res.push(snapshot); - }, - error: error => { - initialSnapshot = { - primaryTitle: entityRef, - entityRef: entityRef, - }; - }, - complete() { - subscription.unsubscribe(); - resolve(res); - }, - }); - } - }, - ); + return new Promise(resolve => { + if (!observable) { + resolve([initialSnapshot]); + } else { + const res: EntityRefPresentationSnapshot[] = []; + const subscription = observable.subscribe({ + next: snapshot => { + res.push(snapshot); + }, + error: () => { + initialSnapshot = { + primaryTitle: entityRef, + entityRef: entityRef, + }; + }, + complete() { + subscription.unsubscribe(); + resolve(res); + }, + }); + } + }); }, }; return entityRefPresentation; From 3383f82c58e0f344a7e530bb6096e43b11a6a763 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Fri, 26 Apr 2024 01:28:40 -0300 Subject: [PATCH 022/153] feat: no need to pass value in autocomplete as we have renderOptions Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../MultiEntityPicker/MultiEntityPicker.tsx | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx index 0a0fcfdc2b..073b364720 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx @@ -71,14 +71,8 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { const { items } = await catalogApi.getEntities( catalogFilter ? { filter: catalogFilter } : undefined, ); - const primaryTitles: string[] = []; - for (const item of items) { - const entityPresentation = (await entityPresentationApi.forEntity(item) - ?.promise) as EntityRefPresentationSnapshot[]; - entityPresentation.map(e => primaryTitles.push(e.primaryTitle)); - } - return { items, primaryTitles }; + return items; }); const allowArbitraryValues = uiSchema['ui:options']?.allowArbitraryValues ?? true; @@ -134,10 +128,10 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { ); useEffect(() => { - if (entities?.items?.length === 1) { - onChange([stringifyEntityRef(entities.items[0])]); + if (entities?.length === 1) { + onChange([stringifyEntityRef(entities[0])]); } - }, [entities?.items, onChange]); + }, [entities, onChange]); return ( { formData && formData.includes(stringifyEntityRef(e)), - ) ?? - (allowArbitraryValues && formData - ? entities?.primaryTitles || [] - : []) - } loading={loading} onChange={onSelect} - options={entities?.items || []} + options={entities || []} renderOption={option => } getOptionLabel={option => // option can be a string due to freeSolo. From 90db1ce4410c44dc3574340072791aca7ca80c1f Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Fri, 26 Apr 2024 01:33:16 -0300 Subject: [PATCH 023/153] chore: eslint error resolved Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../components/fields/MultiEntityPicker/MultiEntityPicker.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx index 073b364720..85e08740df 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx @@ -26,7 +26,6 @@ import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef, entityPresentationApiRef, - EntityRefPresentationSnapshot, EntityDisplayName, } from '@backstage/plugin-catalog-react'; import TextField from '@material-ui/core/TextField'; From 65ec043e4ee3ad75038e52f654e00278f605119c Mon Sep 17 00:00:00 2001 From: Juan Pablo Garcia Ripa Date: Sun, 28 Apr 2024 20:26:04 +0200 Subject: [PATCH 024/153] add some known issues and pickers fix Signed-off-by: Juan Pablo Garcia Ripa --- .changeset/modern-radios-guess.md | 5 ++ .../no-top-level-material-ui-4-imports.md | 47 +++++++++++++++++++ .../no-top-level-material-ui-4-imports.js | 6 ++- ...no-top-level-material-ui-4-imports.test.ts | 5 ++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 .changeset/modern-radios-guess.md diff --git a/.changeset/modern-radios-guess.md b/.changeset/modern-radios-guess.md new file mode 100644 index 0000000000..8b68ebcdf4 --- /dev/null +++ b/.changeset/modern-radios-guess.md @@ -0,0 +1,5 @@ +--- +'@backstage/eslint-plugin': patch +--- + +add some `pickers` fixes diff --git a/packages/eslint-plugin/docs/rules/no-top-level-material-ui-4-imports.md b/packages/eslint-plugin/docs/rules/no-top-level-material-ui-4-imports.md index a105014abc..e2143354d2 100644 --- a/packages/eslint-plugin/docs/rules/no-top-level-material-ui-4-imports.md +++ b/packages/eslint-plugin/docs/rules/no-top-level-material-ui-4-imports.md @@ -41,3 +41,50 @@ import { import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; ``` + +## --fix known issues + +This rule provides automatic fixes for the imports, but it has some known issues: + +### Non Props types import + +The fix will handle correctly 3 groups of imports: + +- Any import from related to styles (i.e `makeStyles`, `styled`, `WithStyles`) will be auto fixed to the `@material-ui/core/styles` import. +- Any import with `Props` suffix will be auto fixed to actual component for example `DialogProps` will be imported from `@material-ui/core/Dialog`. +- Any other import will be considered as a component import and will be auto fixed to the actual component import. + +This means that some types of imports without `Props` suffix will be wrongly auto fixed to the component import, for example this fix will be wrong: + +```diff +- import { Alert, Color } from '@material-ui/lab'; ++ import Alert from '@material-ui/lab/Alert'; ++ import Color from '@material-ui/lab/Color'; // this import is wrong +``` + +The correct import should look like this: + +```diff +- import { Alert, Color } from '@material-ui/lab'; ++ import Alert, {Color} from '@material-ui/lab/Alert'; +``` + +Because `Color` is a type coming from the Alert component. + +### No default export available + +Some components do not have a default export, for example `@material-ui/pickers/DateTimePicker` does not have a default export, so the fix will not work for these cases. + +The fix will be wrong for this import: + +```diff +- import { DateTimePicker } from '@material-ui/pickers'; ++ import DateTimePicker from '@material-ui/pickers/DateTimePicker'; // this default import does not exist +``` + +The correct import should look like this: + +```diff +- import { DateTimePicker } from '@material-ui/pickers'; ++ import { DateTimePicker } from '@material-ui/pickers/DateTimePicker'; // this is the correct import +``` diff --git a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js index adf04492b4..78fd3d63e9 100644 --- a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js +++ b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js @@ -155,7 +155,11 @@ module.exports = { const value = s.imported.name; const alias = s.local.name === value ? undefined : s.local.name; - const propsMatch = /^([A-Z]\w+)Props$/.exec(value); + const propsMatch = + /^([A-Z]\w+)Props$/.exec(value) ?? + (node.source.value === '@material-ui/pickers' + ? /^Keyboard([A-Z]\w+Picker)$/.exec(value) + : null); const emitProp = propsMatch !== null; const emitComponent = !emitProp; diff --git a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts index fdde615c3e..4b675bd038 100644 --- a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts +++ b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts @@ -161,5 +161,10 @@ import { styled, withStyles, alpha, duration } from '@material-ui/core/styles';` import TreeView from '@material-ui/lab/TreeView'; import { AlertProps } from '@material-ui/lab/Alert';`, }, + { + code: `import { KeyboardDatePicker } from '@material-ui/pickers';`, + errors: [{ messageId: 'topLevelImport' }], + output: `import { KeyboardDatePicker } from '@material-ui/pickers/DatePicker';`, + }, ], }); From 45446a0bfa7e1d8b902dccc9f0ed19e0e5ffdc6d Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Thu, 2 May 2024 16:08:36 -0300 Subject: [PATCH 025/153] feat: revert chnages done in EntityPresentationApi Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/olive-rockets-drum.md | 2 +- .../EntityPresentationApi.ts | 5 --- .../DefaultEntityPresentationApi.test.ts | 45 ------------------- .../DefaultEntityPresentationApi.ts | 27 +---------- 4 files changed, 2 insertions(+), 77 deletions(-) diff --git a/.changeset/olive-rockets-drum.md b/.changeset/olive-rockets-drum.md index 12f80dab5c..b5e6c2cefe 100644 --- a/.changeset/olive-rockets-drum.md +++ b/.changeset/olive-rockets-drum.md @@ -4,4 +4,4 @@ '@backstage/plugin-catalog': minor --- -`MultiEntityPicker` uses `entityPresentationApi` instead of `humanizeEntityRef` to display entity. Also, `EntityPresentationApi` now allows `promise` getter for under asynchronous process of presentation api +`MultiEntityPicker` uses `EntityDisplayName` instead of `humanizeEntityRef` to display entity. diff --git a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts index f4f1193718..945bce1d27 100644 --- a/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts +++ b/plugins/catalog-react/src/apis/EntityPresentationApi/EntityPresentationApi.ts @@ -109,11 +109,6 @@ export interface EntityRefPresentation { * elsewhere. */ update$?: Observable; - - /* The `promise` property in the `EntityRefPresentation` interface is defining a property named - `promise` that holds a promise. This promise resolves to an array of - `EntityRefPresentationSnapshot` objects. */ - promise?: Promise; } /** diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts index c37efb204f..42ff777cbd 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.test.ts @@ -35,7 +35,6 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise(resolve => resolve({})), }); expect( @@ -49,7 +48,6 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise(resolve => resolve({})), }); expect( @@ -65,7 +63,6 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise(resolve => resolve({})), }); const entity: Entity = { @@ -88,7 +85,6 @@ describe('DefaultEntityPresentationApi', () => { Icon: expect.anything(), }, update$: undefined, - promise: new Promise(resolve => resolve({})), }); }); @@ -154,47 +150,6 @@ describe('DefaultEntityPresentationApi', () => { }), ); }); - - it('returns the correct snapshots via promise', async () => { - const catalogApi = { - getEntitiesByRefs: jest.fn(), - }; - const api = DefaultEntityPresentationApi.create({ - catalogApi: catalogApi as Partial as any, - }); - - catalogApi.getEntitiesByRefs.mockResolvedValueOnce({ - items: [ - { - apiVersion: 'backstage.io/v1alpha1', - kind: 'Component', - metadata: { - name: 'test', - namespace: 'default', - etag: 'something', - }, - spec: { - type: 'service', - }, - }, - ], - }); - - const entityRef = 'component:default/test'; - const entitySnapshot = { - entityRef: entityRef, - primaryTitle: 'test', - secondaryTitle: 'component:default/test | service', - Icon: expect.anything(), - }; - - const promise = api.forEntity(entityRef).promise; - - const snapshots = await promise; - - expect(snapshots?.length).toEqual(1); // Only one snapshot expected - expect(snapshots?.[0]).toEqual(entitySnapshot); // Snapshot should match the simulated one - }); }); async function consumePresentation( diff --git a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts index c7572cca3b..82862be435 100644 --- a/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts +++ b/plugins/catalog/src/apis/EntityPresentationApi/DefaultEntityPresentationApi.ts @@ -298,35 +298,10 @@ export class DefaultEntityPresentationApi implements EntityPresentationApi { }; }); - const entityRefPresentation: EntityRefPresentation = { + return { snapshot: initialSnapshot, update$: observable, - get promise() { - return new Promise(resolve => { - if (!observable) { - resolve([initialSnapshot]); - } else { - const res: EntityRefPresentationSnapshot[] = []; - const subscription = observable.subscribe({ - next: snapshot => { - res.push(snapshot); - }, - error: () => { - initialSnapshot = { - primaryTitle: entityRef, - entityRef: entityRef, - }; - }, - complete() { - subscription.unsubscribe(); - resolve(res); - }, - }); - } - }); - }, }; - return entityRefPresentation; } #getEntityForInitialRender(entityOrRef: Entity | string): { From 52ab24122a7644ad91103ddae7ae034a0caa38c7 Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Fri, 3 May 2024 20:27:36 -0300 Subject: [PATCH 026/153] chore(plugins/scaffolder-backend-module-githu): adding support to override default author commit for github PRs Signed-off-by: Matheus Castiglioni --- .changeset/nasty-papayas-heal.md | 5 ++ .../githubPullRequest.examples.test.ts | 86 ++++++++++++++++++- .../src/actions/githubPullRequest.examples.ts | 21 +++++ .../src/actions/githubPullRequest.test.ts | 86 +++++++++++++++++++ .../src/actions/githubPullRequest.ts | 21 +++++ 5 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 .changeset/nasty-papayas-heal.md diff --git a/.changeset/nasty-papayas-heal.md b/.changeset/nasty-papayas-heal.md new file mode 100644 index 0000000000..cfeacb3238 --- /dev/null +++ b/.changeset/nasty-papayas-heal.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': minor +--- + +Adding support to change the default commit author for pull-request github action" diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts index dd07c88a70..e881ae3192 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts @@ -134,6 +134,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -174,6 +178,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -213,6 +221,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -252,6 +264,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -298,6 +314,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -338,6 +358,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -378,6 +402,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -424,6 +452,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -470,6 +502,54 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, + }, + ], + }); + + expect(fakeClient.rest.pulls.requestReviewers).not.toHaveBeenCalled(); + expect(mockContext.output).toHaveBeenCalledTimes(3); + expect(mockContext.output).toHaveBeenCalledWith('targetBranchName', 'main'); + expect(mockContext.output).toHaveBeenCalledWith( + 'remoteUrl', + 'https://github.com/myorg/myrepo/pull/123', + ); + expect(mockContext.output).toHaveBeenCalledWith('pullRequestNumber', 123); + }); + + it('Create a pull request with a git author', async () => { + const input = yaml.parse(examples[9].example).steps[0].input; + + await action.handler({ + ...mockContext, + workspacePath, + input, + }); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repo', + title: 'Create my new app', + body: 'This PR is really good', + head: 'new-app', + draft: undefined, + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'foo@bar.example', + name: 'Foo Bar', + }, }, ], }); @@ -491,7 +571,7 @@ describe('publish:github:pull-request examples', () => { irrelevant: { 'bar.txt': 'Nothing to see here' }, }, }); - const input = yaml.parse(examples[9].example).steps[0].input; + const input = yaml.parse(examples[10].example).steps[0].input; await action.handler({ ...mockContext, @@ -517,6 +597,10 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, + author: { + email: 'foo@bar.example', + name: 'Foo Bar', + }, }, ], }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts index d6138b262b..f3042a7e15 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts @@ -178,6 +178,25 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Create a pull request with a git author', + example: yaml.stringify({ + steps: [ + { + action: 'publish:github:pull-request', + name: 'Create a pull reuqest', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + branchName: 'new-app', + title: 'Create my new app', + description: 'This PR is really good', + gitAuthorName: 'Foo Bar', + gitAuthorEmail: 'foo@bar.example', + }, + }, + ], + }), + }, { description: 'Create a pull request with all parameters', example: yaml.stringify({ @@ -198,6 +217,8 @@ export const examples: TemplateExample[] = [ reviewers: ['foobar'], teamReviewers: ['team-foo'], commitMessage: 'Commit for foo changes', + gitAuthorName: 'Foo Bar', + gitAuthorEmail: 'foo@bar.example', }, }, ], diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts index c9d1498187..a38b070bdf 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts @@ -155,6 +155,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -212,6 +216,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -271,6 +279,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -322,6 +334,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -449,6 +465,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '120000', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -498,6 +518,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100755', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -557,6 +581,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100755', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -612,6 +640,10 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], }); @@ -657,10 +689,64 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, + author: { + email: 'scaffolder@backstage.io', + name: 'Scaffolder', + }, }, ], forceFork: true, }); }); }); + + describe('with author', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + gitAuthorEmail: 'foo@bar.example', + gitAuthorName: 'Foo Bar', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request', async () => { + await instance.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'foo@bar.example', + name: 'Foo Bar', + }, + }, + ], + }); + }); + }); }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts index b4aa03b602..0a256d36d5 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts @@ -136,6 +136,8 @@ export const createPublishGithubPullRequestAction = ( commitMessage?: string; update?: boolean; forceFork?: boolean; + gitAuthorName?: string; + gitAuthorEmail?: string; }>({ id: 'publish:github:pull-request', examples, @@ -223,6 +225,18 @@ export const createPublishGithubPullRequestAction = ( title: 'Force Fork', description: 'Create pull request from a fork', }, + gitAuthorName: { + type: 'string', + title: 'Default Author Name', + description: + "Sets the default author name for the commit. The default value is 'Scaffolder'", + }, + gitAuthorEmail: { + type: 'string', + title: 'Default Author Email', + description: + "Sets the default author email for the commit. The default value is 'scaffolder@backstage.io'", + }, }, }, output: { @@ -262,6 +276,8 @@ export const createPublishGithubPullRequestAction = ( commitMessage, update, forceFork, + gitAuthorEmail = 'scaffolder@backstage.io', + gitAuthorName = 'Scaffolder', } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -328,6 +344,10 @@ export const createPublishGithubPullRequestAction = ( { files, commit: commitMessage ?? title, + author: { + name: gitAuthorName, + email: gitAuthorEmail, + }, }, ], body: description, @@ -336,6 +356,7 @@ export const createPublishGithubPullRequestAction = ( update, forceFork, }; + if (targetBranchName) { createOptions.base = targetBranchName; } From 0be2c4d808cce132cf23cb4b0fb1ab23d9de75d6 Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Fri, 3 May 2024 20:46:41 -0300 Subject: [PATCH 027/153] fix(plugins/scaffolder-backend-module-githu): generating api report for changed plugin Signed-off-by: Matheus Castiglioni --- plugins/scaffolder-backend-module-github/api-report.md | 2 ++ plugins/scaffolder-backend/api-report.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/scaffolder-backend-module-github/api-report.md b/plugins/scaffolder-backend-module-github/api-report.md index 0284c362eb..07f5146901 100644 --- a/plugins/scaffolder-backend-module-github/api-report.md +++ b/plugins/scaffolder-backend-module-github/api-report.md @@ -389,6 +389,8 @@ export const createPublishGithubPullRequestAction: ( commitMessage?: string | undefined; update?: boolean | undefined; forceFork?: boolean | undefined; + gitAuthorName?: string | undefined; + gitAuthorEmail?: string | undefined; }, JsonObject >; diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 6af1ac04a6..e02d6f09a9 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -285,6 +285,8 @@ export const createPublishGithubPullRequestAction: ( commitMessage?: string | undefined; update?: boolean | undefined; forceFork?: boolean | undefined; + gitAuthorName?: string | undefined; + gitAuthorEmail?: string | undefined; }, JsonObject >; From de6bcac9aeebd67b971144fa448d845caebad7e2 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sat, 4 May 2024 22:29:09 -0300 Subject: [PATCH 028/153] feat: review requested changes Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .changeset/olive-rockets-drum.md | 2 -- .../MultiEntityPicker/MultiEntityPicker.tsx | 16 ++-------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/.changeset/olive-rockets-drum.md b/.changeset/olive-rockets-drum.md index b5e6c2cefe..e28ba6101a 100644 --- a/.changeset/olive-rockets-drum.md +++ b/.changeset/olive-rockets-drum.md @@ -1,7 +1,5 @@ --- -'@backstage/plugin-catalog-react': minor '@backstage/plugin-scaffolder': minor -'@backstage/plugin-catalog': minor --- `MultiEntityPicker` uses `EntityDisplayName` instead of `humanizeEntityRef` to display entity. diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx index 85e08740df..fb18564456 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx @@ -82,12 +82,7 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { .map(ref => { if (typeof ref !== 'string') { // if ref does not exist: pass 'undefined' to trigger validation for required value - return ref - ? entityPresentationApi.forEntity(ref, { - defaultKind, - defaultNamespace, - }).snapshot.entityRef - : undefined; + return ref ? stringifyEntityRef(ref as Entity) : undefined; } if (reason === 'blur' || reason === 'create-option') { // Add in default namespace, etc. @@ -116,14 +111,7 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { onChange(values); }, - [ - onChange, - formData, - defaultKind, - defaultNamespace, - allowArbitraryValues, - entityPresentationApi, - ], + [onChange, formData, defaultKind, defaultNamespace, allowArbitraryValues], ); useEffect(() => { From 35dd24daceede25323023ccdf4fc815f0c90213c Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Sun, 5 May 2024 13:09:45 +0530 Subject: [PATCH 029/153] test fixed Signed-off-by: npiyush97 --- packages/core-components/package.json | 5 +---- .../src/components/EntityTable/presets.test.tsx | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 5a813c6175..6addbc79d3 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,10 +1,7 @@ { "name": "@backstage/core-components", - "description": "Core components used by Backstage plugins and apps", "version": "0.14.6-next.1", - "publishConfig": { - "access": "public" - }, + "description": "Core components used by Backstage plugins and apps", "backstage": { "role": "web-library" }, diff --git a/plugins/catalog-react/src/components/EntityTable/presets.test.tsx b/plugins/catalog-react/src/components/EntityTable/presets.test.tsx index 82075df5e9..afe4336300 100644 --- a/plugins/catalog-react/src/components/EntityTable/presets.test.tsx +++ b/plugins/catalog-react/src/components/EntityTable/presets.test.tsx @@ -72,7 +72,7 @@ describe('systemEntityColumns', () => { expect(screen.getByText('my-namespace/my-system')).toBeInTheDocument(); expect(screen.getByText('my-namespace/my-domain')).toBeInTheDocument(); expect(screen.getByText('test')).toBeInTheDocument(); - expect(screen.getByText(/Some/)).toBeInTheDocument(); + expect(screen.queryAllByText(/Some/)).not.toHaveLength(0); }); }); }); @@ -126,7 +126,7 @@ describe('componentEntityColumns', () => { expect(screen.getByText('test')).toBeInTheDocument(); expect(screen.getByText('production')).toBeInTheDocument(); expect(screen.getByText('service')).toBeInTheDocument(); - expect(screen.getByText(/Some/)).toBeInTheDocument(); + expect(screen.queryAllByText(/Some/)).not.toHaveLength(0); }); }); }); From 359376aa9139b3bb5820d33f336d811976b55a80 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Sun, 5 May 2024 13:12:38 +0530 Subject: [PATCH 030/153] changeset added Signed-off-by: npiyush97 --- .changeset/sweet-spiders-rhyme.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/sweet-spiders-rhyme.md diff --git a/.changeset/sweet-spiders-rhyme.md b/.changeset/sweet-spiders-rhyme.md new file mode 100644 index 0000000000..58767cdfde --- /dev/null +++ b/.changeset/sweet-spiders-rhyme.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-react': patch +'@backstage/core-components': patch +--- + +Removing react-text-truncate with css styles. From 78e8704d1d260b67048056f193d216450043a617 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Sun, 5 May 2024 14:09:06 +0530 Subject: [PATCH 031/153] redundant changeset Signed-off-by: npiyush97 --- .changeset/strange-doors-glow.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/strange-doors-glow.md diff --git a/.changeset/strange-doors-glow.md b/.changeset/strange-doors-glow.md deleted file mode 100644 index 71dcc375c0..0000000000 --- a/.changeset/strange-doors-glow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Removing react-text-truncate with css styles. From 318507fe3444fef20fdcce708d2df0b12d3e1297 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 5 May 2024 12:24:24 +0200 Subject: [PATCH 032/153] docs/threat-model: integrator -> operator Signed-off-by: Patrik Oldsberg --- docs/overview/threat-model.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/overview/threat-model.md b/docs/overview/threat-model.md index 442d51985c..2dd215e7e8 100644 --- a/docs/overview/threat-model.md +++ b/docs/overview/threat-model.md @@ -14,21 +14,21 @@ The Backstage trust model is divided into three groups with different trust leve An **internal user** is an authenticated user that generally belongs to the organization of a particular Backstage deployment. These users are trusted to the extent that they are not expected to compromise the availability of Backstage, but they are not trusted to not compromise data confidentiality or integrity. -An **integrator** is a user responsible for configuring and maintaining an instance of Backstage. Integrators are fully trusted, since they operate the system and database and therefore have root access to the host system. Additional measures can be taken by adopters of Backstage in order to restrict or observe the access of this group, but that falls outside of the current scope of Backstage. +An **operator** is a user responsible for configuring and maintaining an instance of Backstage. Operators are fully trusted, since they operate the system and database and therefore have root access to the host system. Additional measures can be taken by adopters of Backstage in order to restrict or observe the access of this group, but that falls outside of the current scope of Backstage. Another group of de facto integrators is internal and external code contributors. When installing Backstage plugins you should vet them just like any other package from an external source. While it’s possible to limit the impact of for example a supply chain attack by splitting the deployment into separate services with different plugins, the Backstage project itself does not aim to prevent these kinds of attacks or in any other way sandbox or limit the access of plugins. An **external user** is a user that does not belong to the other two groups, for example a malicious actor outside of the organization. The security model of Backstage currently assumes that this group does not have any direct access to Backstage, and it is the responsibility of each adopter of Backstage to make sure this is the case. -## Integrator Responsibilities +## Operator Responsibilities -As an integrator of Backstage you yourself are responsible for protecting your Backstage installation from external and unauthorized access. The sign-in system in Backstage does not exist to limit access, only to inform the system of the identity of the user. There are some plugins that have more fine-grained access control through the permissions system, but the primary purpose of that system is to restrict access to resources for internal users rather than Backstage as a whole. A common and recommended way to protect a Backstage deployment from unauthorized access is to deploy it behind an authenticating proxy such as AWS’s ALB, GCP’s IAP, or Cloudflare Access. +As an operator of Backstage you yourself are responsible for protecting your Backstage installation from external and unauthorized access. The sign-in system in Backstage does not exist to limit access, only to inform the system of the identity of the user. There are some plugins that have more fine-grained access control through the permissions system, but the primary purpose of that system is to restrict access to resources for internal users rather than Backstage as a whole. A common and recommended way to protect a Backstage deployment from unauthorized access is to deploy it behind an authenticating proxy such as AWS’s ALB, GCP’s IAP, or Cloudflare Access. Other responsibilities include protecting the integrity of configuration files as it may otherwise be possible to introduce vulnerable configurations, as well as the confidentiality of configured secrets related to Backstage as these typically include authentication details to third party systems. -The integrator is ultimately responsible for auditing usage of internal and external plugins as these run on the host system and have access to configuration and secrets. When installing plugins from sources like NPM, you should vet these in the same way that you would vet any other package installed from that source. +The operator is ultimately responsible for auditing usage of internal and external plugins as these run on the host system and have access to configuration and secrets. When installing plugins from sources like NPM, you should vet these in the same way that you would vet any other package installed from that source. -The integrator is also responsible for maintaining the resolved NPM dependencies of their Backstage project. This involves ensuring that `yarn.lock` receives updated versions of packages that have vulnerabilities, when those fixed versions are in range of what the Backstage packages request in their respective `package.json` files. This is commonly done by employing automated tooling such as [Dependabot](https://dependabot.com/), [Snyk](https://snyk.io/), and/or [Renovate](https://docs.renovatebot.com/) on your own repository. When fixed versions exist that are _not_ in range of what Backstage packages request, or when larger operations such as switching out an entire dependency for another one is required, maintainers collaborate with contributors to try to address those dependency declarations in the main project as soon as possible. +The operator is also responsible for maintaining the resolved NPM dependencies of their Backstage project. This involves ensuring that `yarn.lock` receives updated versions of packages that have vulnerabilities, when those fixed versions are in range of what the Backstage packages request in their respective `package.json` files. This is commonly done by employing automated tooling such as [Dependabot](https://dependabot.com/), [Snyk](https://snyk.io/), and/or [Renovate](https://docs.renovatebot.com/) on your own repository. When fixed versions exist that are _not_ in range of what Backstage packages request, or when larger operations such as switching out an entire dependency for another one is required, maintainers collaborate with contributors to try to address those dependency declarations in the main project as soon as possible. ## Common Backend Configuration @@ -44,7 +44,7 @@ Note that the `UrlReader` system operates with a service context and is not inte Backstage provides authentication of users through the `auth` plugin, which primarily acts as an authorization server for different OAuth 2.0 provider integrations. These integrations can both serve the purpose of signing users into Backstage, as well as providing delegated access to external resources, and are all subject to the common concerns of implementing secure OAuth 2.0 authorization servers. All auth provider integrations are disabled by default, and need to be enabled through configuration in order to be used. For each Backstage installation it is recommended to only enable the minimal set of providers that are in use by that instance. -It is not within scope of the `auth` backend to protect against unauthorized access, that is something that needs to be handled at a deployment level. See the [Integrator Responsibilities](#integrator-responsibilities) section for more information. +It is not within scope of the `auth` backend to protect against unauthorized access, that is something that needs to be handled at a deployment level. See the [Operator Responsibilities](#operator-responsibilities) section for more information. In order to use an auth provider to sign in users into Backstage, it needs to be configured with an [Identity resolver](https://backstage.io/docs/auth/identity-resolver), which is a custom callback implemented in code. The identity resolver is a sensitive part of configuring Backstage and it is important that it always resolves user identities correctly, based on information provided by the authentication provider. There are a number of built-in identity resolvers that can simplify configuration, and it is important that these all resolve users in a secure way, regardless of how they are used. @@ -58,7 +58,7 @@ Backstage also supports authentication through a proxy where the user identity i ## Catalog -Integrators should configure [catalog rules](https://backstage.io/docs/features/software-catalog/configuration#catalog-rules) to limit the allowed entity kinds that users can define. In general it is best to restrict definition of User, Group, and Template entities so that internal users cannot register additional ones. Template entities define actions that are executed on the backend hosts, and while the goal is for these actions to be secure regardless of input, it is still a more sensitive context and it is recommended that you protect it with additional checks. It is very important to not allow registration of User and Group entities if you ingest and rely on these as organizational data in your catalog. Doing so could otherwise open up for the ability to impersonate users and confuse group membership information. You should always ingest organizational data using a statically configured catalog location or an entity provider reading from a trusted source. The entities emitted directly by an entity provider are always trusted and rules are not applied to them, but any entities produced further down the chain are still subject to the rules. +Operators should configure [catalog rules](https://backstage.io/docs/features/software-catalog/configuration#catalog-rules) to limit the allowed entity kinds that users can define. In general it is best to restrict definition of User, Group, and Template entities so that internal users cannot register additional ones. Template entities define actions that are executed on the backend hosts, and while the goal is for these actions to be secure regardless of input, it is still a more sensitive context and it is recommended that you protect it with additional checks. It is very important to not allow registration of User and Group entities if you ingest and rely on these as organizational data in your catalog. Doing so could otherwise open up for the ability to impersonate users and confuse group membership information. You should always ingest organizational data using a statically configured catalog location or an entity provider reading from a trusted source. The entities emitted directly by an entity provider are always trusted and rules are not applied to them, but any entities produced further down the chain are still subject to the rules. The Catalog does not aim to protect against resource exhaustion attacks in its default setup. If you need to prevent your internal users from being able to register large amounts of entities, then it is recommended to disable entity registration and use a different approach for discovering entities. One way to mitigate any resource exhaustion attacks is to only allow the catalog to read from trusted SCM sources that have an audit trail. Catalog currently lacks limits for entity hierarchy depth and entity size, which we hope to address in the future. @@ -68,11 +68,11 @@ By default all internal users are allowed to create and delete entities. If this By default, Scaffolding jobs execute directly on the host machine, including any actions defined in the template. Because the Scaffolder templates are considered a more sensitive area it is recommended to control access to create and update templates to trusted parties. Template execution is intended to be secure regardless of input, but we still recommend this additional layer of protection. The string templating is executed in a [node VM sandbox](https://github.com/laverdet/isolated-vm) to mitigate the possibility of remote code execution attacks. -The Scaffolder often has elevated permissions to for example create repositories in a Github organization. The integrator should therefore be cautious of Scaffolder Templates that for example delete or update existing resources as the user input is typically user defined and can therefore delete or modify resources maliciously or by mistake. +The Scaffolder often has elevated permissions to for example create repositories in a Github organization. The operator should therefore be cautious of Scaffolder Templates that for example delete or update existing resources as the user input is typically user defined and can therefore delete or modify resources maliciously or by mistake. One strategy that allows you to reduce the access that the Scaffolder service has is to rely on user credentials when executing actions. For example, a GitHub App integration could be configured with read-only permissions, with a separate user OAuth token used to create repositories. This requires that your users have access to create repositories in the first place. -The integrator should audit installed scaffolding actions just like any other plugin package. It is also important to verify that installed actions fall in line with your own security requirements, as some actions might be intended for more relaxed environments. +The operator should audit installed scaffolding actions just like any other plugin package. It is also important to verify that installed actions fall in line with your own security requirements, as some actions might be intended for more relaxed environments. By default all internal users are allowed to execute templates in the scaffolder. If this does not fit your organization's needs it is recommended to enable and configure the [permission](https://backstage.io/docs/permissions/overview) system to restrict these operations. From 163be6316365538dd8edd17be44123919dd36169 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Sun, 5 May 2024 12:20:51 -0300 Subject: [PATCH 033/153] chore: requested changes done Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../EntityListComponent/EntityListComponent.tsx | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx index 9c4af562e5..58b541795d 100644 --- a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx +++ b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx @@ -21,6 +21,7 @@ import { } from '@backstage/catalog-model'; import { useApi, useApp } from '@backstage/core-plugin-api'; import { + EntityDisplayName, EntityRefLink, entityPresentationApiRef, } from '@backstage/plugin-catalog-react'; @@ -138,11 +139,7 @@ export const EntityListComponent = (props: EntityListComponentProps) => { ); return ( { {Icon && } } /> From 717d12ab321402563d488e145cad6b4cddc5d844 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 6 May 2024 00:55:38 +0200 Subject: [PATCH 034/153] docs/threat-model: update for new auth services Signed-off-by: Patrik Oldsberg --- docs/overview/threat-model.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/overview/threat-model.md b/docs/overview/threat-model.md index 2dd215e7e8..a2f4b4a1df 100644 --- a/docs/overview/threat-model.md +++ b/docs/overview/threat-model.md @@ -22,9 +22,16 @@ An **external user** is a user that does not belong to the other two groups, for ## Operator Responsibilities -As an operator of Backstage you yourself are responsible for protecting your Backstage installation from external and unauthorized access. The sign-in system in Backstage does not exist to limit access, only to inform the system of the identity of the user. There are some plugins that have more fine-grained access control through the permissions system, but the primary purpose of that system is to restrict access to resources for internal users rather than Backstage as a whole. A common and recommended way to protect a Backstage deployment from unauthorized access is to deploy it behind an authenticating proxy such as AWS’s ALB, GCP’s IAP, or Cloudflare Access. +:::info +This section assumes that you are using the +[new backend system](../backend-system/index.md) and at least Backstage release [version 1.24](../releases/v1.24.0.md). Before that Backstage did not come with built-in protection against unauthorized access and you were required to deploy it in a protected environment. +::: -Other responsibilities include protecting the integrity of configuration files as it may otherwise be possible to introduce vulnerable configurations, as well as the confidentiality of configured secrets related to Backstage as these typically include authentication details to third party systems. +Backstage is primarily designed to be deployed in a protected environment rather than being exposed to the public internet. From a confidentiality and integrity perspective, Backstage is designed to protect against unauthorized access to data and to ensure that data is not tampered with. However, Backstage does not provide more than rudimentary protection against denial of service attacks, and it is the responsibility of the operator to ensure that the Backstage deployment is protected against such attacks. A common and recommended way to protect a Backstage deployment from unauthorized access is to deploy it behind an authenticating proxy such as AWS’s ALB, GCP’s IAP, or Cloudflare Access. + +Users that are signed-in in to Backstage generally have full access to all information and actions. If more fine-grained control is required, the [permissions system](../permissions/overview.md) should be enabled and configured to restrict access as necessary. + +An operator is responsible for protecting the integrity of configuration files as it may otherwise be possible to introduce vulnerable configurations, as well as the confidentiality of configured secrets related to Backstage as these typically include authentication details to third party systems. The operator is ultimately responsible for auditing usage of internal and external plugins as these run on the host system and have access to configuration and secrets. When installing plugins from sources like NPM, you should vet these in the same way that you would vet any other package installed from that source. @@ -44,17 +51,19 @@ Note that the `UrlReader` system operates with a service context and is not inte Backstage provides authentication of users through the `auth` plugin, which primarily acts as an authorization server for different OAuth 2.0 provider integrations. These integrations can both serve the purpose of signing users into Backstage, as well as providing delegated access to external resources, and are all subject to the common concerns of implementing secure OAuth 2.0 authorization servers. All auth provider integrations are disabled by default, and need to be enabled through configuration in order to be used. For each Backstage installation it is recommended to only enable the minimal set of providers that are in use by that instance. -It is not within scope of the `auth` backend to protect against unauthorized access, that is something that needs to be handled at a deployment level. See the [Operator Responsibilities](#operator-responsibilities) section for more information. - In order to use an auth provider to sign in users into Backstage, it needs to be configured with an [Identity resolver](https://backstage.io/docs/auth/identity-resolver), which is a custom callback implemented in code. The identity resolver is a sensitive part of configuring Backstage and it is important that it always resolves user identities correctly, based on information provided by the authentication provider. There are a number of built-in identity resolvers that can simplify configuration, and it is important that these all resolve users in a secure way, regardless of how they are used. +Backstage also supports authentication through a proxy where the user identity is read from the incoming request from the proxy, which has been decorated by an authenticating reverse proxy such as [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). The following proxy auth providers verify the signature of incoming requests, and are therefore safe to deploy with direct access by users: `awsAlb`, `cfAccess`, and `gcpIap`. Providers like `oauth2Proxy` does not verify the incoming request and can therefore be spoofed by a malicious internal user to supply the `auth` backend with forged identity information. It’s therefore highly recommended to restrict access to the `oauth2Proxy` endpoints, or use a different provider. + As part of signing in with an identity resolver, a Backstage Token is issued containing the resolved user identity. The tokens are asymmetrically signed JSON Web Tokens, with the public keys available to any service that wishes to verify a token. The signing keys are rotated continuously and are unique to each installation of Backstage, meaning that Backstage Tokens are not shared across installations. The token contains claims for the user identity and ownership information, which can be used to determine what Backstage resources are owned by that user or group. It is important that this token can not be forged outside of the `auth` plugin, with the exception of other plugins deployed in the same backend service or sharing the same database. For a high-security deployment, the `auth` backend should therefore be deployed in a separate service with its own database. The token is used to prove the identity of the user within the Backstage system, and is used throughout Backstage plugins to control access. It is important that the ownership resolution logic is consistent across the entire Backstage ecosystem, with no possibility of misinterpreting the ownership information. -For cross-backend communication, the Backstage Token is typically forwarded or, in strict backend-to-backend communication without a user party, the backend itself issues a service token based on a pre-shared secret which is then validated on the receiving end. There are no unique service identities tied to these tokens at this point, meaning the tokens can be used across all services in a Backstage installation. This is something that we aim to improve in the future. +One of the claims in a user token is the User Identity Proof or `uip`. This is an additional signature of the token that allows for offline token transformation. By replacing the original signature with the `uip` the token is still proof of a user identity, but it no longer acts as a full access token and will be rejected by most plugin endpoints. Plugins can explicitly allow use of this limited token where required, but this should only be used when necessary when a full token is not available, and ideally just for read-only access. Use-cases for limited users tokens include cookie authentication of static assets, storage of user identity proofs in a database, and similar. -Backstage also supports authentication through a proxy where the user identity is read from the incoming request from the proxy, which has been decorated by an authenticating reverse proxy such as [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). The following proxy auth providers verify the signature of incoming requests, and are therefore safe to deploy with direct access by users: `awsAlb`, `cfAccess`, and `gcpIap`. Providers like `oauth2Proxy` does not verify the incoming request and can therefore be spoofed by a malicious internal user to supply the `auth` backend with forged identity information. It’s therefore highly recommended to restrict access to the `oauth2Proxy` endpoints, or use a different provider. +The communication across backend plugins uses a similar authentication scheme to the user authentication. Each backend plugin generates and publishes its own set of keys that it uses to sign its tokens, and the public keys are shared with all other plugins for verification. The expected location of each plugin's published JWKS is determined by the `DiscoveryService` implementation in the backend, which means that it is vital for any custom implementation of that service to be careful with user input. The tokens signed by each plugin contain both the source and target plugin ID, which means that the token can not be reused to access other plugins. + +When forwarding a user identity in a call across backend plugins only the limited user token with `uip` is used, wrapped in a new plugin token that is signed by the calling plugin. This means that the receiving plugin can trust the user identity, but it is not able to make further calls on behalf of the user except for with the plugins that it is authorized to call. That is except for any endpoints in other plugins that accept limited user tokens, which is a reason to avoid accepting them when possible. ## Catalog From a35ef27eadeda1b47ded934c87709200254e30ce Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Sun, 5 May 2024 21:53:57 -0300 Subject: [PATCH 035/153] fix(plugins/scaffolder-backend-module-github): only overriding default comit author when provide it Signed-off-by: Matheus Castiglioni --- .../api-report.md | 2 + .../githubPullRequest.examples.test.ts | 129 +++++++---- .../src/actions/githubPullRequest.examples.ts | 42 +++- .../src/actions/githubPullRequest.test.ts | 215 ++++++++++++++---- .../src/actions/githubPullRequest.ts | 49 +++- .../src/module.ts | 1 + .../actions/builtin/createBuiltinActions.ts | 1 + 7 files changed, 351 insertions(+), 88 deletions(-) diff --git a/plugins/scaffolder-backend-module-github/api-report.md b/plugins/scaffolder-backend-module-github/api-report.md index 07f5146901..cac2a3fee2 100644 --- a/plugins/scaffolder-backend-module-github/api-report.md +++ b/plugins/scaffolder-backend-module-github/api-report.md @@ -128,6 +128,8 @@ export interface CreateGithubPullRequestActionOptions { } | null>; } >; + // (undocumented) + config: Config; githubCredentialsProvider?: GithubCredentialsProvider; integrations: ScmIntegrationRegistry; } diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts index e881ae3192..26469dfcb4 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.test.ts @@ -103,6 +103,7 @@ describe('publish:github:pull-request examples', () => { integrations, githubCredentialsProvider, clientFactory, + config, }); }); @@ -134,10 +135,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -178,10 +175,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -221,10 +214,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -264,10 +253,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -314,10 +299,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -358,10 +339,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -402,10 +379,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -452,10 +425,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -502,10 +471,6 @@ describe('publish:github:pull-request examples', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -520,7 +485,7 @@ describe('publish:github:pull-request examples', () => { expect(mockContext.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); - it('Create a pull request with a git author', async () => { + it('Create a pull request with a git author name and email', async () => { const input = yaml.parse(examples[9].example).steps[0].input; await action.handler({ @@ -564,6 +529,94 @@ describe('publish:github:pull-request examples', () => { expect(mockContext.output).toHaveBeenCalledWith('pullRequestNumber', 123); }); + it('Create a pull request with a git author name', async () => { + const input = yaml.parse(examples[10].example).steps[0].input; + + await action.handler({ + ...mockContext, + workspacePath, + input, + }); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repo', + title: 'Create my new app', + body: 'This PR is really good', + head: 'new-app', + draft: undefined, + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'scaffolder@backstage.io', + name: 'Foo Bar', + }, + }, + ], + }); + + expect(fakeClient.rest.pulls.requestReviewers).not.toHaveBeenCalled(); + expect(mockContext.output).toHaveBeenCalledTimes(3); + expect(mockContext.output).toHaveBeenCalledWith('targetBranchName', 'main'); + expect(mockContext.output).toHaveBeenCalledWith( + 'remoteUrl', + 'https://github.com/myorg/myrepo/pull/123', + ); + expect(mockContext.output).toHaveBeenCalledWith('pullRequestNumber', 123); + }); + + it('Create a pull request with a git author email', async () => { + const input = yaml.parse(examples[11].example).steps[0].input; + + await action.handler({ + ...mockContext, + workspacePath, + input, + }); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repo', + title: 'Create my new app', + body: 'This PR is really good', + head: 'new-app', + draft: undefined, + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'foo@bar.example', + name: 'Scaffolder', + }, + }, + ], + }); + + expect(fakeClient.rest.pulls.requestReviewers).not.toHaveBeenCalled(); + expect(mockContext.output).toHaveBeenCalledTimes(3); + expect(mockContext.output).toHaveBeenCalledWith('targetBranchName', 'main'); + expect(mockContext.output).toHaveBeenCalledWith( + 'remoteUrl', + 'https://github.com/myorg/myrepo/pull/123', + ); + expect(mockContext.output).toHaveBeenCalledWith('pullRequestNumber', 123); + }); + it('Create a pull request with all parameters', async () => { mockDir.setContent({ [workspacePath]: { @@ -571,7 +624,7 @@ describe('publish:github:pull-request examples', () => { irrelevant: { 'bar.txt': 'Nothing to see here' }, }, }); - const input = yaml.parse(examples[10].example).steps[0].input; + const input = yaml.parse(examples[12].example).steps[0].input; await action.handler({ ...mockContext, diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts index f3042a7e15..b6d31e732b 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.examples.ts @@ -179,7 +179,7 @@ export const examples: TemplateExample[] = [ }), }, { - description: 'Create a pull request with a git author', + description: 'Create a pull request with a git author name and email', example: yaml.stringify({ steps: [ { @@ -197,6 +197,46 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Create a pull request with a git author name', + example: yaml.stringify({ + steps: [ + { + action: 'publish:github:pull-request', + name: 'Create a pull reuqest', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + branchName: 'new-app', + title: 'Create my new app', + description: 'This PR is really good', + // gitAuthorEmail will be 'scaffolder@backstage.io' + // once one author attribute has been set we need to set both + gitAuthorName: 'Foo Bar', + }, + }, + ], + }), + }, + { + description: 'Create a pull request with a git author email', + example: yaml.stringify({ + steps: [ + { + action: 'publish:github:pull-request', + name: 'Create a pull reuqest', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + branchName: 'new-app', + title: 'Create my new app', + description: 'This PR is really good', + // gitAuthorName will be 'Scaffolder' + // once one author attribute has been set we need to set both + gitAuthorEmail: 'foo@bar.example', + }, + }, + ], + }), + }, { description: 'Create a pull request with all parameters', example: yaml.stringify({ diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts index a38b070bdf..6f730fabcf 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts @@ -15,7 +15,7 @@ */ import { createRootLogger } from '@backstage/backend-common'; -import { ConfigReader } from '@backstage/config'; +import { Config, ConfigReader } from '@backstage/config'; import { GithubCredentialsProvider, ScmIntegrations, @@ -46,6 +46,8 @@ describe('createPublishGithubPullRequestAction', () => { pulls: { requestReviewers: jest.Mock }; }; }; + let config: Config; + let integrations: ScmIntegrations; const mockDir = createMockDirectory(); const workspacePath = mockDir.resolve('workspace'); @@ -53,7 +55,8 @@ describe('createPublishGithubPullRequestAction', () => { beforeEach(() => { mockDir.clear(); - const integrations = ScmIntegrations.fromConfig(new ConfigReader({})); + config = new ConfigReader({}); + integrations = ScmIntegrations.fromConfig(config); fakeClient = { createPullRequest: jest.fn(async (_: any) => { return { @@ -84,6 +87,7 @@ describe('createPublishGithubPullRequestAction', () => { integrations, githubCredentialsProvider, clientFactory, + config, }); }); @@ -155,10 +159,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -216,10 +216,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -279,10 +275,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -334,10 +326,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -465,10 +453,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '120000', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -518,10 +502,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100755', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -581,10 +561,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100755', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -640,10 +616,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], }); @@ -689,10 +661,6 @@ describe('createPublishGithubPullRequestAction', () => { mode: '100644', }, }, - author: { - email: 'scaffolder@backstage.io', - name: 'Scaffolder', - }, }, ], forceFork: true, @@ -700,7 +668,7 @@ describe('createPublishGithubPullRequestAction', () => { }); }); - describe('with author', () => { + describe('with author name and email', () => { let input: GithubPullRequestActionInput; let ctx: ActionContext; @@ -721,7 +689,7 @@ describe('createPublishGithubPullRequestAction', () => { ctx = createMockActionContext({ input, workspacePath }); }); - it('creates a pull request', async () => { + it('creates a pull request with author name', async () => { await instance.handler(ctx); expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ @@ -749,4 +717,171 @@ describe('createPublishGithubPullRequestAction', () => { }); }); }); + + describe('with author name', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + gitAuthorName: 'Foo Bar', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request with author name', async () => { + await instance.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'scaffolder@backstage.io', + name: 'Foo Bar', + }, + }, + ], + }); + }); + }); + + describe('with author email', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + gitAuthorEmail: 'foo@bar.example', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request with author name', async () => { + await instance.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'foo@bar.example', + name: 'Scaffolder', + }, + }, + ], + }); + }); + }); + + describe('with author from config file', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request with author name', async () => { + config = new ConfigReader({ + scaffolder: { + defaultAuthor: { + name: 'Config', + email: 'config@file.example', + }, + }, + }); + + const clientFactory = jest.fn(async () => fakeClient as any); + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: jest.fn(), + }; + + const instanceWithConfig = createPublishGithubPullRequestAction({ + integrations, + githubCredentialsProvider, + clientFactory, + config, + }); + + await instanceWithConfig.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'config@file.example', + name: 'Config', + }, + }, + ], + }); + }); + }); }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts index 0a256d36d5..3c40361af3 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts @@ -32,6 +32,7 @@ import { createPullRequest } from 'octokit-plugin-create-pull-request'; import { getOctokitOptions } from './helpers'; import { examples } from './githubPullRequest.examples'; import { LoggerService } from '@backstage/backend-plugin-api'; +import { Config } from '@backstage/config'; export type Encoding = 'utf-8' | 'base64'; @@ -100,6 +101,7 @@ export interface CreateGithubPullRequestActionOptions { } | null>; } >; + config: Config; } type GithubPullRequest = { @@ -119,6 +121,7 @@ export const createPublishGithubPullRequestAction = ( integrations, githubCredentialsProvider, clientFactory = defaultClientFactory, + config, } = options; return createTemplateAction<{ @@ -229,13 +232,13 @@ export const createPublishGithubPullRequestAction = ( type: 'string', title: 'Default Author Name', description: - "Sets the default author name for the commit. The default value is 'Scaffolder'", + "Sets the default author name for the commit. The default value is the authenticated user or 'Scaffolder'", }, gitAuthorEmail: { type: 'string', title: 'Default Author Email', description: - "Sets the default author email for the commit. The default value is 'scaffolder@backstage.io'", + "Sets the default author email for the commit. The default value is the authenticated user or 'scaffolder@backstage.io'", }, }, }, @@ -276,8 +279,8 @@ export const createPublishGithubPullRequestAction = ( commitMessage, update, forceFork, - gitAuthorEmail = 'scaffolder@backstage.io', - gitAuthorName = 'Scaffolder', + gitAuthorEmail, + gitAuthorName, } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -343,11 +346,10 @@ export const createPublishGithubPullRequestAction = ( changes: [ { files, - commit: commitMessage ?? title, - author: { - name: gitAuthorName, - email: gitAuthorEmail, - }, + commit: + commitMessage ?? + config.getOptionalString('scaffolder.defaultCommitMessage') ?? + title, }, ], body: description, @@ -357,6 +359,35 @@ export const createPublishGithubPullRequestAction = ( forceFork, }; + const gitAuthorInfo = { + name: + gitAuthorName ?? + config.getOptionalString('scaffolder.defaultAuthor.name'), + email: + gitAuthorEmail ?? + config.getOptionalString('scaffolder.defaultAuthor.email'), + }; + + if (gitAuthorInfo.name || gitAuthorInfo.email) { + if (Array.isArray(createOptions.changes)) { + createOptions.changes = createOptions.changes.map(change => ({ + ...change, + author: { + name: gitAuthorInfo.name || 'Scaffolder', + email: gitAuthorInfo.email || 'scaffolder@backstage.io', + }, + })); + } else { + createOptions.changes = { + ...createOptions.changes, + author: { + name: gitAuthorInfo.name || 'Scaffolder', + email: gitAuthorInfo.email || 'scaffolder@backstage.io', + }, + }; + } + } + if (targetBranchName) { createOptions.base = targetBranchName; } diff --git a/plugins/scaffolder-backend-module-github/src/module.ts b/plugins/scaffolder-backend-module-github/src/module.ts index 79c954a6dd..1817a68bfb 100644 --- a/plugins/scaffolder-backend-module-github/src/module.ts +++ b/plugins/scaffolder-backend-module-github/src/module.ts @@ -89,6 +89,7 @@ export const githubModule = createBackendModule({ createPublishGithubPullRequestAction({ integrations, githubCredentialsProvider, + config, }), ); }, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts index a017c2e224..673776bec9 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts @@ -178,6 +178,7 @@ export const createBuiltinActions = ( createPublishGithubPullRequestAction({ integrations, githubCredentialsProvider, + config, }), createPublishGitlabAction({ integrations, From b000ee6fa2f28cbcf0edcf9ae15703b352fc59ac Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Sun, 5 May 2024 22:12:18 -0300 Subject: [PATCH 036/153] fix(plugins/scaffolder-backend-module-github): api report config undocumented Signed-off-by: Matheus Castiglioni --- plugins/scaffolder-backend-module-github/api-report.md | 1 - .../src/actions/githubPullRequest.ts | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-github/api-report.md b/plugins/scaffolder-backend-module-github/api-report.md index cac2a3fee2..4f3cd819ad 100644 --- a/plugins/scaffolder-backend-module-github/api-report.md +++ b/plugins/scaffolder-backend-module-github/api-report.md @@ -128,7 +128,6 @@ export interface CreateGithubPullRequestActionOptions { } | null>; } >; - // (undocumented) config: Config; githubCredentialsProvider?: GithubCredentialsProvider; integrations: ScmIntegrationRegistry; diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts index 3c40361af3..cc5e1280ef 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts @@ -101,6 +101,9 @@ export interface CreateGithubPullRequestActionOptions { } | null>; } >; + /** + * An instance of {@link @backstage/config#Config} that will be used in the action. + */ config: Config; } From e5486988c06a6757eb918ce972f4767c22cfa487 Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Sun, 5 May 2024 22:39:44 -0300 Subject: [PATCH 037/153] test(plugins/scaffolder-backend-module-github): adding missing author data priority test Signed-off-by: Matheus Castiglioni --- .../src/actions/githubPullRequest.test.ts | 79 ++++++++++++++++++- 1 file changed, 75 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts index 6f730fabcf..dd7641ce4c 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts @@ -689,7 +689,7 @@ describe('createPublishGithubPullRequestAction', () => { ctx = createMockActionContext({ input, workspacePath }); }); - it('creates a pull request with author name', async () => { + it('creates a pull request', async () => { await instance.handler(ctx); expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ @@ -738,7 +738,7 @@ describe('createPublishGithubPullRequestAction', () => { ctx = createMockActionContext({ input, workspacePath }); }); - it('creates a pull request with author name', async () => { + it('creates a pull request', async () => { await instance.handler(ctx); expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ @@ -787,7 +787,7 @@ describe('createPublishGithubPullRequestAction', () => { ctx = createMockActionContext({ input, workspacePath }); }); - it('creates a pull request with author name', async () => { + it('creates a pull request', async () => { await instance.handler(ctx); expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ @@ -835,7 +835,7 @@ describe('createPublishGithubPullRequestAction', () => { ctx = createMockActionContext({ input, workspacePath }); }); - it('creates a pull request with author name', async () => { + it('creates a pull request with default config attributes', async () => { config = new ConfigReader({ scaffolder: { defaultAuthor: { @@ -884,4 +884,75 @@ describe('createPublishGithubPullRequestAction', () => { }); }); }); + + describe('with author attributes and config file', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + gitAuthorEmail: 'foo@bar.example', + gitAuthorName: 'Foo Bar', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request with using author name and email from input', async () => { + config = new ConfigReader({ + scaffolder: { + defaultAuthor: { + name: 'Config', + email: 'config@file.example', + }, + }, + }); + + const clientFactory = jest.fn(async () => fakeClient as any); + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: jest.fn(), + }; + + const instanceWithConfig = createPublishGithubPullRequestAction({ + integrations, + githubCredentialsProvider, + clientFactory, + config, + }); + + await instanceWithConfig.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'foo@bar.example', + name: 'Foo Bar', + }, + }, + ], + }); + }); + }); }); From b7cc1e8cc8547e00c2946fa03b8a9f1ffcc5c690 Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Tue, 7 May 2024 08:05:43 -0300 Subject: [PATCH 038/153] Update .changeset/nasty-papayas-heal.md Co-authored-by: Ben Lambert Signed-off-by: Matheus Castiglioni --- .changeset/nasty-papayas-heal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/nasty-papayas-heal.md b/.changeset/nasty-papayas-heal.md index cfeacb3238..371eba66a7 100644 --- a/.changeset/nasty-papayas-heal.md +++ b/.changeset/nasty-papayas-heal.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend-module-github': minor --- -Adding support to change the default commit author for pull-request github action" +Adding support to change the default commit author for `publish:github:pull-request` From 13bd8ef5ba96ac194e4481a755288f41b08bbb86 Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Tue, 7 May 2024 08:05:56 -0300 Subject: [PATCH 039/153] Update .changeset/nasty-papayas-heal.md Co-authored-by: Ben Lambert Signed-off-by: Matheus Castiglioni --- .changeset/nasty-papayas-heal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/nasty-papayas-heal.md b/.changeset/nasty-papayas-heal.md index 371eba66a7..0e8e3f7ccc 100644 --- a/.changeset/nasty-papayas-heal.md +++ b/.changeset/nasty-papayas-heal.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-scaffolder-backend-module-github': minor +'@backstage/plugin-scaffolder-backend-module-github': patch --- Adding support to change the default commit author for `publish:github:pull-request` From e40bd9a44000e712d858dd4e09da5ca8f2237b7a Mon Sep 17 00:00:00 2001 From: Stanislav C <150145013+stanislav-c@users.noreply.github.com> Date: Tue, 7 May 2024 14:08:41 +0200 Subject: [PATCH 040/153] fix: correct position of the copy to clipboard button Signed-off-by: Stanislav C <150145013+stanislav-c@users.noreply.github.com> --- .changeset/late-students-live.md | 5 +++++ plugins/techdocs/src/reader/transformers/copyToClipboard.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/late-students-live.md diff --git a/.changeset/late-students-live.md b/.changeset/late-students-live.md new file mode 100644 index 0000000000..6a7c203e9e --- /dev/null +++ b/.changeset/late-students-live.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Fixed bug in CopyToClipboardButton component where positioning of the "Copy to clipboard" button in techdocs code snippets was broken in some cases diff --git a/plugins/techdocs/src/reader/transformers/copyToClipboard.tsx b/plugins/techdocs/src/reader/transformers/copyToClipboard.tsx index 70868baa21..53f407586a 100644 --- a/plugins/techdocs/src/reader/transformers/copyToClipboard.tsx +++ b/plugins/techdocs/src/reader/transformers/copyToClipboard.tsx @@ -67,7 +67,7 @@ const CopyToClipboardButton = ({ text }: CopyToClipboardButtonProps) => { leaveDelay={1000} > From 18cd46471f2936027cd2492523892f27bbe4bf3b Mon Sep 17 00:00:00 2001 From: Matheus Castiglioni Date: Tue, 7 May 2024 15:01:16 -0300 Subject: [PATCH 041/153] chore(plugins/scaffolder-backend-module-github): making config optional Signed-off-by: Matheus Castiglioni --- .../api-report.md | 2 +- .../src/actions/githubPullRequest.test.ts | 60 +++++++++++++++++++ .../src/actions/githubPullRequest.ts | 8 +-- 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder-backend-module-github/api-report.md b/plugins/scaffolder-backend-module-github/api-report.md index 4f3cd819ad..b1a1c80af5 100644 --- a/plugins/scaffolder-backend-module-github/api-report.md +++ b/plugins/scaffolder-backend-module-github/api-report.md @@ -128,7 +128,7 @@ export interface CreateGithubPullRequestActionOptions { } | null>; } >; - config: Config; + config?: Config; githubCredentialsProvider?: GithubCredentialsProvider; integrations: ScmIntegrationRegistry; } diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts index dd7641ce4c..20508494b8 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.test.ts @@ -955,4 +955,64 @@ describe('createPublishGithubPullRequestAction', () => { }); }); }); + + describe('with author fallback and no config', () => { + let input: GithubPullRequestActionInput; + let ctx: ActionContext; + + beforeEach(() => { + input = { + repoUrl: 'github.com?owner=myorg&repo=myrepo', + title: 'Create my new app', + branchName: 'new-app', + description: 'This PR is really good', + gitAuthorName: 'Foo Bar', + }; + + mockDir.setContent({ + [workspacePath]: { 'file.txt': 'Hello there!' }, + }); + + ctx = createMockActionContext({ input, workspacePath }); + }); + + it('creates a pull request with using author name and email fallback when have no config', async () => { + const clientFactory = jest.fn(async () => fakeClient as any); + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: jest.fn(), + }; + + const instanceWithConfig = createPublishGithubPullRequestAction({ + integrations, + githubCredentialsProvider, + clientFactory, + }); + + await instanceWithConfig.handler(ctx); + + expect(fakeClient.createPullRequest).toHaveBeenCalledWith({ + owner: 'myorg', + repo: 'myrepo', + title: 'Create my new app', + head: 'new-app', + body: 'This PR is really good', + changes: [ + { + commit: 'Create my new app', + files: { + 'file.txt': { + content: Buffer.from('Hello there!').toString('base64'), + encoding: 'base64', + mode: '100644', + }, + }, + author: { + email: 'scaffolder@backstage.io', + name: 'Foo Bar', + }, + }, + ], + }); + }); + }); }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts index cc5e1280ef..a72ec8345b 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts @@ -104,7 +104,7 @@ export interface CreateGithubPullRequestActionOptions { /** * An instance of {@link @backstage/config#Config} that will be used in the action. */ - config: Config; + config?: Config; } type GithubPullRequest = { @@ -351,7 +351,7 @@ export const createPublishGithubPullRequestAction = ( files, commit: commitMessage ?? - config.getOptionalString('scaffolder.defaultCommitMessage') ?? + config?.getOptionalString('scaffolder.defaultCommitMessage') ?? title, }, ], @@ -365,10 +365,10 @@ export const createPublishGithubPullRequestAction = ( const gitAuthorInfo = { name: gitAuthorName ?? - config.getOptionalString('scaffolder.defaultAuthor.name'), + config?.getOptionalString('scaffolder.defaultAuthor.name'), email: gitAuthorEmail ?? - config.getOptionalString('scaffolder.defaultAuthor.email'), + config?.getOptionalString('scaffolder.defaultAuthor.email'), }; if (gitAuthorInfo.name || gitAuthorInfo.email) { From f57e0314c835cd89b1d2d6a727242ff93ba4db89 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Wed, 8 May 2024 09:07:30 -0300 Subject: [PATCH 042/153] chore: render icons from EntityDisplayName Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../components/EntityListComponent/EntityListComponent.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx index 58b541795d..12c7376f9a 100644 --- a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx +++ b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx @@ -149,11 +149,8 @@ export const EntityListComponent = (props: EntityListComponentProps) => { } : {})} > - {Icon && } - } + primary={} /> ); From f0b2a070844edf48c63ac8cf4c4209e02a2ecfc2 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Wed, 8 May 2024 09:32:38 -0300 Subject: [PATCH 043/153] chore: lint error resolved Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../components/EntityListComponent/EntityListComponent.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx index 12c7376f9a..80a2d90fcc 100644 --- a/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx +++ b/plugins/catalog-import/src/components/EntityListComponent/EntityListComponent.tsx @@ -19,7 +19,7 @@ import { CompoundEntityRef, stringifyEntityRef, } from '@backstage/catalog-model'; -import { useApi, useApp } from '@backstage/core-plugin-api'; +import { useApi } from '@backstage/core-plugin-api'; import { EntityDisplayName, EntityRefLink, @@ -75,7 +75,6 @@ export const EntityListComponent = (props: EntityListComponentProps) => { withLinks = false, } = props; - const app = useApp(); const classes = useStyles(); const entityPresentationApi = useApi(entityPresentationApiRef); const [expandedUrls, setExpandedUrls] = useState([]); @@ -134,9 +133,6 @@ export const EntityListComponent = (props: EntityListComponentProps) => { > {sortEntities(r.entities).map(entity => { - const Icon = app.getSystemIcon( - `kind:${entity.kind.toLocaleLowerCase('en-US')}`, - ); return ( Date: Wed, 8 May 2024 15:23:53 +0200 Subject: [PATCH 044/153] app-next: fix empty homepage Signed-off-by: Patrik Oldsberg --- packages/app-next/src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-next/src/App.tsx b/packages/app-next/src/App.tsx index 83b921aea1..c911a01258 100644 --- a/packages/app-next/src/App.tsx +++ b/packages/app-next/src/App.tsx @@ -80,7 +80,7 @@ TODO: const homePageExtension = createExtension({ name: 'myhomepage', - attachTo: { id: 'home', input: 'props' }, + attachTo: { id: 'page:home', input: 'props' }, output: { children: coreExtensionData.reactElement, title: titleExtensionDataRef, From 3e8d4ca63ef54ed998467a55d0368b2c609bc2eb Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 8 May 2024 20:15:06 +0200 Subject: [PATCH 045/153] catalog-github: add default namespace support to GithubMultiOrgEntityProvider Signed-off-by: Vincenzo Scamporlino --- .../GithubMultiOrgEntityProvider.test.ts | 318 +++++++++++++++++- .../providers/GithubMultiOrgEntityProvider.ts | 16 +- 2 files changed, 318 insertions(+), 16 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts index 0542e64d64..87d197d4ea 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts @@ -68,26 +68,24 @@ describe('GithubMultiOrgEntityProvider', () => { headers: { token: 'blah' }, type: 'app', }); - - const githubCredentialsProvider: GithubCredentialsProvider = { - getCredentials: mockGetCredentials, - }; - - entityProvider = new GithubMultiOrgEntityProvider({ - id: 'my-id', - gitHubConfig, - githubCredentialsProvider, - githubUrl: 'https://github.com', - logger, - orgs: ['orgA', 'orgB'], // only include for tests that require it - }); - - entityProvider.connect(entityProviderConnection); }); afterEach(() => jest.resetAllMocks()); it('should read specified orgs', async () => { + entityProvider = new GithubMultiOrgEntityProvider({ + id: 'my-id', + gitHubConfig, + githubCredentialsProvider: { + getCredentials: mockGetCredentials, + }, + githubUrl: 'https://github.com', + logger, + orgs: ['orgA', 'orgB'], + }); + + await entityProvider.connect(entityProviderConnection); + mockClient .mockResolvedValueOnce({ organization: { @@ -348,6 +346,19 @@ describe('GithubMultiOrgEntityProvider', () => { }); it('should read every accessible org', async () => { + entityProvider = new GithubMultiOrgEntityProvider({ + id: 'my-id', + gitHubConfig, + githubCredentialsProvider: { + getCredentials: mockGetCredentials, + }, + githubUrl: 'https://github.com', + logger, + orgs: ['orgA', 'orgB'], + }); + + await entityProvider.connect(entityProviderConnection); + getAllInstallationsMock.mockResolvedValue([ { target_type: 'Organization', @@ -636,7 +647,284 @@ describe('GithubMultiOrgEntityProvider', () => { }); }); + it('should use the default namespace if options.defaultNamespace is provided', async () => { + mockClient + .mockResolvedValueOnce({ + organization: { + membersWithRole: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + login: 'a', + name: 'b', + bio: 'c', + email: 'd', + avatarUrl: 'e', + }, + { + login: 'x', + name: 'y', + bio: 'z', + email: 'w', + avatarUrl: 'v', + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + teams: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + slug: 'team', + combinedSlug: 'orgC/team', + name: 'Team', + description: 'The one and only team', + avatarUrl: 'http://example.com/team.jpeg', + parentTeam: { + slug: 'parent', + combinedSlug: '', + members: { pageInfo: { hasNextPage: false }, nodes: [] }, + }, + members: { + pageInfo: { hasNextPage: false }, + nodes: [{ login: 'a' }, { login: 'x' }], + }, + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + membersWithRole: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + login: 'a', + name: 'b', + bio: 'c', + email: 'd', + avatarUrl: 'e', + }, + { + login: 'x', + name: 'y', + bio: 'z', + email: 'w', + avatarUrl: 'v', + }, + { + login: 'q', + name: 'r', + bio: 's', + email: 't', + avatarUrl: 'u', + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + teams: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + slug: 'team', + combinedSlug: 'orgD/team', + name: 'Team', + description: 'The one and only team', + avatarUrl: 'http://example.com/team.jpeg', + parentTeam: { + slug: 'parent', + combinedSlug: '', + members: { pageInfo: { hasNextPage: false }, nodes: [] }, + }, + members: { + pageInfo: { hasNextPage: false }, + nodes: [{ login: 'a' }, { login: 'q' }], + }, + }, + ], + }, + }, + }); + + (graphql.defaults as jest.Mock).mockReturnValue(mockClient); + + entityProvider = new GithubMultiOrgEntityProvider({ + id: 'my-id', + gitHubConfig, + githubCredentialsProvider: { + getCredentials: mockGetCredentials, + }, + githubUrl: 'https://github.com', + logger, + orgs: ['orgA', 'orgB'], + defaultNamespace: true, + }); + + await entityProvider.connect(entityProviderConnection); + await entityProvider.read(); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + entities: [ + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/a', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/a', + 'github.com/user-login': 'a', + }, + description: 'c', + name: 'a', + }, + spec: { + memberOf: ['team'], + profile: { + displayName: 'b', + email: 'd', + picture: 'e', + }, + }, + }, + locationKey: 'github-multi-org-provider:my-id', + }, + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/x', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/x', + 'github.com/user-login': 'x', + }, + description: 'z', + name: 'x', + }, + spec: { + memberOf: ['team'], + profile: { + displayName: 'y', + email: 'w', + picture: 'v', + }, + }, + }, + locationKey: 'github-multi-org-provider:my-id', + }, + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/q', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/q', + 'github.com/user-login': 'q', + }, + description: 's', + name: 'q', + }, + spec: { + memberOf: ['team'], + profile: { + displayName: 'r', + email: 't', + picture: 'u', + }, + }, + }, + locationKey: 'github-multi-org-provider:my-id', + }, + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/orgC/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/orgC/teams/team', + 'github.com/team-slug': 'orgC/team', + }, + name: 'team', + description: 'The one and only team', + }, + spec: { + children: [], + parent: 'parent', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + type: 'team', + members: ['default/a', 'default/x'], + }, + }, + locationKey: 'github-multi-org-provider:my-id', + }, + { + entity: { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/orgD/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/orgD/teams/team', + 'github.com/team-slug': 'orgD/team', + }, + name: 'team', + description: 'The one and only team', + }, + spec: { + children: [], + parent: 'parent', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + type: 'team', + members: ['default/a', 'default/q'], + }, + }, + locationKey: 'github-multi-org-provider:my-id', + }, + ], + type: 'full', + }); + }); + it('should not call applyMutation if an error is thrown', async () => { + entityProvider = new GithubMultiOrgEntityProvider({ + id: 'my-id', + gitHubConfig, + githubCredentialsProvider: { + getCredentials: mockGetCredentials, + }, + githubUrl: 'https://github.com', + logger, + orgs: ['orgA', 'orgB'], + }); + + await entityProvider.connect(entityProviderConnection); + mockClient.mockImplementationOnce(() => { throw new Error('Network Error'); }); diff --git a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts index f07d033ecd..bac6383459 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts @@ -143,6 +143,15 @@ export interface GithubMultiOrgEntityProviderOptions { */ githubCredentialsProvider?: GithubCredentialsProvider; + /** + * Use the default namespace for groups. By default, groups will be namespaced according to their GitHub org. + * + * @remarks + * + * If set to true, groups with the same name across different orgs will be considered the same group. + */ + defaultNamespace?: boolean; + /** * Optionally include a user transformer for transforming from GitHub users to User Entities */ @@ -198,6 +207,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { userTransformer: options.userTransformer, teamTransformer: options.teamTransformer, events: options.events, + defaultNamespace: options.defaultNamespace, }); provider.schedule(options.schedule); @@ -216,6 +226,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { orgs?: string[]; userTransformer?: UserTransformer; teamTransformer?: TeamTransformer; + defaultNamespace?: boolean; }, ) {} @@ -846,7 +857,10 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { const result = await defaultOrganizationTeamTransformer(team, ctx); if (result && result.spec) { - result.metadata.namespace = ctx.org.toLocaleLowerCase('en-US'); + if (!this.options.defaultNamespace) { + result.metadata.namespace = ctx.org.toLocaleLowerCase('en-US'); + } + // Group `spec.members` inherits the namespace of it's group so need to explicitly specify refs here result.spec.members = team.members.map( user => `${DEFAULT_NAMESPACE}/${user.login}`, From 611e089668fcc9c61c834403082d079aa73fdfed Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 8 May 2024 20:24:39 +0200 Subject: [PATCH 046/153] catalog-github: api reports Signed-off-by: Vincenzo Scamporlino --- plugins/catalog-backend-module-github/api-report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index b53d1b7b17..3c7b563593 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -150,6 +150,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { orgs?: string[]; userTransformer?: UserTransformer; teamTransformer?: TeamTransformer; + defaultNamespace?: boolean; }); // (undocumented) connect(connection: EntityProviderConnection): Promise; @@ -165,6 +166,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { // @public export interface GithubMultiOrgEntityProviderOptions { + defaultNamespace?: boolean; events?: EventsService; githubCredentialsProvider?: GithubCredentialsProvider; githubUrl: string; From 5bdeaa7300072bc83e6fb6d6c3b5fe15bd942d8c Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 8 May 2024 20:24:55 +0200 Subject: [PATCH 047/153] github-org: changesets Signed-off-by: Vincenzo Scamporlino --- .changeset/red-mangos-fly.md | 5 +++++ .changeset/wild-cats-hug.md | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/red-mangos-fly.md create mode 100644 .changeset/wild-cats-hug.md diff --git a/.changeset/red-mangos-fly.md b/.changeset/red-mangos-fly.md new file mode 100644 index 0000000000..73af978be2 --- /dev/null +++ b/.changeset/red-mangos-fly.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github-org': patch +--- + +Fixed an issue where the `catalog-backend-module-github-org` would not correctly create groups using `default` as namespace in case a single organization was configured. diff --git a/.changeset/wild-cats-hug.md b/.changeset/wild-cats-hug.md new file mode 100644 index 0000000000..180bf50747 --- /dev/null +++ b/.changeset/wild-cats-hug.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Added `defaultNamespace` option to `GithubMultiOrgEntityProvider`. + +If set to true, the provider will use `default` as the namespace for all group entities. Groups with the same name across different orgs will be considered the same group. From 11c9f1f0617a059d4953db2e7c1193095c20f16f Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 8 May 2024 20:25:22 +0200 Subject: [PATCH 048/153] github-org: use default namespace if a single org is provided Signed-off-by: Vincenzo Scamporlino --- plugins/catalog-backend-module-github-org/src/module.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-backend-module-github-org/src/module.ts b/plugins/catalog-backend-module-github-org/src/module.ts index 0baa768644..91e0cff049 100644 --- a/plugins/catalog-backend-module-github-org/src/module.ts +++ b/plugins/catalog-backend-module-github-org/src/module.ts @@ -113,6 +113,7 @@ export const catalogModuleGithubOrgEntityProvider = createBackendModule({ logger, userTransformer, teamTransformer, + defaultNamespace: definition.orgs?.length === 1, }), ); } From 44fd44dea1d758011fabfbb2dc7f69b3022aded5 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Thu, 9 May 2024 00:15:51 +0530 Subject: [PATCH 049/153] line prop is back Signed-off-by: npiyush97 --- .../OverflowTooltip/OverflowTooltip.stories.tsx | 8 ++++++-- .../src/components/OverflowTooltip/OverflowTooltip.tsx | 9 +++++---- .../catalog-react/src/components/EntityTable/columns.tsx | 1 + plugins/catalog/src/components/CatalogTable/columns.tsx | 1 + 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx index a302a0a7e3..5ab5ba7dc4 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.stories.tsx @@ -33,12 +33,16 @@ export const Default = () => ( export const MultiLine = () => ( - + ); export const DifferentTitle = () => ( - + ); diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index 12de79644f..ab45d87d33 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -1,4 +1,3 @@ -/* eslint-disable no-console */ /* * Copyright 2020 The Backstage Authors * @@ -23,6 +22,7 @@ import Typography from '@material-ui/core/Typography'; type Props = { text?: string | undefined; title?: TooltipProps['title']; + line?: number | undefined; placement?: TooltipProps['placement']; }; @@ -35,17 +35,18 @@ const useStyles = makeStyles( }, typo: { maxWidth: 200, - display: 'inline-block', overflow: 'hidden', - whiteSpace: 'nowrap', textOverflow: 'ellipsis', + display: '-webkit-box', + '-webkit-line-clamp': ({ line }: Props) => line, + '-webkit-box-orient': 'vertical', }, }, { name: 'BackstageOverflowTooltip' }, ); export function OverflowTooltip(props: Props) { - const classes = useStyles(); + const classes = useStyles(props); return ( ), }; diff --git a/plugins/catalog/src/components/CatalogTable/columns.tsx b/plugins/catalog/src/components/CatalogTable/columns.tsx index d5362badda..5d2f9146d9 100644 --- a/plugins/catalog/src/components/CatalogTable/columns.tsx +++ b/plugins/catalog/src/components/CatalogTable/columns.tsx @@ -141,6 +141,7 @@ export const columnFactories = Object.freeze({ ), width: 'auto', From 39564b326597080950e3606d40359fb265bb9d24 Mon Sep 17 00:00:00 2001 From: David Weber Date: Mon, 11 Mar 2024 23:08:36 +0100 Subject: [PATCH 050/153] feat: allow multiple edges with different type Signed-off-by: David Weber --- .changeset/tame-jokes-bow.md | 5 ++ .../DefaultRenderLabel.tsx | 2 +- .../useEntityRelationNodesAndEdges.test.ts | 24 --------- .../useEntityRelationNodesAndEdges.ts | 51 ++++++++++++++++++- 4 files changed, 56 insertions(+), 26 deletions(-) create mode 100644 .changeset/tame-jokes-bow.md diff --git a/.changeset/tame-jokes-bow.md b/.changeset/tame-jokes-bow.md new file mode 100644 index 0000000000..e08cf9ca0c --- /dev/null +++ b/.changeset/tame-jokes-bow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-graph': patch +--- + +Allow multiple edges with different type (e.g. `ownedBy` and `applicationOwnerBy`) to have the same source and target node. diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/DefaultRenderLabel.tsx b/plugins/catalog-graph/src/components/EntityRelationsGraph/DefaultRenderLabel.tsx index cde4808f6e..ae01a113dd 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/DefaultRenderLabel.tsx +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/DefaultRenderLabel.tsx @@ -38,7 +38,7 @@ export function DefaultRenderLabel({ return ( {relations.map((r, i) => ( - 0 && classes.secondary)}> + {i > 0 && / } {r} diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.test.ts b/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.test.ts index 8c7b59b9c4..0a5e43bf37 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.test.ts +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.test.ts @@ -371,12 +371,6 @@ describe('useEntityRelationNodesAndEdges', () => { relations: [RELATION_HAS_PART, RELATION_PART_OF], to: 'b:d/c1', }, - { - from: 'b:d/c', - label: 'visible', - relations: [RELATION_HAS_PART, RELATION_PART_OF], - to: 'b:d/c1', - }, { from: 'b:d/c1', label: 'visible', @@ -389,24 +383,6 @@ describe('useEntityRelationNodesAndEdges', () => { relations: [RELATION_HAS_PART, RELATION_PART_OF], to: 'b:d/c2', }, - { - from: 'b:d/c1', - label: 'visible', - relations: [RELATION_HAS_PART, RELATION_PART_OF], - to: 'b:d/c2', - }, - { - from: 'b:d/c', - label: 'visible', - relations: [RELATION_OWNER_OF, RELATION_OWNED_BY], - to: 'k:d/a1', - }, - { - from: 'b:d/c1', - label: 'visible', - relations: [RELATION_OWNER_OF, RELATION_OWNED_BY], - to: 'k:d/a1', - }, ]); }); diff --git a/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.ts b/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.ts index d2a5138ccb..74aff1b3d0 100644 --- a/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.ts +++ b/plugins/catalog-graph/src/components/EntityRelationsGraph/useEntityRelationNodesAndEdges.ts @@ -146,11 +146,60 @@ export function useEntityRelationNodesAndEdges({ nodeQueue.push(rel.targetRef); visitedNodes.add(rel.targetRef); } + + // if unidirectional add missing relations as entities are only visited once + if (unidirectional) { + const findIndex = edges.findIndex( + edge => + entityRef === edge.from && + rel.targetRef === edge.to && + !edge.relations.includes(rel.type), + ); + if (findIndex >= 0) { + if (mergeRelations) { + const pair = relationPairs.find( + ([l, r]) => l === rel.type || r === rel.type, + ) ?? [rel.type]; + edges[findIndex].relations = [ + ...edges[findIndex].relations, + ...pair, + ]; + } else { + edges[findIndex].relations = [ + ...edges[findIndex].relations, + rel.type, + ]; + } + } + } }); } } - setNodesAndEdges({ nodes, edges }); + // Reduce edges as the dependency graph anyway ignores duplicated edges regarding from / to + // Additionally, this will improve rendering speed for the dependency graph + const finalEdges = edges.reduce((previousEdges, currentEdge) => { + const indexFound = previousEdges.findIndex( + previousEdge => + previousEdge.from === currentEdge.from && + previousEdge.to === currentEdge.to, + ); + if (indexFound >= 0) { + previousEdges[indexFound] = { + ...previousEdges[indexFound], + relations: Array.from( + new Set([ + ...previousEdges[indexFound].relations, + ...currentEdge.relations, + ]), + ), + }; + return previousEdges; + } + return [...previousEdges, currentEdge]; + }, [] as EntityEdge[]); + + setNodesAndEdges({ nodes, edges: finalEdges }); }, 100, [ From 1bed9a35c02ac7c215f905dc0bfc358a667285e8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 9 May 2024 09:50:12 +0200 Subject: [PATCH 051/153] core-app-api: remove fallback to provider expiration Signed-off-by: Patrik Oldsberg --- .changeset/slimy-donkeys-laugh.md | 5 +++++ .../src/apis/implementations/auth/oauth2/OAuth2.ts | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 .changeset/slimy-donkeys-laugh.md diff --git a/.changeset/slimy-donkeys-laugh.md b/.changeset/slimy-donkeys-laugh.md new file mode 100644 index 0000000000..c18102e68c --- /dev/null +++ b/.changeset/slimy-donkeys-laugh.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-app-api': patch +--- + +The Backstage identity session expiration check will no longer fall back to using the provider expiration. This was introduced to smooth out the rollout of Backstage release 1.18, and is no longer needed. diff --git a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts index 6be7cfc89d..dbad031652 100644 --- a/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -116,16 +116,11 @@ export default class OAuth2 }, }; if (backstageIdentity) { - // TODO(Rugvip): This fallback can be removed a few releases after 1.18. It's there to avoid - // breaking deployments that update their frontend before updating their backend. - const expInSec = - backstageIdentity.expiresInSeconds ?? - res.providerInfo.expiresInSeconds; session.backstageIdentity = { token: backstageIdentity.token, identity: backstageIdentity.identity, - expiresAt: expInSec - ? new Date(Date.now() + expInSec * 1000) + expiresAt: backstageIdentity.expiresInSeconds + ? new Date(Date.now() + backstageIdentity.expiresInSeconds * 1000) : undefined, }; } From 507185c1f2e6286e14de9537fada65d69e412b3f Mon Sep 17 00:00:00 2001 From: Marley Date: Thu, 9 May 2024 10:40:28 +0100 Subject: [PATCH 052/153] Fixed typo in 05-extension-overrides.md Signed-off-by: Marley --- docs/frontend-system/architecture/05-extension-overrides.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/frontend-system/architecture/05-extension-overrides.md b/docs/frontend-system/architecture/05-extension-overrides.md index 21028627bc..63a2e58716 100644 --- a/docs/frontend-system/architecture/05-extension-overrides.md +++ b/docs/frontend-system/architecture/05-extension-overrides.md @@ -108,7 +108,7 @@ const customSearchPage = createPageExtension({ loader: () => import('./SearchPage').then(m => m.), }); -export createExtensionOverrides({ +export default createExtensionOverrides({ extensions: [customSearchPage] }); ``` From 48086b590f51f5081a9ec5fdcab755a2f0cf9382 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 9 May 2024 15:14:38 +0530 Subject: [PATCH 053/153] Updated document of resource permission check Signed-off-by: AmbrishRamachandiran --- .../plugin-authors/03-adding-a-resource-permission-check.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md index 76c1a85e24..b3aeb13a68 100644 --- a/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md +++ b/docs/permissions/plugin-authors/03-adding-a-resource-permission-check.md @@ -144,7 +144,11 @@ export const rules = { isOwner }; `makeCreatePermissionRule` is a helper used to ensure that rules created for this plugin use consistent types for the resource and query. -> Note: To support custom rules defined by Backstage integrators, you must export `createTodoListPermissionRule` from the backend package and provide some way for custom rules to be passed in before the backend starts, likely via `createRouter`. +:::note Note + +To support custom rules defined by Backstage integrators, you must export `createTodoListPermissionRule` from the backend package and provide some way for custom rules to be passed in before the backend starts, likely via `createRouter`. + +::: We have created a new `isOwner` rule, which is going to be automatically used by the permission framework whenever a conditional response is returned in response to an authorized request with an attached `resourceRef`. Specifically, the `apply` function is used to understand whether the passed resource should be authorized or not. From 905d18b50f1313384efb836f51a8b03a0fa35ab3 Mon Sep 17 00:00:00 2001 From: Marley Date: Thu, 9 May 2024 12:46:46 +0100 Subject: [PATCH 054/153] Fixed typo in 05-extension-overrides.md Signed-off-by: Marley --- docs/frontend-system/architecture/05-extension-overrides.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/frontend-system/architecture/05-extension-overrides.md b/docs/frontend-system/architecture/05-extension-overrides.md index 63a2e58716..f9bd5edd82 100644 --- a/docs/frontend-system/architecture/05-extension-overrides.md +++ b/docs/frontend-system/architecture/05-extension-overrides.md @@ -59,7 +59,7 @@ const apertureDarkTheme = createThemeExtension({ }); // Creating an extension overrides preset -export createExtensionOverrides({ +export default createExtensionOverrides({ extensions: [apertureLightTheme, apertureDarkTheme] }); ``` From dce858ac36dc493b2009d31dba976d0334c56bb9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 9 May 2024 13:48:48 +0200 Subject: [PATCH 055/153] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Patrik Oldsberg --- docs/overview/threat-model.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/overview/threat-model.md b/docs/overview/threat-model.md index a2f4b4a1df..fcac9c8de5 100644 --- a/docs/overview/threat-model.md +++ b/docs/overview/threat-model.md @@ -53,7 +53,7 @@ Backstage provides authentication of users through the `auth` plugin, which prim In order to use an auth provider to sign in users into Backstage, it needs to be configured with an [Identity resolver](https://backstage.io/docs/auth/identity-resolver), which is a custom callback implemented in code. The identity resolver is a sensitive part of configuring Backstage and it is important that it always resolves user identities correctly, based on information provided by the authentication provider. There are a number of built-in identity resolvers that can simplify configuration, and it is important that these all resolve users in a secure way, regardless of how they are used. -Backstage also supports authentication through a proxy where the user identity is read from the incoming request from the proxy, which has been decorated by an authenticating reverse proxy such as [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). The following proxy auth providers verify the signature of incoming requests, and are therefore safe to deploy with direct access by users: `awsAlb`, `cfAccess`, and `gcpIap`. Providers like `oauth2Proxy` does not verify the incoming request and can therefore be spoofed by a malicious internal user to supply the `auth` backend with forged identity information. It’s therefore highly recommended to restrict access to the `oauth2Proxy` endpoints, or use a different provider. +Backstage also supports authentication through an authenticating reverse proxy such as [AWS ALB](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/), where the user identity is read from the incoming proxied decorated request. The following proxy auth providers verify the signature of incoming requests, and are therefore safe to deploy with direct access by users: `awsAlb`, `cfAccess`, and `gcpIap`. Providers like `oauth2Proxy` do not verify the incoming request and can therefore be spoofed by a malicious internal user to supply the `auth` backend with forged identity information. It’s therefore highly recommended to restrict access to the `oauth2Proxy` endpoints, or use a different provider. As part of signing in with an identity resolver, a Backstage Token is issued containing the resolved user identity. The tokens are asymmetrically signed JSON Web Tokens, with the public keys available to any service that wishes to verify a token. The signing keys are rotated continuously and are unique to each installation of Backstage, meaning that Backstage Tokens are not shared across installations. The token contains claims for the user identity and ownership information, which can be used to determine what Backstage resources are owned by that user or group. It is important that this token can not be forged outside of the `auth` plugin, with the exception of other plugins deployed in the same backend service or sharing the same database. For a high-security deployment, the `auth` backend should therefore be deployed in a separate service with its own database. @@ -63,7 +63,7 @@ One of the claims in a user token is the User Identity Proof or `uip`. This is a The communication across backend plugins uses a similar authentication scheme to the user authentication. Each backend plugin generates and publishes its own set of keys that it uses to sign its tokens, and the public keys are shared with all other plugins for verification. The expected location of each plugin's published JWKS is determined by the `DiscoveryService` implementation in the backend, which means that it is vital for any custom implementation of that service to be careful with user input. The tokens signed by each plugin contain both the source and target plugin ID, which means that the token can not be reused to access other plugins. -When forwarding a user identity in a call across backend plugins only the limited user token with `uip` is used, wrapped in a new plugin token that is signed by the calling plugin. This means that the receiving plugin can trust the user identity, but it is not able to make further calls on behalf of the user except for with the plugins that it is authorized to call. That is except for any endpoints in other plugins that accept limited user tokens, which is a reason to avoid accepting them when possible. +When forwarding a user identity in a call across backend plugins only the limited user token with `uip` is used, wrapped in a new service token that is signed by the calling plugin. This means that the receiving plugin can trust the user identity, but it is not able to make further calls on behalf of the user except for with the plugins that it is authorized to call. That is except for any endpoints in other plugins that accept limited user tokens, which is a reason to avoid accepting them when possible. ## Catalog From b6582bc2cf17dbb96df8328089044ebb9fba4b59 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 9 May 2024 13:57:24 +0200 Subject: [PATCH 056/153] docs/threat-model: more explicit builder persona Signed-off-by: Patrik Oldsberg --- docs/overview/threat-model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview/threat-model.md b/docs/overview/threat-model.md index fcac9c8de5..da97f3fc83 100644 --- a/docs/overview/threat-model.md +++ b/docs/overview/threat-model.md @@ -16,7 +16,7 @@ An **internal user** is an authenticated user that generally belongs to the orga An **operator** is a user responsible for configuring and maintaining an instance of Backstage. Operators are fully trusted, since they operate the system and database and therefore have root access to the host system. Additional measures can be taken by adopters of Backstage in order to restrict or observe the access of this group, but that falls outside of the current scope of Backstage. -Another group of de facto integrators is internal and external code contributors. When installing Backstage plugins you should vet them just like any other package from an external source. While it’s possible to limit the impact of for example a supply chain attack by splitting the deployment into separate services with different plugins, the Backstage project itself does not aim to prevent these kinds of attacks or in any other way sandbox or limit the access of plugins. +A **builder** is an internal or external code contributor and end up having a similar level of access as operators. When installing Backstage plugins you should vet them just like any other package from an external source. While it’s possible to limit the impact of for example a supply chain attack by splitting the deployment into separate services with different plugins, the Backstage project itself does not aim to prevent these kinds of attacks or in any other way sandbox or limit the access of plugins. An **external user** is a user that does not belong to the other two groups, for example a malicious actor outside of the organization. The security model of Backstage currently assumes that this group does not have any direct access to Backstage, and it is the responsibility of each adopter of Backstage to make sure this is the case. From 786c1dec28c615dc347ba2e5f8fd96eb3d52e013 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Thu, 9 May 2024 19:30:49 +0530 Subject: [PATCH 057/153] clamp 1 by default no need for whitespace Signed-off-by: npiyush97 --- .../src/components/OverflowTooltip/OverflowTooltip.tsx | 2 +- plugins/catalog-react/src/components/EntityTable/columns.tsx | 2 +- plugins/catalog/src/components/CatalogTable/columns.tsx | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index ab45d87d33..f0799b0d69 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -38,7 +38,7 @@ const useStyles = makeStyles( overflow: 'hidden', textOverflow: 'ellipsis', display: '-webkit-box', - '-webkit-line-clamp': ({ line }: Props) => line, + '-webkit-line-clamp': ({ line }: Props) => line || 1, '-webkit-box-orient': 'vertical', }, }, diff --git a/plugins/catalog-react/src/components/EntityTable/columns.tsx b/plugins/catalog-react/src/components/EntityTable/columns.tsx index e98c603d71..292235c78c 100644 --- a/plugins/catalog-react/src/components/EntityTable/columns.tsx +++ b/plugins/catalog-react/src/components/EntityTable/columns.tsx @@ -141,7 +141,7 @@ export const columnFactories = Object.freeze({ ), }; diff --git a/plugins/catalog/src/components/CatalogTable/columns.tsx b/plugins/catalog/src/components/CatalogTable/columns.tsx index 5d2f9146d9..d5362badda 100644 --- a/plugins/catalog/src/components/CatalogTable/columns.tsx +++ b/plugins/catalog/src/components/CatalogTable/columns.tsx @@ -141,7 +141,6 @@ export const columnFactories = Object.freeze({ ), width: 'auto', From 94e53c6331251ab2b3c7170b47a8d678c7e4a66e Mon Sep 17 00:00:00 2001 From: Kieran Lea Date: Thu, 9 May 2024 20:26:25 -0400 Subject: [PATCH 058/153] Fixed import typo in example in SECURITY.md Signed-off-by: Kieran Lea --- SECURITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index 5866fff2b4..8de1307356 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -66,7 +66,7 @@ The insecure example above should instead be written like this: ```ts // THIS IS GOOD, DO THIS -import { resolveSafeChildPath } from '@backstaghe/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-common'; import fs from 'fs-extra'; function writeTemporaryFile(tmpDir: string, name: string, content: string) { From 71f18a999eb4cef13167b45991d9bf9117902c50 Mon Sep 17 00:00:00 2001 From: NIKUNJ LALITKUMAR HUDKA Date: Thu, 9 May 2024 23:46:02 -0300 Subject: [PATCH 059/153] chore: use promise getter of entityPresentationApi Signed-off-by: NIKUNJ LALITKUMAR HUDKA --- .../MultiEntityPicker/MultiEntityPicker.tsx | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx index d2ad90aa10..f8fc831976 100644 --- a/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/MultiEntityPicker/MultiEntityPicker.tsx @@ -27,6 +27,7 @@ import { catalogApiRef, entityPresentationApiRef, EntityDisplayName, + EntityRefPresentationSnapshot, } from '@backstage/plugin-catalog-react'; import TextField from '@material-ui/core/TextField'; import FormControl from '@material-ui/core/FormControl'; @@ -70,8 +71,22 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { const { items } = await catalogApi.getEntities( catalogFilter ? { filter: catalogFilter } : undefined, ); - - return items; + const entityRefToPresentation = new Map< + string, + EntityRefPresentationSnapshot + >( + await Promise.all( + items.map(async item => { + const presentation = await entityPresentationApi.forEntity(item) + .promise; + return [stringifyEntityRef(item), presentation] as [ + string, + EntityRefPresentationSnapshot, + ]; + }), + ), + ); + return { entities: items, entityRefToPresentation }; }); const allowArbitraryValues = uiSchema['ui:options']?.allowArbitraryValues ?? true; @@ -115,8 +130,8 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { ); useEffect(() => { - if (entities?.length === 1) { - onChange([stringifyEntityRef(entities[0])]); + if (entities?.entities?.length === 1) { + onChange([stringifyEntityRef(entities?.entities[0])]); } }, [entities, onChange]); @@ -129,20 +144,18 @@ export const MultiEntityPicker = (props: MultiEntityPickerProps) => { } getOptionLabel={option => // option can be a string due to freeSolo. typeof option === 'string' ? option - : entityPresentationApi.forEntity(option, { - defaultKind, - defaultNamespace, - }).snapshot.entityRef! + : entities?.entityRefToPresentation.get(stringifyEntityRef(option)) + ?.entityRef! } autoSelect freeSolo={allowArbitraryValues} From 628ba69f569b7c7abe3854330bafc067016e0232 Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Fri, 10 May 2024 07:18:55 +0000 Subject: [PATCH 060/153] prettier:fix Signed-off-by: Marley Powell --- docs/frontend-system/architecture/05-extension-overrides.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/frontend-system/architecture/05-extension-overrides.md b/docs/frontend-system/architecture/05-extension-overrides.md index f9bd5edd82..cdd1bd8058 100644 --- a/docs/frontend-system/architecture/05-extension-overrides.md +++ b/docs/frontend-system/architecture/05-extension-overrides.md @@ -25,7 +25,7 @@ In the example below, we create a file that exports custom extensions for the ap ```tsx title="packages/app/src/themes.ts" import { createThemeExtension, - createExtensionOverrides + createExtensionOverrides, } from '@backstage/frontend-plugin-api'; import { apertureThemes } from './themes'; import { ApertureLightIcon, ApertureDarkIcon } from './icons'; @@ -60,7 +60,7 @@ const apertureDarkTheme = createThemeExtension({ // Creating an extension overrides preset export default createExtensionOverrides({ - extensions: [apertureLightTheme, apertureDarkTheme] + extensions: [apertureLightTheme, apertureDarkTheme], }); ``` From d618403e7f05d44dfde0d6789588862a1213e528 Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Fri, 10 May 2024 07:28:18 +0000 Subject: [PATCH 061/153] improved docs Signed-off-by: Marley Powell --- .../architecture/05-extension-overrides.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/frontend-system/architecture/05-extension-overrides.md b/docs/frontend-system/architecture/05-extension-overrides.md index cdd1bd8058..41702e6823 100644 --- a/docs/frontend-system/architecture/05-extension-overrides.md +++ b/docs/frontend-system/architecture/05-extension-overrides.md @@ -22,7 +22,7 @@ In order to override an app extension, you must create a new extension and add i In the example below, we create a file that exports custom extensions for the app's `light` and `dark` themes: -```tsx title="packages/app/src/themes.ts" +```tsx title="packages/app/src/themes.tsx" import { createThemeExtension, createExtensionOverrides, @@ -96,8 +96,11 @@ We recommend that plugin developers share the extension IDs in their plugin docu Imagine you have a plugin with the ID `'search'`, and the plugin provides a page extension that you want to fully override with your own custom component. To do so, you need to create your page extension with an explicit `namespace` option that matches that of the plugin that you want to override, in this case `'search'`. If the existing extension also has an explicit `name` you'd need to set the `name` of your override extension to the same value as well. -```tsx title="packages/app/src/search.ts" -import { createPageExtension } from '@backstage/frontend-plugin-api'; +```tsx title="packages/app/src/search.tsx" +import { + createPageExtension, + createExtensionOverrides, +} from '@backstage/frontend-plugin-api'; // Creating a custom search page extension const customSearchPage = createPageExtension({ @@ -137,7 +140,7 @@ Sometimes you just need to quickly create a new extension and not overwrite an a Imagine you want to create a page that is currently only used by your application, like an Institutional page, for example. You can use overrides to extend the Backstage app to render it. To do so, simply create a page extension and pass it to the app as an override: -```tsx title="packages/app/src/App.ts" +```tsx title="packages/app/src/App.tsx" import { createApp } from '@backstage/frontend-app-api'; import { createPageExtension, From 5559acab7c71089447f9c54b22568228e174eff1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 09:52:37 +0200 Subject: [PATCH 062/153] scripts/verify-links: add check for multi-line links Signed-off-by: Patrik Oldsberg --- scripts/verify-links.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/verify-links.js b/scripts/verify-links.js index 94ffc497cd..26d31ce6f0 100755 --- a/scripts/verify-links.js +++ b/scripts/verify-links.js @@ -137,6 +137,15 @@ async function verifyFile(filePath, docPages) { } } + const multiLineLinks = content.match(/\[[^\]\n]+?\n[^\]\n]*?\]\(/g) || []; + badUrls.push( + ...multiLineLinks.map(url => ({ + url, + basePath: filePath, + problem: 'multi-line', + })), + ); + return badUrls; } @@ -226,7 +235,7 @@ async function main() { console.error(` From: ${basePath}`); console.error(` To: ${url}`); if (suggestion) { - console.error(` Replace With: ${suggestion}`); + console.error(` Replace with: ${suggestion}`); } } else if (problem === 'not-relative') { console.error('Links within /docs/ must be relative'); @@ -238,6 +247,10 @@ async function main() { ); console.error(` From: ${basePath}`); console.error(` To: ${url}`); + } else if (problem === 'multi-line') { + console.error(`Links are not allowed to span multiple lines:`); + console.error(` From: ${basePath}`); + console.error(` To: ${url.replace(/\n/g, '\n ')}`); } } process.exit(1); From b920a47976e2b2d28dd286fa54e733239059b11f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 10:16:00 +0200 Subject: [PATCH 063/153] fix multi-line links Signed-off-by: Patrik Oldsberg --- .../tutorials/authenticate-api-requests.md | 3 +- contrib/docs/tutorials/aws-deployment.md | 30 +++++++------------ docs/auth/cloudflare/access.md | 3 +- docs/auth/identity-resolver.md | 15 ++++------ docs/auth/microsoft/provider.md | 3 +- docs/auth/service-to-service-auth.md | 3 +- docs/auth/vmware-cloud/provider.md | 12 +++----- .../building-plugins-and-modules/01-index.md | 13 +++----- .../02-testing.md | 3 +- docs/features/kubernetes/configuration.md | 9 ++---- docs/features/kubernetes/proxy.md | 18 ++++------- docs/features/software-catalog/index.md | 3 +- docs/integrations/github/org--old.md | 3 +- docs/overview/roadmap.md | 6 ++-- docs/plugins/analytics.md | 3 +- docs/releases/v1.12.0-changelog.md | 3 +- docs/releases/v1.12.0-next.2-changelog.md | 3 +- docs/releases/v1.15.0.md | 15 ++++------ docs/releases/v1.3.0-changelog.md | 3 +- docs/releases/v1.7.0-changelog.md | 3 +- docs/releases/v1.7.0-next.0-changelog.md | 3 +- docs/releases/v1.7.0.md | 22 +++++--------- packages/core-app-api/CHANGELOG.md | 6 ++-- packages/create-app/CHANGELOG.md | 12 +++----- plugins/api-docs/CHANGELOG.md | 3 +- plugins/catalog-backend/CHANGELOG.md | 6 ++-- plugins/catalog-backend/README.md | 15 ++++------ plugins/catalog-react/CHANGELOG.md | 3 +- plugins/catalog/CHANGELOG.md | 3 +- plugins/catalog/README.md | 3 +- plugins/scaffolder-backend/README.md | 16 ++++------ plugins/scaffolder-common/CHANGELOG.md | 3 +- plugins/scaffolder/README.md | 3 +- plugins/user-settings/README.md | 3 +- 34 files changed, 84 insertions(+), 171 deletions(-) diff --git a/contrib/docs/tutorials/authenticate-api-requests.md b/contrib/docs/tutorials/authenticate-api-requests.md index 838aaffef6..8c858bea0f 100644 --- a/contrib/docs/tutorials/authenticate-api-requests.md +++ b/contrib/docs/tutorials/authenticate-api-requests.md @@ -3,8 +3,7 @@ > [!CAUTION] > This entire guide MUST NOT BE USED by users of Backstage 1.26 and > newer. If you have applied the changes in this guide, you need to remove them -> again as you upgrade to recent versions of Backstage. When [the new auth -> changes](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution) +> again as you upgrade to recent versions of Backstage. When [the new auth changes](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution) > landed backends became natively secured through the framework, and the > instructions outlined in here can interfere with the backend functioning > correctly. diff --git a/contrib/docs/tutorials/aws-deployment.md b/contrib/docs/tutorials/aws-deployment.md index 6edbb73f9d..d43d8aefb0 100644 --- a/contrib/docs/tutorials/aws-deployment.md +++ b/contrib/docs/tutorials/aws-deployment.md @@ -1,11 +1,9 @@ # Deploying Backstage on AWS using ECR and EKS -Backstage documentation shows how to build a [Docker -image](https://backstage.io/docs/deployment/docker); this +Backstage documentation shows how to build a [Docker image](https://backstage.io/docs/deployment/docker); this tutorial shows how to deploy that Docker image to AWS using Elastic Container Registry (ECR) and Elastic Kubernetes Service (EKS). Amazon also supports -deployments with Helm, covered in the [Helm -Kubernetes](../../kubernetes/basic_kubernetes_example_with_helm) example. +deployments with Helm, covered in the [Helm Kubernetes](../../kubernetes/basic_kubernetes_example_with_helm) example. The basic workflow for this method is to build a Backstage Docker image, upload the new version to a container registry, and update a Kubernetes deployment with @@ -13,8 +11,7 @@ the new image. ## Create a container registry -To create an Elastic Container Registry on AWS, go to the [AWS ECR -console](https://console.aws.amazon.com/ecr/repositories). +To create an Elastic Container Registry on AWS, go to the [AWS ECR console](https://console.aws.amazon.com/ecr/repositories). Click `Create repository` and give the repository a name, like `backstage`. @@ -35,8 +32,7 @@ Go to [AWS IAM console](https://console.aws.amazon.com/iam/home) and select ## Publish a Backstage build -Follow the [Docker -image](https://backstage.io/docs/deployment/docker) +Follow the [Docker image](https://backstage.io/docs/deployment/docker) documentation to build a new Backstage Docker image: ```shell @@ -56,8 +52,7 @@ Default region name: Now you can use the AWS CLI to push the built image to the ECR repository. It's a good practice to use a specific version tag as well as `latest` when pushing; -more about [Semver tagging -here](https://medium.com/@mccode/using-semantic-versioning-for-docker-image-tags-dfde8be06699). +more about [Semver tagging here](https://medium.com/@mccode/using-semantic-versioning-for-docker-image-tags-dfde8be06699). Go to the [AWS ECR console](https://console.aws.amazon.com/ecr/repositories) and click on your repository, then `View push commands`. This will show the @@ -83,12 +78,10 @@ Kubernetes deployment based on this image. Creating an Elastic Kubernetes Service (EKS) cluster is beyond the scope of this document, but it can be as easy as `eksctl create cluster` documented in the -[AWS EKS getting started -guide](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html), +[AWS EKS getting started guide](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html), which uses a Cloudformation template to create the necessary resources. -To deploy the Docker image to EKS, follow the [Kubernetes -guide](https://backstage.io/docs/deployment/k8s#creating-the-backstage-instance) +To deploy the Docker image to EKS, follow the [Kubernetes guide](https://backstage.io/docs/deployment/k8s#creating-the-backstage-instance) but set the Backstage deployment `image` to the ECR repository URL: ```yaml @@ -110,8 +103,7 @@ spec: ... ``` -Create the [Service -descriptor](https://backstage.io/docs/deployment/k8s#creating-a-backstage-service) +Create the [Service descriptor](https://backstage.io/docs/deployment/k8s#creating-a-backstage-service) as well, and apply these Kubernetes definitions to the EKS cluster to complete the Backstage deployment: @@ -120,16 +112,14 @@ $ kubectl apply -f kubernetes/backstage.yaml $ kubectl apply -f kubernetes/backstage-service.yaml ``` -Now you can see your Backstage workload running from the [EKS -console](https://console.aws.amazon.com/eks/home). +Now you can see your Backstage workload running from the [EKS console](https://console.aws.amazon.com/eks/home). ## Further steps ### Exposing Backstage with a load balancer To make the service useful, we need to expose the workload with a load balancer. -Follow the [Application load balancing on -EKS](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) guide to +Follow the [Application load balancing on EKS](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) guide to set up a Load Balancer controller and Kubernetes ingress to your application. This is ultimately a `kubectl apply` with an ingress definition: diff --git a/docs/auth/cloudflare/access.md b/docs/auth/cloudflare/access.md index 9df816c39f..52d9fdfc21 100644 --- a/docs/auth/cloudflare/access.md +++ b/docs/auth/cloudflare/access.md @@ -170,6 +170,5 @@ backend.add(customAuth); The body of the sign-in resolver is up to you to write! The example code above is just a copy of what `emailMatchingUserEntityProfileEmail` does. The `info` parameter contains all of the results of the sign-in attempt so far. The `ctx` -context [has several useful -functions](https://backstage.io/docs/reference/plugin-auth-node.authresolvercontext/) +context [has several useful functions](https://backstage.io/docs/reference/plugin-auth-node.authresolvercontext/) for issuing tokens in various ways. diff --git a/docs/auth/identity-resolver.md b/docs/auth/identity-resolver.md index 406f789630..4140276df8 100644 --- a/docs/auth/identity-resolver.md +++ b/docs/auth/identity-resolver.md @@ -5,8 +5,7 @@ description: An introduction to Backstage user identities and sign-in resolvers --- :::info -This documentation is written for [the new backend -system](../backend-system/index.md) which is the default since Backstage +This documentation is written for [the new backend system](../backend-system/index.md) which is the default since Backstage [version 1.24](../releases/v1.24.0.md). If you are still on the old backend system, you may want to read [its own article](./identity-resolver--old.md) instead, and [consider migrating](../backend-system/building-backends/08-migrating.md)! @@ -31,15 +30,13 @@ testing purposes and quickly getting started locally, but is not safe for use in production and that particular provider will refuse to work there. Because of this, one of the early things you want to do when standing up your -Backstage instance is to choose a production ready auth provider. See [the auth -overview page](./index.md) for a full list of providers and how to install and +Backstage instance is to choose a production ready auth provider. See [the auth overview page](./index.md) for a full list of providers and how to install and configure them. ## Backstage User Identity A user identity within Backstage is built up from two main pieces of -information: a user [entity -reference](../features/software-catalog/references.md), and a set of ownership +information: a user [entity reference](../features/software-catalog/references.md), and a set of ownership references. When a user signs in, a Backstage token is generated which is then used to identify the user within the Backstage ecosystem. @@ -194,8 +191,7 @@ backend.add(import('@backstage/plugin-auth-backend-module-github-provider')); backend.add(customAuth); ``` -Check out [the naming patterns -article](../backend-system/architecture/07-naming-patterns.md) for what rules +Check out [the naming patterns article](../backend-system/architecture/07-naming-patterns.md) for what rules apply regarding how to form valid IDs. In this example we also put the module declaration directly in `packages/backend/src/index.ts` but that's just for simplicity. You can place it anywhere you like, including in other packages, and @@ -244,8 +240,7 @@ async signInResolver(info, ctx) { If you throw an error in the sign in resolver function, the sign in attempt is immediately rejected, and the error details are presented in the user interface. -The `ctx` context [has several useful -functions](https://backstage.io/docs/reference/plugin-auth-node.authresolvercontext/) +The `ctx` context [has several useful functions](https://backstage.io/docs/reference/plugin-auth-node.authresolvercontext/) for issuing tokens in various ways. ### Custom Ownership Resolution diff --git a/docs/auth/microsoft/provider.md b/docs/auth/microsoft/provider.md index 5c4707c151..ab3c5d8044 100644 --- a/docs/auth/microsoft/provider.md +++ b/docs/auth/microsoft/provider.md @@ -103,6 +103,5 @@ hosts: - `login.microsoftonline.com`, to get and exchange authorization codes and access tokens - `graph.microsoft.com`, to fetch user profile information (as seen - in [this source - code](https://github.com/seanfisher/passport-microsoft/blob/0456aa9bce05579c18e77f51330176eb26373658/lib/strategy.js#L93-L95)). + 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. diff --git a/docs/auth/service-to-service-auth.md b/docs/auth/service-to-service-auth.md index c1d6643769..c08411aca5 100644 --- a/docs/auth/service-to-service-auth.md +++ b/docs/auth/service-to-service-auth.md @@ -6,8 +6,7 @@ description: This section describes service to service authentication works, bot --- :::info -This documentation is written for [the new backend -system](../backend-system/index.md) which is the default since Backstage +This documentation is written for [the new backend system](../backend-system/index.md) which is the default since Backstage [version 1.24](../releases/v1.24.0.md). If you are still on the old backend system, you may want to read [its own article](./service-to-service-auth--old.md) instead, and [consider migrating](../backend-system/building-backends/08-migrating.md)! diff --git a/docs/auth/vmware-cloud/provider.md b/docs/auth/vmware-cloud/provider.md index 0ff928ab7f..d7580eccba 100644 --- a/docs/auth/vmware-cloud/provider.md +++ b/docs/auth/vmware-cloud/provider.md @@ -12,14 +12,11 @@ Cloud Console and within a Backstage app required to enable this capability. ## Create an OAuth App in the VMware Cloud Console 1. Log in to the [VMware Cloud Console](https://console.cloud.vmware.com). -1. Navigate to [Identity & Access Management > OAuth - Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps) - and click the [Owned - Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps/owned-apps/view) +1. Navigate to [Identity & Access Management > OAuth Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps) + and click the [Owned Apps](https://console.cloud.vmware.com/csp/gateway/portal/#/consumer/usermgmt/oauth-apps/owned-apps/view) tab -- if you are not an Organization Owner or Administrator but only a Member, you will not see this nav entry unless the **Developer** check box is - selected for your role (see the [Organization roles and - permissions](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-C11D3AAC-267C-4F16-A0E3-3EDF286EBE53.html#organization-roles-and-permissions-0) + selected for your role (see the [Organization roles and permissions](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-C11D3AAC-267C-4F16-A0E3-3EDF286EBE53.html#organization-roles-and-permissions-0) docs for details). 1. Click **Create App**, choose 'Web/Mobile app' and click **Continue**. 1. Use default settings except: @@ -161,8 +158,7 @@ auth: ``` Where `APP_ID` refers to the ID retrieved when creating the OAuth App, and -`ORG_ID` is the [long ID of the -Organization](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-CF9E9318-B811-48CF-8499-9419997DC1F8.html#view-the-organization-id-1) +`ORG_ID` is the [long ID of the Organization](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-CF9E9318-B811-48CF-8499-9419997DC1F8.html#view-the-organization-id-1) in VMware Cloud for which you wish to enable sign-in. Note that VMware Cloud requires OAuth Apps to use diff --git a/docs/backend-system/building-plugins-and-modules/01-index.md b/docs/backend-system/building-plugins-and-modules/01-index.md index 168646afab..1aa8b140ed 100644 --- a/docs/backend-system/building-plugins-and-modules/01-index.md +++ b/docs/backend-system/building-plugins-and-modules/01-index.md @@ -73,8 +73,7 @@ items. Backend modules are used to extend [plugins](../architecture/04-plugins.md) or other modules with additional features or change existing behavior. They must always be installed in the same backend instance as the plugin or module that they extend, and may only extend a single plugin and modules from that plugin at a time. -Modules interact with their target plugin or module using the [extension -points](../architecture/05-extension-points.md) registered by the plugin, while also being +Modules interact with their target plugin or module using the [extension points](../architecture/05-extension-points.md) registered by the plugin, while also being able to depend on the [services](../architecture/03-services.md) of the target plugin. That last point is worth reiterating: injected `plugin` scoped services will be the exact @@ -157,8 +156,7 @@ the database. They will run on the same logical database instance as the target plugin, so care must be taken to choose table names that do not risk colliding with those of the plugin. A recommended naming pattern is `__`, for example the `@backstage/backend-tasks` package creates -tables named `backstage_backend_tasks__
`. If you use the default [`Knex` -migration facilities](https://knexjs.org/guide/migrations.html), you will also +tables named `backstage_backend_tasks__
`. If you use the default [`Knex` migration facilities](https://knexjs.org/guide/migrations.html), you will also want to make sure that it uses similarly prefixed migration state tables for its internal bookkeeping needs, so they do not collide with the main ones used by the plugin itself. You can do this as follows: @@ -179,8 +177,7 @@ There are several ways of configuring and customizing plugins and modules. Whenever you want to allow modules to configure your plugin dynamically, for example in the way that the catalog backend lets catalog modules inject additional entity providers, you can use the extension points mechanism. This is -described in detail with code examples in [the extension points architecture -article](../architecture/05-extension-points.md), while the following is a more +described in detail with code examples in [the extension points architecture article](../architecture/05-extension-points.md), while the following is a more slim example of how to implement an extension point for a plugin: ```ts @@ -249,7 +246,5 @@ export const examplePlugin = createBackendPlugin({ }); ``` -Before adding custom configuration options, make sure to read [the configuration -docs](../../conf/index.md), in particular the section on [defining configuration -for your own plugins](../../conf/defining.md) which explains how to establish a +Before adding custom configuration options, make sure to read [the configuration docs](../../conf/index.md), in particular the section on [defining configuration for your own plugins](../../conf/defining.md) which explains how to establish a configuration schema for your specific plugin. diff --git a/docs/backend-system/building-plugins-and-modules/02-testing.md b/docs/backend-system/building-plugins-and-modules/02-testing.md index f8af2bcabe..8a2dd0414d 100644 --- a/docs/backend-system/building-plugins-and-modules/02-testing.md +++ b/docs/backend-system/building-plugins-and-modules/02-testing.md @@ -21,8 +21,7 @@ collective term for backend [plugins](../architecture/04-plugins.md) and The function returns an HTTP server instance which can be used together with e.g. `supertest` to easily test the actual REST service surfaces of plugins who -register routes with [the HTTP router service -API](../core-services/01-index.md). +register routes with [the HTTP router service API](../core-services/01-index.md). ```ts import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; diff --git a/docs/features/kubernetes/configuration.md b/docs/features/kubernetes/configuration.md index 064f7c803c..0002e51160 100644 --- a/docs/features/kubernetes/configuration.md +++ b/docs/features/kubernetes/configuration.md @@ -198,8 +198,7 @@ in namespace `NAMESPACE` and it has adequate [permissions](#role-based-access-control), here are some sample procedures to procure a long-lived service account token for use with this provider: -- On versions of Kubernetes [prior to - 1.24](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#no-really-you-must-read-this-before-you-upgrade-1), +- On versions of Kubernetes [prior to 1.24](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#no-really-you-must-read-this-before-you-upgrade-1), you could get an (automatically-generated) token for a service account with: ```sh @@ -209,8 +208,7 @@ procure a long-lived service account token for use with this provider: | base64 --decode ``` -- For Kubernetes 1.24+, as described in [this - guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets), +- For Kubernetes 1.24+, as described in [this guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets), you can obtain a long-lived token by creating a secret: ```sh @@ -235,8 +233,7 @@ procure a long-lived service account token for use with this provider: If a cluster has `authProvider: serviceAccount` and the `serviceAccountToken` field is omitted, Backstage will ignore the configured URL and certificate data, instead attempting to access the Kubernetes API via an in-cluster client as in -[this -example](https://github.com/kubernetes-client/javascript/blob/master/examples/in-cluster.js). +[this example](https://github.com/kubernetes-client/javascript/blob/master/examples/in-cluster.js). ##### `clusters.\*.oidcTokenProvider` (optional) diff --git a/docs/features/kubernetes/proxy.md b/docs/features/kubernetes/proxy.md index 4ccc2d22b1..2da797d8ef 100644 --- a/docs/features/kubernetes/proxy.md +++ b/docs/features/kubernetes/proxy.md @@ -7,12 +7,10 @@ description: Interacting with the Kubernetes API in Backstage plugins [Contributors](https://backstage.io/docs/overview/glossary#backstage-user-profiles) wanting to create developer portal experiences based on data from Kubernetes (e.g. for -interacting with [Custom -Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) +interacting with [Custom Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) beyond the default behaviors of the existing Kubernetes plugin) can leverage the Kubernetes backend plugin's proxy endpoint to allow them to make arbitrary -requests to the [REST -API](https://kubernetes.io/docs/reference/using-api/api-concepts/). +requests to the [REST API](https://kubernetes.io/docs/reference/using-api/api-concepts/). Here is a snippet fetching namespaces using the `KubernetesBackendClient` library @@ -31,8 +29,7 @@ await kubernetesApi.proxy(CLUSTER_NAME, '/api/v1/namespaces'); The proxy will interpret the [`Backstage-Kubernetes-Cluster`](https://backstage.io/docs/reference/plugin-kubernetes-backend.header_kubernetes_cluster) header as the name of the cluster to target. This name will be compared to each cluster -returned by all the configured [cluster -locators](https://backstage.io/docs/features/kubernetes/configuration#clusterlocatormethods) +returned by all the configured [cluster locators](https://backstage.io/docs/features/kubernetes/configuration#clusterlocatormethods) -- the first cluster whose [`name` field](https://backstage.io/docs/features/kubernetes/configuration#clustersname) matches the value in the header will be targeted. @@ -48,12 +45,10 @@ The proxy expects a `KubernetesAuthTranslator` to be provided that is used to de ## Authentication The proxy has no provisions for mTLS, so it cannot be used to connect to -clusters using the [x509 Client -Certs](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#x509-client-certs) +clusters using the [x509 Client Certs](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#x509-client-certs) authentication strategy.\ The current `/proxy` Implementation expects a -[Bearer -token](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#putting-a-bearer-token-in-a-request) +[Bearer token](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#putting-a-bearer-token-in-a-request) to be provided as a `Backstage-Kubernetes-Authorization` header for a target cluster. This token will be used as the `Authorization` header when forwarding a request to a target cluster. ## How to disable the proxy endpoint via PermissionPolicy @@ -104,8 +99,7 @@ even if a valid ID token was attached that a cluster would authorize. ## Other known limitations -The proxy as it was released in [Backstage -1.9](https://github.com/backstage/backstage/blob/master/docs/releases/v1.9.0-changelog.md#patch-changes-15) +The proxy as it was released in [Backstage 1.9](../../releases/v1.9.0-changelog.md#patch-changes-15) has a known bug: - [#15901](https://github.com/backstage/backstage/issues/15901) - it cannot diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index c98d6911b4..a65bfb4a44 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -40,8 +40,7 @@ browse the catalog at `http://localhost:3000`. ## Adding components to the catalog -The source of truth for the components in your software catalog are [metadata -YAML files](descriptor-format.md) stored in source control (GitHub, GitHub +The source of truth for the components in your software catalog are [metadata YAML files](descriptor-format.md) stored in source control (GitHub, GitHub Enterprise, GitLab, ...). Repositories can include one or multiple metadata files. Usually the metadata file is located in the repository root. This is not a formal requirement & metadata files can be placed anywhere in the repository. diff --git a/docs/integrations/github/org--old.md b/docs/integrations/github/org--old.md index 2f1b39a1f8..3d1639a924 100644 --- a/docs/integrations/github/org--old.md +++ b/docs/integrations/github/org--old.md @@ -308,8 +308,7 @@ const githubOrgProvider = GithubOrgEntityProvider.fromConfig(env.config, { }); ``` -Once you have imported the emails you can resolve users in your [sign-in -resolver](../../auth/github/provider.md) using the catalog entity search via email +Once you have imported the emails you can resolve users in your [sign-in resolver](../../auth/github/provider.md) using the catalog entity search via email ```typescript title="packages/backend/src/plugins/auth.ts" ctx.signInWithCatalogUser({ diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 8e3d73ded6..186619d1df 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -10,8 +10,7 @@ Backstage is currently under rapid development. This page details the project's public roadmap, the result of ongoing collaboration between the core maintainers and the broader Backstage community. -The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future -work"](#future-work). With "next" we mean features planned for release within +The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future work"](#future-work). With "next" we mean features planned for release within the ongoing quarter from July through September 2022. With "future" we mean features on the radar, but not yet scheduled. @@ -52,8 +51,7 @@ the platform. The benefit for the adopters is clear: we want Backstage to be as secure as possible, and we want to make it reliable through a specific initiative. -This initiative is done together with, and with the support of, the [Cloud -Native Computing Foundation (CNCF)](https://www.cncf.io/). +This initiative is done together with, and with the support of, the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/). ### Backstage Threat Model diff --git a/docs/plugins/analytics.md b/docs/plugins/analytics.md index 52a859b5e9..10a7421057 100644 --- a/docs/plugins/analytics.md +++ b/docs/plugins/analytics.md @@ -69,8 +69,7 @@ installed, may be captured. | `discover` | The title of the search result that was clicked on | The `value` is the result rank. A `to` attribute is also provided. | | `not-found` | The path of the resource that resulted in a not found page | Fired by at least TechDocs. | -If there is an event you'd like to see captured, please [open an -issue](https://github.com/backstage/backstage/issues/new?assignees=&labels=enhancement&template=feature_template.md&title=[Analytics%20Event]:%20THE+EVENT+TO+CAPTURE) describing the event you want to see and the questions it +If there is an event you'd like to see captured, please [open an issue](https://github.com/backstage/backstage/issues/new?assignees=&labels=enhancement&template=feature_template.md&title=[Analytics%20Event]:%20THE+EVENT+TO+CAPTURE) describing the event you want to see and the questions it would help you answer. Or jump to [Capturing Events](#capturing-events) to learn how to contribute the instrumentation yourself! diff --git a/docs/releases/v1.12.0-changelog.md b/docs/releases/v1.12.0-changelog.md index df25020aee..49ff79d19a 100644 --- a/docs/releases/v1.12.0-changelog.md +++ b/docs/releases/v1.12.0-changelog.md @@ -60,8 +60,7 @@ This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various - default [auth - handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add + default [auth handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add `openid` to their default scopes. _That_ could carry another indirect benefit: by removing `openid` from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related diff --git a/docs/releases/v1.12.0-next.2-changelog.md b/docs/releases/v1.12.0-next.2-changelog.md index 7a64ec5f84..ed4c5683ba 100644 --- a/docs/releases/v1.12.0-next.2-changelog.md +++ b/docs/releases/v1.12.0-next.2-changelog.md @@ -25,8 +25,7 @@ This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various - default [auth - handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add + default [auth handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add `openid` to their default scopes. _That_ could carry another indirect benefit: by removing `openid` from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related diff --git a/docs/releases/v1.15.0.md b/docs/releases/v1.15.0.md index 336fe7520b..c7ef6b33f9 100644 --- a/docs/releases/v1.15.0.md +++ b/docs/releases/v1.15.0.md @@ -27,8 +27,7 @@ native dependency, and as such needs to be built during `yarn` installation, on the exact architecture that it then executes on. For those who compile and run Backstage on stripped-down environments, you will want to ensure that you have the build basics present, e.g. `build-essential` or similar corresponding to -your operating system of choice. The `isolated-vm` repo has [some further -information](https://github.com/laverdet/isolated-vm#requirements) about the +your operating system of choice. The `isolated-vm` repo has [some further information](https://github.com/laverdet/isolated-vm#requirements) about the build environment requirements. There is a [CVE-2022-39266](https://www.cve.org/CVERecord?id=CVE-2022-39266) @@ -65,8 +64,7 @@ covers of your catalog instance, finding those pesky unprocessed entities that may be stuck in limbo because of an otherwise tricky-to-debug validation issue or similar. -Check out [the plugin’s -README](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) +Check out [the plugin’s README](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) for details and installation instructions. Contributed by [@alde](https://github.com/alde) in @@ -176,8 +174,7 @@ Contributed by [@sblausten](https://github.com/sblausten) in We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for -[keeping Backstage -updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). +[keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). ## Links and References @@ -185,11 +182,9 @@ Below you can find a list of links and references to help you learn about and start using this new release. - [Backstage official website](https://backstage.io/), - [documentation](https://backstage.io/docs/), and [getting started - guide](https://backstage.io/docs/getting-started/) + [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) - [GitHub repository](https://github.com/backstage/backstage) -- Backstage's [versioning and support - policy](https://backstage.io/docs/overview/versioning-policy) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) - [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support - [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.15.0-changelog.md) diff --git a/docs/releases/v1.3.0-changelog.md b/docs/releases/v1.3.0-changelog.md index 641fd8422a..e3cdd75024 100644 --- a/docs/releases/v1.3.0-changelog.md +++ b/docs/releases/v1.3.0-changelog.md @@ -883,8 +883,7 @@ ### Patch Changes - 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- 811ff4bcf4: Updated `swagger-ui-react` to 4.11.1 in order to address a [XSS - vulnerability](https://github.com/advisories/GHSA-hqq7-2q2v-82xq) in `@braintree/sanitize-url` +- 811ff4bcf4: Updated `swagger-ui-react` to 4.11.1 in order to address a [XSS vulnerability](https://github.com/advisories/GHSA-hqq7-2q2v-82xq) in `@braintree/sanitize-url` - Updated dependencies - @backstage/plugin-catalog@1.3.0 - @backstage/plugin-catalog-react@1.1.1 diff --git a/docs/releases/v1.7.0-changelog.md b/docs/releases/v1.7.0-changelog.md index 3653484952..47fd8463d6 100644 --- a/docs/releases/v1.7.0-changelog.md +++ b/docs/releases/v1.7.0-changelog.md @@ -926,8 +926,7 @@ Migrating to the stable version of `react-router` is optional for the time being. But if you want to do the same for your existing repository, please - follow [this - guide](https://backstage.io/docs/tutorials/react-router-stable-migration). + follow [this guide](https://backstage.io/docs/tutorials/react-router-stable-migration). - e05e0f021b: Update versions of packages used in the create-app template, to match those in the main repo diff --git a/docs/releases/v1.7.0-next.0-changelog.md b/docs/releases/v1.7.0-next.0-changelog.md index 57b3c64f6f..41d3ebd55f 100644 --- a/docs/releases/v1.7.0-next.0-changelog.md +++ b/docs/releases/v1.7.0-next.0-changelog.md @@ -319,8 +319,7 @@ Migrating to the stable version of `react-router` is optional for the time being. But if you want to do the same for your existing repository, please - follow [this - guide](https://backstage.io/docs/tutorials/react-router-stable-migration). + follow [this guide](https://backstage.io/docs/tutorials/react-router-stable-migration). - e05e0f021b: Update versions of packages used in the create-app template, to match those in the main repo diff --git a/docs/releases/v1.7.0.md b/docs/releases/v1.7.0.md index 56eda8b20d..edd5cbb591 100644 --- a/docs/releases/v1.7.0.md +++ b/docs/releases/v1.7.0.md @@ -22,24 +22,20 @@ backend needs to be supplied with a location analyzer for this use case to continue to function. If you want to make use of this feature, check out the installation instructions -in [the -changelog](https://github.com/backstage/backstage/blob/master/plugins/catalog-import/CHANGELOG.md#090). +in [the changelog](https://github.com/backstage/backstage/blob/master/plugins/catalog-import/CHANGELOG.md#090). Contributed by [@kissmikijr](https://github.com/kissmikijr) in [#13800](https://github.com/backstage/backstage/pull/13800) ### Permission Rule Changes -When defining permission rules, it's now necessary to provide a [Zod -Schema](https://github.com/colinhacks/zod) that specifies the parameters the +When defining permission rules, it's now necessary to provide a [Zod Schema](https://github.com/colinhacks/zod) that specifies the parameters the rule expects. This has been added to help better describe the parameters in the response of the metadata endpoint and to validate the parameters before a rule is executed. The signatures of the rule methods (`apply` and `toQuery`) have changed slightly as well. -You can read more about this in [the permissions -documentation](https://backstage.io/docs/permissions/overview) and [the -changelog](https://github.com/backstage/backstage/blob/master/plugins/permission-node/CHANGELOG.md#070). +You can read more about this in [the permissions documentation](https://backstage.io/docs/permissions/overview) and [the changelog](https://github.com/backstage/backstage/blob/master/plugins/permission-node/CHANGELOG.md#070). ### Migration: `jest` v29 @@ -64,8 +60,7 @@ Newly created Backstage repositories now use the stable version 6 of Migrating to the stable version of `react-router` is optional for the time being; Backstage has support for both versions. But if you want to do the same -for your existing repository, please follow [this -guide](https://backstage.io/docs/tutorials/react-router-stable-migration). +for your existing repository, please follow [this guide](https://backstage.io/docs/tutorials/react-router-stable-migration). Support for the beta version will be removed in a later release. ### Support for `__mocks__` and `__testUtils__` directories @@ -100,8 +95,7 @@ This release does not contain any security fixes. We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for -[keeping Backstage -updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). +[keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). ## Links and References @@ -109,11 +103,9 @@ Below you can find a list of links and references to help you learn about and start using this new release. - [Backstage official website](https://backstage.io/), - [documentation](https://backstage.io/docs/), and [getting started - guide](https://backstage.io/docs/getting-started/) + [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) - [GitHub repository](https://github.com/backstage/backstage) -- Backstage's [versioning and support - policy](https://backstage.io/docs/overview/versioning-policy) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) - [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support - [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.7.0-changelog.md) - Backstage [Demos](https://backstage.io/demos), diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index c13bf1613e..f21eed47d0 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -539,8 +539,7 @@ This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various - default [auth - handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add + default [auth handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add `openid` to their default scopes. _That_ could carry another indirect benefit: by removing `openid` from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related @@ -568,8 +567,7 @@ This change makes the dependence explicit, and removes the burden on OAuth2-based providers which require an ID token (e.g. this is done by various - default [auth - handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add + default [auth handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add `openid` to their default scopes. _That_ could carry another indirect benefit: by removing `openid` from the default scopes for a provider, grants for resource-specific access tokens can avoid requesting excess ID token-related diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index b301828207..ee49b7d8f5 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1134,8 +1134,7 @@ Migrating to the stable version of `react-router` is optional for the time being. But if you want to do the same for your existing repository, please - follow [this - guide](https://backstage.io/docs/tutorials/react-router-stable-migration). + follow [this guide](https://backstage.io/docs/tutorials/react-router-stable-migration). - e05e0f021b: Update versions of packages used in the create-app template, to match those in the main repo - 01dff06be4: Leverage cache mounts in Dockerfile during `yarn install ...` and `apt-get ...` commands to speed up repeated builds. @@ -1182,8 +1181,7 @@ Migrating to the stable version of `react-router` is optional for the time being. But if you want to do the same for your existing repository, please - follow [this - guide](https://backstage.io/docs/tutorials/react-router-stable-migration). + follow [this guide](https://backstage.io/docs/tutorials/react-router-stable-migration). - e05e0f021b: Update versions of packages used in the create-app template, to match those in the main repo - 52f25858a8: Added `*.session.sql` Visual Studio Code database functionality files to `.gitignore` in the default template. This is optional but potentially helpful if your developers use Visual Studio Code; you can add a line with that exact value to your own root `.gitignore` if you want the same. @@ -3166,8 +3164,7 @@ The old `sqlite3` NPM library has been abandoned by its maintainers, which has led to unhandled security reports and other issues. Therefore, in the `knex` 1.x - release line they have instead switched over to the [`@vscode/sqlite3` - library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is + release line they have instead switched over to the [`@vscode/sqlite3` library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is actively maintained by Microsoft. This means that as you update to this version of Backstage, there are two @@ -3236,8 +3233,7 @@ The old `sqlite3` NPM library has been abandoned by its maintainers, which has led to unhandled security reports and other issues. Therefore, in the `knex` 1.x - release line they have instead switched over to the [`@vscode/sqlite3` - library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is + release line they have instead switched over to the [`@vscode/sqlite3` library](https://github.com/microsoft/vscode-node-sqlite3) by default, which is actively maintained by Microsoft. This means that as you update to this version of Backstage, there are two diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 39613bd409..24b30e2fda 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1349,8 +1349,7 @@ ### Patch Changes - 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- 811ff4bcf4: Updated `swagger-ui-react` to 4.11.1 in order to address a [XSS - vulnerability](https://github.com/advisories/GHSA-hqq7-2q2v-82xq) in `@braintree/sanitize-url` +- 811ff4bcf4: Updated `swagger-ui-react` to 4.11.1 in order to address a [XSS vulnerability](https://github.com/advisories/GHSA-hqq7-2q2v-82xq) in `@braintree/sanitize-url` - Updated dependencies - @backstage/plugin-catalog@1.3.0 - @backstage/plugin-catalog-react@1.1.1 diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 4d8e2f1cd0..cb4e25d190 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -3574,8 +3574,7 @@ `packages/backend/src/plugins/catalog.ts` creates the catalog builder using `CatalogBuilder.create`. If you instead call `new CatalogBuilder`, you are on the old implementation and will experience breakage if you upgrade to this - version. If you are still on the old version, see [the relevant change log - entry](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/CHANGELOG.md#patch-changes-27) + version. If you are still on the old version, see [the relevant change log entry](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/CHANGELOG.md#patch-changes-27) for migration instructions. The minimal `packages/backend/src/plugins/catalog.ts` file is now: @@ -3668,8 +3667,7 @@ `packages/backend/src/plugins/catalog.ts` creates the catalog builder using `CatalogBuilder.create`. If you instead call `new CatalogBuilder`, you are on the old implementation and will experience breakage if you upgrade to this - version. If you are still on the old version, see [the relevant change log - entry](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/CHANGELOG.md#patch-changes-27) + version. If you are still on the old version, see [the relevant change log entry](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/CHANGELOG.md#patch-changes-27) for migration instructions. The minimal `packages/backend/src/plugins/catalog.ts` file is now: diff --git a/plugins/catalog-backend/README.md b/plugins/catalog-backend/README.md index 7f886de155..c2fbe713b9 100644 --- a/plugins/catalog-backend/README.md +++ b/plugins/catalog-backend/README.md @@ -1,9 +1,7 @@ # Catalog Backend -This is the backend for the default Backstage [software -catalog](http://backstage.io/docs/features/software-catalog/). -This provides an API for consumers such as the frontend [catalog -plugin](https://github.com/backstage/backstage/tree/master/plugins/catalog). +This is the backend for the default Backstage [software catalog](http://backstage.io/docs/features/software-catalog/). +This provides an API for consumers such as the frontend [catalog plugin](https://github.com/backstage/backstage/tree/master/plugins/catalog). It comes with a builtin database-backed implementation of the catalog that can store and serve your catalog for you. @@ -34,8 +32,7 @@ yarn --cwd packages/backend add @backstage/plugin-catalog-backend You'll need to add the plugin to the router in your `backend` package. You can do this by creating a file called `packages/backend/src/plugins/catalog.ts` with -contents matching [catalog.ts in the create-app -template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts). +contents matching [catalog.ts in the create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts). With the `catalog.ts` router setup in place, add the router to `packages/backend/src/index.ts`: @@ -60,10 +57,8 @@ async function main() { ### Adding catalog entities At this point the `catalog-backend` is installed in your backend package, but -you will not have any catalog entities loaded. See [Catalog -Configuration](https://backstage.io/docs/features/software-catalog/configuration) -for how to add locations, or copy the catalog locations from the [create-app -template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/app-config.yaml.hbs) +you will not have any catalog entities loaded. See [Catalog Configuration](https://backstage.io/docs/features/software-catalog/configuration) +for how to add locations, or copy the catalog locations from the [create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/app-config.yaml.hbs) to get up and running quickly. ## Development diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index fe64a6101d..bb2477302e 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -2945,8 +2945,7 @@ `CatalogPage` component in your `App.tsx` routing allows you to adjust the layout, header, and which filters are available. - See the documentation added on [Catalog - Customization](https://backstage.io/docs/features/software-catalog/catalog-customization) + See the documentation added on [Catalog Customization](https://backstage.io/docs/features/software-catalog/catalog-customization) for instructions. ### Patch Changes diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index d20331bbfe..abfcf1012c 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -3361,8 +3361,7 @@ `CatalogPage` component in your `App.tsx` routing allows you to adjust the layout, header, and which filters are available. - See the documentation added on [Catalog - Customization](https://backstage.io/docs/features/software-catalog/catalog-customization) + See the documentation added on [Catalog Customization](https://backstage.io/docs/features/software-catalog/catalog-customization) for instructions. ### Patch Changes diff --git a/plugins/catalog/README.md b/plugins/catalog/README.md index 1ce7b2bf69..9375c14a4a 100644 --- a/plugins/catalog/README.md +++ b/plugins/catalog/README.md @@ -1,7 +1,6 @@ # Backstage Catalog Frontend -This is the React frontend for the default Backstage [software -catalog](http://backstage.io/docs/features/software-catalog/). +This is the React frontend for the default Backstage [software catalog](http://backstage.io/docs/features/software-catalog/). This package supplies interfaces related to listing catalog entities or showing more information about them on entity pages. diff --git a/plugins/scaffolder-backend/README.md b/plugins/scaffolder-backend/README.md index 0aa57fd90c..c0629f24f0 100644 --- a/plugins/scaffolder-backend/README.md +++ b/plugins/scaffolder-backend/README.md @@ -1,9 +1,7 @@ # Scaffolder Backend -This is the backend for the default Backstage [software -templates](https://backstage.io/docs/features/software-templates/). -This provides the API for the frontend [scaffolder -plugin](https://github.com/backstage/backstage/tree/master/plugins/scaffolder), +This is the backend for the default Backstage [software templates](https://backstage.io/docs/features/software-templates/). +This provides the API for the frontend [scaffolder plugin](https://github.com/backstage/backstage/tree/master/plugins/scaffolder), as well as the built-in template actions, tasks and stages. ## Installation @@ -28,8 +26,7 @@ yarn --cwd packages/backend add @backstage/plugin-scaffolder-backend You'll need to add the plugin to the router in your `backend` package. You can do this by creating a file called `packages/backend/src/plugins/scaffolder.ts` -with contents matching [scaffolder.ts in the create-app -template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts). +with contents matching [scaffolder.ts in the create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts). With the `scaffolder.ts` router setup in place, add the router to `packages/backend/src/index.ts`: @@ -54,10 +51,7 @@ async function main() { ### Adding templates At this point the scaffolder backend is installed in your backend package, but -you will not have any templates available to use. These need to be [added to the -software -catalog](https://backstage.io/docs/features/software-templates/adding-templates). +you will not have any templates available to use. These need to be [added to the software catalog](https://backstage.io/docs/features/software-templates/adding-templates). To get up and running and try out some templates quickly, you can or copy the -catalog locations from the [create-app -template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/app-config.yaml.hbs). +catalog locations from the [create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/app-config.yaml.hbs). diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 4a9e1b870b..9011c681cb 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -641,8 +641,7 @@ - e72d371296: Added `TemplateEntityV1beta2` which was moved here from `@backstage/plugin-scaffolder-common`. It has also been marked as deprecated in - the process - please consider [migrating to `v1beta3` - templates](https://backstage.io/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3). + the process - please consider [migrating to `v1beta3` templates](https://backstage.io/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3). - c77c5c7eb6: Added `backstage.role` to `package.json` - Updated dependencies - @backstage/catalog-model@0.10.0 diff --git a/plugins/scaffolder/README.md b/plugins/scaffolder/README.md index a6af441d62..8acf456b08 100644 --- a/plugins/scaffolder/README.md +++ b/plugins/scaffolder/README.md @@ -1,7 +1,6 @@ # Scaffolder Frontend -This is the React frontend for the default Backstage [software -templates](https://backstage.io/docs/features/software-templates/). +This is the React frontend for the default Backstage [software templates](https://backstage.io/docs/features/software-templates/). This package supplies interfaces related to showing available templates in the Backstage catalog and the workflow to create software using those templates. diff --git a/plugins/user-settings/README.md b/plugins/user-settings/README.md index 1ecaaeb536..41a6930ae3 100644 --- a/plugins/user-settings/README.md +++ b/plugins/user-settings/README.md @@ -8,8 +8,7 @@ This plugin provides two components, `` is intended to be used w It also provides a `UserSettingsStorage` implementation of the `StorageApi`, to be used in the frontend as a persistent alternative to the builtin `WebStorage`. -Please see [the backend -README](https://github.com/backstage/backstage/tree/master/plugins/user-settings-backend) +Please see [the backend README](https://github.com/backstage/backstage/tree/master/plugins/user-settings-backend) for installation instructions. ## Components Usage From 6a3127526de149024c566f699f9072ffdd9c8b8e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 10:21:40 +0200 Subject: [PATCH 064/153] catalog,scaffolder: fix backend installation instructions Signed-off-by: Patrik Oldsberg --- plugins/catalog-backend/README.md | 16 ++++++++++++---- plugins/scaffolder-backend/README.md | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/plugins/catalog-backend/README.md b/plugins/catalog-backend/README.md index c2fbe713b9..b0bd0328ab 100644 --- a/plugins/catalog-backend/README.md +++ b/plugins/catalog-backend/README.md @@ -28,11 +28,19 @@ restoring the plugin, if you previously removed it. yarn --cwd packages/backend add @backstage/plugin-catalog-backend ``` -### Adding the plugin to your `packages/backend` +Then add the plugin to your backend, typically in `packages/backend/src/index.ts`: -You'll need to add the plugin to the router in your `backend` package. You can -do this by creating a file called `packages/backend/src/plugins/catalog.ts` with -contents matching [catalog.ts in the create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts). +```ts +const backend = createBackend(); +// ... +backend.add(import('@backstage/plugin-catalog-backend/alpha')); +``` + +#### Old backend system + +In the old backend system there's a bit more wiring required. You'll need to +create a file called `packages/backend/src/plugins/catalog.ts` with contents +matching [catalog.ts in the create-app template](https://github.com/backstage/backstage/blob/ad9314d3a7e0405719ba93badf96e97adde8ef83/packages/create-app/templates/default-app/packages/backend/src/plugins/catalog.ts). With the `catalog.ts` router setup in place, add the router to `packages/backend/src/index.ts`: diff --git a/plugins/scaffolder-backend/README.md b/plugins/scaffolder-backend/README.md index c0629f24f0..d760b0fc2d 100644 --- a/plugins/scaffolder-backend/README.md +++ b/plugins/scaffolder-backend/README.md @@ -22,11 +22,19 @@ restoring the plugin, if you previously removed it. yarn --cwd packages/backend add @backstage/plugin-scaffolder-backend ``` -### Adding the plugin to your `packages/backend` +Then add the plugin to your backend, typically in `packages/backend/src/index.ts`: -You'll need to add the plugin to the router in your `backend` package. You can -do this by creating a file called `packages/backend/src/plugins/scaffolder.ts` -with contents matching [scaffolder.ts in the create-app template](https://github.com/backstage/backstage/blob/master/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts). +```ts +const backend = createBackend(); +// ... +backend.add(import('@backstage/plugin-scaffolder-backend/alpha')); +``` + +#### Old backend system + +In the old backend system there's a bit more wiring required. You'll need to +create a file called `packages/backend/src/plugins/scaffolder.ts` +with contents matching [scaffolder.ts in the create-app template](https://github.com/backstage/backstage/blob/ad9314d3a7e0405719ba93badf96e97adde8ef83/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts). With the `scaffolder.ts` router setup in place, add the router to `packages/backend/src/index.ts`: From 4e8083f83194f1b44959989c06fca3aef8af89b0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 11:11:14 +0200 Subject: [PATCH 065/153] OWNERS.md: add org member secustor Signed-off-by: Patrik Oldsberg --- OWNERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/OWNERS.md b/OWNERS.md index d8967ca873..f2e2cb7cf1 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -187,6 +187,7 @@ Scope: The Scaffolder frontend and backend plugins, and related tooling. | Miklós Kiss | Roadie.io | [kissmikijr](https://github.com/kissmikijr) | `Miklos#7416` | | Patrick Jungermann | Bonial International GmbH | [pjungermann](https://github.com/pjungermann) | `pjungermann#6933` | | Phil Kuang | FactSet Research Systems | [kuangp](https://github.com/kuangp) | `pkuang#3202` | +| Sebastian Poxhofer | N26 | [secustor](https://github.com/secustor) | `secustor` | | Taras Mankovski | Frontside | [taras](https://github.com/taras) | `tarasm#1256` | ## Emeritus Core Maintainers From 131e5cbfe86811734c62c185d73226ad5f14736f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 10:22:27 +0200 Subject: [PATCH 066/153] .changesets: added changeset for fixing multi-line links in README Signed-off-by: Patrik Oldsberg --- .changeset/brave-planets-raise.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .changeset/brave-planets-raise.md diff --git a/.changeset/brave-planets-raise.md b/.changeset/brave-planets-raise.md new file mode 100644 index 0000000000..9aec85ae6e --- /dev/null +++ b/.changeset/brave-planets-raise.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-catalog': patch +--- + +Fix broken links in README. From c3623c0cb62906908aed41c014a21e5e6a49d6c7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 10 May 2024 10:27:58 +0200 Subject: [PATCH 067/153] docs: add check and fix links spanning 3 lines Signed-off-by: Patrik Oldsberg --- docs/releases/v1.6.0-changelog.md | 4 +--- docs/releases/v1.6.0-next.1-changelog.md | 4 +--- packages/cli/CHANGELOG.md | 8 ++------ scripts/verify-links.js | 3 ++- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/docs/releases/v1.6.0-changelog.md b/docs/releases/v1.6.0-changelog.md index 0308c5fd3d..0532243cbf 100644 --- a/docs/releases/v1.6.0-changelog.md +++ b/docs/releases/v1.6.0-changelog.md @@ -24,9 +24,7 @@ - 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`. Note that this major update to the Jest plugin contains some breaking changes. - This means that some of your tests may start seeing some new lint errors. [Read - about them - here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). + This means that some of your tests may start seeing some new lint errors. [Read about them here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them corrected. diff --git a/docs/releases/v1.6.0-next.1-changelog.md b/docs/releases/v1.6.0-next.1-changelog.md index 3a1dc8f1b7..e749e32c98 100644 --- a/docs/releases/v1.6.0-next.1-changelog.md +++ b/docs/releases/v1.6.0-next.1-changelog.md @@ -7,9 +7,7 @@ - 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`. Note that this major update to the Jest plugin contains some breaking changes. - This means that some of your tests may start seeing some new lint errors. [Read - about them - here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). + This means that some of your tests may start seeing some new lint errors. [Read about them here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them corrected. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 804966ba3b..2b784d7093 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1628,9 +1628,7 @@ - 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`. Note that this major update to the Jest plugin contains some breaking changes. - This means that some of your tests may start seeing some new lint errors. [Read - about them - here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). + This means that some of your tests may start seeing some new lint errors. [Read about them here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them corrected. @@ -1764,9 +1762,7 @@ - 1fe6823bb5: Updated dependency `eslint-plugin-jest` to `^27.0.0`. Note that this major update to the Jest plugin contains some breaking changes. - This means that some of your tests may start seeing some new lint errors. [Read - about them - here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). + This means that some of your tests may start seeing some new lint errors. [Read about them here](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md#2700-2022-08-28). These are mostly possible to fix automatically. You can try to run `yarn backstage-cli repo lint --fix` in your repo root to have most or all of them corrected. diff --git a/scripts/verify-links.js b/scripts/verify-links.js index 26d31ce6f0..cb7385d972 100755 --- a/scripts/verify-links.js +++ b/scripts/verify-links.js @@ -137,7 +137,8 @@ async function verifyFile(filePath, docPages) { } } - const multiLineLinks = content.match(/\[[^\]\n]+?\n[^\]\n]*?\]\(/g) || []; + const multiLineLinks = + content.match(/\[[^\]\n]+?\n[^\]\n]*?(?:\n[^\]\n]*?)?\]\(/g) || []; badUrls.push( ...multiLineLinks.map(url => ({ url, From e4f9d276d69aa01836061bfce5980f46a6b19185 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Date: Fri, 10 May 2024 15:56:44 +0530 Subject: [PATCH 068/153] Updated the auth document Signed-off-by: Aditya Kumar --- docs/auth/index.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/auth/index.md b/docs/auth/index.md index f6282264e4..f925e52917 100644 --- a/docs/auth/index.md +++ b/docs/auth/index.md @@ -10,12 +10,16 @@ configure Backstage to have any number of authentication providers, but only one of these will typically be used for sign-in, with the rest being used to provide access to external resources. -> NOTE: Identity management and the Sign-In page in Backstage is NOT a method for blocking -> access for unauthorized users. The identity system only serves to provide a personalized -> experience and access to a Backstage Identity Token, which can be passed to backend plugins. -> This also means that your Backstage backend APIs are by default unauthenticated. -> Thus, if your Backstage instance is exposed to the Internet, anyone can access -> information in the Backstage. You can learn more [here](../overview/threat-model.md#integrator-responsibilities). +:::note Note + +Identity management and the Sign-In page in Backstage is NOT a method for blocking +access for unauthorized users. The identity system only serves to provide a personalized +experience and access to a Backstage Identity Token, which can be passed to backend plugins. +This also means that your Backstage backend APIs are by default unauthenticated. +Thus, if your Backstage instance is exposed to the Internet, anyone can access +information in the Backstage. You can learn more [here](../overview/threat-model.md#integrator-responsibilities). + +::: ## Built-in Authentication Providers @@ -141,8 +145,12 @@ const app = createApp({ }); ``` -> NOTE: You can configure sign-in to use a redirect flow with no pop-up by adding -> `enableExperimentalRedirectFlow: true` to the root of your `app-config.yaml` +:::note Note + +You can configure sign-in to use a redirect flow with no pop-up by adding +`enableExperimentalRedirectFlow: true` to the root of your `app-config.yaml` + +::: ## Sign-In with Proxy Providers From 9248b06316302fe610bde4ea6dac0d79776afef7 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 13:33:12 +0200 Subject: [PATCH 069/153] github-org: add org cleaner provider Signed-off-by: Vincenzo Scamporlino --- .../src/GithubOrgEntityCleanerProvider.tsx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx diff --git a/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx b/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx new file mode 100644 index 0000000000..386fd367c2 --- /dev/null +++ b/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx @@ -0,0 +1,38 @@ +/* + * Copyright 2024 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 { + EntityProvider, + EntityProviderConnection, +} from '@backstage/plugin-catalog-node'; + +export class GithubOrgEntityCleanerProvider implements EntityProvider { + constructor(private readonly options: { id: string }) {} + + getProviderName() { + return `GithubOrgEntityProvider:${this.options.id}`; + } + async connect(connection: EntityProviderConnection) { + // Clean up any existing entities + connection + .applyMutation({ + type: 'full', + entities: [], + }) + .catch(error => { + console.error('Failed to clean up entities', error); + }); + } +} From 14af3cb60f3e922633e255390cb7d2a18ebca22a Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 13:34:00 +0200 Subject: [PATCH 070/153] github-org: use default namespace if a single provider is instantiated Signed-off-by: Vincenzo Scamporlino --- .../catalog-backend-module-github-org/src/module.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-github-org/src/module.ts b/plugins/catalog-backend-module-github-org/src/module.ts index 91e0cff049..517968c4f0 100644 --- a/plugins/catalog-backend-module-github-org/src/module.ts +++ b/plugins/catalog-backend-module-github-org/src/module.ts @@ -31,6 +31,7 @@ import { } from '@backstage/plugin-catalog-backend-module-github'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { eventsServiceRef } from '@backstage/plugin-events-node'; +import { GithubOrgEntityCleanerProvider } from './GithubOrgEntityCleanerProvider'; /** * Interface for {@link githubOrgEntityProviderTransformsExtensionPoint}. @@ -99,8 +100,14 @@ export const catalogModuleGithubOrgEntityProvider = createBackendModule({ logger: coreServices.logger, scheduler: coreServices.scheduler, }, + async init({ catalog, config, events, logger, scheduler }) { - for (const definition of readDefinitionsFromConfig(config)) { + const definitions = readDefinitionsFromConfig(config); + + for (const definition of definitions) { + catalog.addEntityProvider( + new GithubOrgEntityCleanerProvider({ id: definition.id }), + ); catalog.addEntityProvider( GithubMultiOrgEntityProvider.fromConfig(config, { id: definition.id, @@ -113,7 +120,8 @@ export const catalogModuleGithubOrgEntityProvider = createBackendModule({ logger, userTransformer, teamTransformer, - defaultNamespace: definition.orgs?.length === 1, + defaultNamespace: + definitions.length === 1 && definition.orgs?.length === 1, }), ); } From 4cd526e1ea449aa247645819ef784fd8bdcbdb74 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 13:39:36 +0200 Subject: [PATCH 071/153] docs: improve migration docs Signed-off-by: Vincenzo Scamporlino --- .../building-backends/08-migrating.md | 75 +++++++++++++++++-- docs/integrations/github/org.md | 2 +- 2 files changed, 68 insertions(+), 9 deletions(-) diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index 0fbb368449..fc0bf35267 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -452,7 +452,7 @@ catalog: /* highlight-add-end */ ``` -To migrate `GithubMultiOrgEntityProvider` and `GithubOrgEntityProvider` to the new backend system, add a reference to `@backstage/plugin-catalog-backend-module-github-org`. +To migrate `GithubMultiOrgEntityProvider` or `GithubOrgEntityProvider` to the new backend system, add a reference to `@backstage/plugin-catalog-backend-module-github-org`. ```ts title="packages/backend/src/index.ts" backend.add(import('@backstage/plugin-catalog-backend/alpha')); @@ -461,20 +461,79 @@ backend.add(import('@backstage/plugin-catalog-backend-module-github-org')); /* highlight-add-end */ ``` -If you were providing a `schedule` in code, this now needs to be set via configuration. -All other Github configuration in `app-config.yaml` remains the same. +##### GithubOrgEntityProvider + +If you were using `GithubOrgEntityProvider` you might have been configured in code like this: + +```ts title="packages/backend/src/plugins/catalog.ts" +// The org URL below needs to match a configured integrations.github entry +// specified in your app-config. +builder.addEntityProvider( + GithubOrgEntityProvider.fromConfig(env.config, { + id: 'production', + orgUrl: 'https://github.com/backstage', + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 60 }, + timeout: { minutes: 15 }, + }), + }), +); +``` + +This now needs to be set via configuration. The options defined above are now set in `app-config.yaml` instead as shown below: ```yaml title="app-config.yaml" catalog: + /* highlight-add-start */ providers: githubOrg: - yourProviderId: - # ... - /* highlight-add-start */ + - id: production + githubUrl: 'https://github.com', + orgs: ['backstage'] schedule: frequency: PT30M - timeout: PT3M - /* highlight-add-end */ + timeout: PT15M + /* highlight-add-end */ +``` + +##### GithubMultiOrgEntityProvider + +If you were using `GithubMultiOrgEntityProvider` you might have been configured in code like this: + +```ts title="packages/backend/src/plugins/catalog.ts" +// The GitHub URL below needs to match a configured integrations.github entry +// specified in your app-config. +builder.addEntityProvider( + GithubMultiOrgEntityProvider.fromConfig(env.config, { + id: 'production', + githubUrl: 'https://github.com', + // Set the following to list the GitHub orgs you wish to ingest from. You can + // also omit this option to ingest all orgs accessible by your GitHub integration + orgs: ['org-a', 'org-b'], + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 60 }, + timeout: { minutes: 15 }, + }), + }), +); +``` + +This now needs to be set via configuration. The options defined above are now set in `app-config.yaml` instead as shown below: + +```yaml title="app-config.yaml" +catalog: + /* highlight-add-start */ + providers: + githubOrg: + - id: production + githubUrl: 'https://github.com', + orgs: ['org-a', 'org-b'], + schedule: + frequency: PT30M + timeout: PT15M + /* highlight-add-end */ ``` If you were providing transformers, these can be configured by extending `githubOrgEntityProviderTransformsExtensionPoint` diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 0b33cfa184..94eb551c7c 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -45,7 +45,7 @@ Next add the basic configuration to `app-config.yaml` catalog: providers: githubOrg: - id: github + id: production githubUrl: https://github.com orgs: ['organization-1', 'organization-2', 'organization-3'] schedule: From 173987b38d65a9d5623eddfb3c6dc40e33e85ab9 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 10 May 2024 17:23:07 +0530 Subject: [PATCH 072/153] changeset change Signed-off-by: npiyush97 --- .changeset/sweet-spiders-rhyme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.changeset/sweet-spiders-rhyme.md b/.changeset/sweet-spiders-rhyme.md index 58767cdfde..71dcc375c0 100644 --- a/.changeset/sweet-spiders-rhyme.md +++ b/.changeset/sweet-spiders-rhyme.md @@ -1,5 +1,4 @@ --- -'@backstage/plugin-catalog-react': patch '@backstage/core-components': patch --- From f66bbb408795bf00ff1847c36db13db9db82d366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 10 May 2024 12:32:16 +0200 Subject: [PATCH 073/153] do not create a unique connection pool for every CacheService instance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/nervous-mayflies-float.md | 5 ++ .github/workflows/ci.yml | 10 +++ .../cache/CacheManager.integration.test.ts | 88 +++++++++++++++++++ .../backend-common/src/cache/CacheManager.ts | 78 ++++++++-------- 4 files changed, 142 insertions(+), 39 deletions(-) create mode 100644 .changeset/nervous-mayflies-float.md create mode 100644 packages/backend-common/src/cache/CacheManager.integration.test.ts diff --git a/.changeset/nervous-mayflies-float.md b/.changeset/nervous-mayflies-float.md new file mode 100644 index 0000000000..e8d29be280 --- /dev/null +++ b/.changeset/nervous-mayflies-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Only create a single actual connection to memcache/redis, even in cases where many `CacheService` instances are made diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c538ec8957..ae90ba164b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -187,6 +187,15 @@ jobs: --health-retries 5 ports: - 3306/tcp + redis: + image: redis + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379/tcp env: CI: true @@ -231,6 +240,7 @@ jobs: BACKSTAGE_TEST_DATABASE_POSTGRES16_CONNECTION_STRING: postgresql://postgres:postgres@localhost:${{ job.services.postgres16.ports[5432] }} BACKSTAGE_TEST_DATABASE_POSTGRES12_CONNECTION_STRING: postgresql://postgres:postgres@localhost:${{ job.services.postgres12.ports[5432] }} BACKSTAGE_TEST_DATABASE_MYSQL8_CONNECTION_STRING: mysql://root:root@localhost:${{ job.services.mysql8.ports[3306] }}/ignored + BACKSTAGE_TEST_CACHE_REDIS_CONNECTION_STRING: redis://localhost:${{ job.services.redis.ports[6379] }} # We run the test cases before verifying the specs to prevent any failing tests from causing errors. - name: verify openapi specs against test cases diff --git a/packages/backend-common/src/cache/CacheManager.integration.test.ts b/packages/backend-common/src/cache/CacheManager.integration.test.ts new file mode 100644 index 0000000000..7dc60a9051 --- /dev/null +++ b/packages/backend-common/src/cache/CacheManager.integration.test.ts @@ -0,0 +1,88 @@ +/* + * Copyright 2024 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 { ConfigReader } from '@backstage/config'; +import { CacheManager } from './CacheManager'; +import KeyvRedis from '@keyv/redis'; + +// This test is in a separate file because the main test file uses other mocking +// that might interfere with this one. + +// Contrived code because it's hard to spy on a default export +jest.mock('@keyv/redis', () => { + const ActualKeyvRedis = jest.requireActual('@keyv/redis'); + return jest + .fn() + .mockImplementation((...args: any[]) => new ActualKeyvRedis(...args)); +}); + +describe('CacheManager integration', () => { + describe('redis', () => { + it('only creates one underlying connection', async () => { + const manager = CacheManager.fromConfig( + new ConfigReader({ + backend: { + cache: { + store: 'redis', + // no actual connection errors will be seen since we don't interact with it + connection: 'redis://localhost:6379', + }, + }, + }), + ); + + manager.forPlugin('p1').getClient(); + manager.forPlugin('p1').getClient({ defaultTtl: 200 }); + manager.forPlugin('p2').getClient(); + manager.forPlugin('p3').getClient({}); + + expect(KeyvRedis).toHaveBeenCalledTimes(1); + }); + + it('interacts correctly with redis', async () => { + // TODO(freben): This could be frameworkified as TestCaches just like + // TestDatabases, but that will have to come some other day + const connection = + process.env.BACKSTAGE_TEST_CACHE_REDIS_CONNECTION_STRING; + if (!connection) { + return; + } + + const manager = CacheManager.fromConfig( + new ConfigReader({ + backend: { + cache: { + store: 'redis', + connection, + }, + }, + }), + ); + + const plugin1 = manager.forPlugin('p1').getClient(); + const plugin2a = manager.forPlugin('p2').getClient(); + const plugin2b = manager.forPlugin('p2').getClient({ defaultTtl: 2000 }); + + await plugin1.set('a', 'plugin1'); + await plugin2a.set('a', 'plugin2a'); + await plugin2b.set('a', 'plugin2b'); + + await expect(plugin1.get('a')).resolves.toBe('plugin1'); + await expect(plugin2a.get('a')).resolves.toBe('plugin2b'); + await expect(plugin2b.get('a')).resolves.toBe('plugin2b'); + }); + }); +}); diff --git a/packages/backend-common/src/cache/CacheManager.ts b/packages/backend-common/src/cache/CacheManager.ts index c7298ab3e9..ec8a1d93f7 100644 --- a/packages/backend-common/src/cache/CacheManager.ts +++ b/packages/backend-common/src/cache/CacheManager.ts @@ -27,6 +27,8 @@ import { getRootLogger } from '../logging'; import { DefaultCacheClient } from './CacheClient'; import { CacheManagerOptions, PluginCacheManager } from './types'; +type StoreFactory = (pluginId: string, defaultTtl: number | undefined) => Keyv; + /** * Implements a Cache Manager which will automatically create new cache clients * for plugins when requested. All requested cache clients are created with the @@ -40,18 +42,11 @@ export class CacheManager { * that return Keyv instances appropriate to the store. */ private readonly storeFactories = { - redis: this.getRedisClient, - memcache: this.getMemcacheClient, - memory: this.getMemoryClient, + redis: this.createRedisStoreFactory(), + memcache: this.createMemcacheStoreFactory(), + memory: this.createMemoryStoreFactory(), }; - /** - * Shared memory store for the in-memory cache client. Sharing the same Map - * instance ensures get/set/delete operations hit the same store, regardless - * of where/when a client is instantiated. - */ - private readonly memoryStore = new Map(); - private readonly logger: LoggerService; private readonly store: keyof CacheManager['storeFactories']; private readonly connection: string; @@ -148,41 +143,46 @@ export class CacheManager { } private getClientWithTtl(pluginId: string, ttl: number | undefined): Keyv { - return this.storeFactories[this.store].call(this, pluginId, ttl); + return this.storeFactories[this.store](pluginId, ttl); } - private getRedisClient( - pluginId: string, - defaultTtl: number | undefined, - ): Keyv { - return new Keyv({ - namespace: pluginId, - ttl: defaultTtl, - store: new KeyvRedis(this.connection), - useRedisSets: this.useRedisSets, - }); + private createRedisStoreFactory(): StoreFactory { + let store: KeyvRedis | undefined; + return (pluginId, defaultTtl) => { + if (!store) { + store = new KeyvRedis(this.connection); + } + return new Keyv({ + namespace: pluginId, + ttl: defaultTtl, + store, + useRedisSets: this.useRedisSets, + }); + }; } - private getMemcacheClient( - pluginId: string, - defaultTtl: number | undefined, - ): Keyv { - return new Keyv({ - namespace: pluginId, - ttl: defaultTtl, - store: new KeyvMemcache(this.connection), - }); + private createMemcacheStoreFactory(): StoreFactory { + let store: KeyvMemcache | undefined; + return (pluginId, defaultTtl) => { + if (!store) { + store = new KeyvMemcache(this.connection); + } + return new Keyv({ + namespace: pluginId, + ttl: defaultTtl, + store, + }); + }; } - private getMemoryClient( - pluginId: string, - defaultTtl: number | undefined, - ): Keyv { - return new Keyv({ - namespace: pluginId, - ttl: defaultTtl, - store: this.memoryStore, - }); + private createMemoryStoreFactory(): StoreFactory { + const store = new Map(); + return (pluginId, defaultTtl) => + new Keyv({ + namespace: pluginId, + ttl: defaultTtl, + store, + }); } } From 2deb523f3d2bdcf098d20f57060dd0de7e2f11d0 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 14:46:48 +0200 Subject: [PATCH 074/153] backend-app-api: accept camelCase csp directives Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/http/readHelmetOptions.test.ts | 2 +- packages/backend-app-api/src/http/readHelmetOptions.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/backend-app-api/src/http/readHelmetOptions.test.ts b/packages/backend-app-api/src/http/readHelmetOptions.test.ts index bc31404634..619a4e6a17 100644 --- a/packages/backend-app-api/src/http/readHelmetOptions.test.ts +++ b/packages/backend-app-api/src/http/readHelmetOptions.test.ts @@ -47,7 +47,7 @@ describe('readHelmetOptions', () => { csp: { key: ['value'], 'img-src': false, - 'script-src-attr': ['custom'], + scriptSrcAttr: ['custom'], }, }); expect(readHelmetOptions(config)).toEqual({ diff --git a/packages/backend-app-api/src/http/readHelmetOptions.ts b/packages/backend-app-api/src/http/readHelmetOptions.ts index 0555bdef00..510fdd9586 100644 --- a/packages/backend-app-api/src/http/readHelmetOptions.ts +++ b/packages/backend-app-api/src/http/readHelmetOptions.ts @@ -18,6 +18,7 @@ import { Config } from '@backstage/config'; import helmet from 'helmet'; import { HelmetOptions } from 'helmet'; import { ContentSecurityPolicyOptions } from 'helmet/dist/types/middlewares/content-security-policy'; +import kebabCase from 'lodash/kebabCase'; /** * Attempts to read Helmet options from the backend configuration object. @@ -97,10 +98,11 @@ export function applyCspDirectives( if (directives) { for (const [key, value] of Object.entries(directives)) { + const kebabCaseKey = kebabCase(key); if (value === false) { - delete result[key]; + delete result[kebabCaseKey]; } else { - result[key] = value; + result[kebabCaseKey] = value; } } } From a1dc547dc41b05092f1bcd733d4bb7602ea6c155 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 14:49:40 +0200 Subject: [PATCH 075/153] backend-app-api: csp changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/olive-pants-leave.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changeset/olive-pants-leave.md diff --git a/.changeset/olive-pants-leave.md b/.changeset/olive-pants-leave.md new file mode 100644 index 0000000000..e14cc69912 --- /dev/null +++ b/.changeset/olive-pants-leave.md @@ -0,0 +1,11 @@ +--- +'@backstage/backend-app-api': patch +--- + +Added support for camel case CSP directives in app-config. For example: + +```yaml +backend: + csp: + upgradeInsecureRequests: false +``` From e3ce775a1b9bceaa68cfec3badd7891cc032b407 Mon Sep 17 00:00:00 2001 From: Subburaj Jagadeesan Date: Wed, 10 Apr 2024 19:09:27 +0100 Subject: [PATCH 076/153] Added docs for template task-list & start-over options Signed-off-by: Subburaj Jagadeesan --- .../software-templates/template-start-over.png | Bin 0 -> 235157 bytes .../software-templates/template-task-list.png | Bin 0 -> 218907 bytes docs/features/software-templates/index.md | 14 ++++++++++++++ 3 files changed, 14 insertions(+) create mode 100644 docs/assets/software-templates/template-start-over.png create mode 100644 docs/assets/software-templates/template-task-list.png diff --git a/docs/assets/software-templates/template-start-over.png b/docs/assets/software-templates/template-start-over.png new file mode 100644 index 0000000000000000000000000000000000000000..86ae13f12e828ef9bbcf9adaa357a3e4060c6c75 GIT binary patch literal 235157 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

lg1d?4L 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

3Pg7-jU2))Z4|gQT)J~10T{G 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�=)^L6ucmjQvsI- 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 We%MZAj=bde{a|kWJ<06mqkjPrZySyP literal 0 HcmV?d00001 diff --git a/docs/assets/software-templates/template-task-list.png b/docs/assets/software-templates/template-task-list.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5eaa4b487c42918dc9b0f42a0f7e358e2aa073 GIT binary patch literal 218907 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±1 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ÍnyQK~ zqSzc@W}h*`XS1dj#M2K?k+Mx)hwRpf+)!7>+-^zrBed3E!n}j|rRnW~(o)~X>(_oM z_$Wez@!F}{SrQF1N}I@D!c~A*;Rq<4M{>T#qFq-HLMgbjeJzxz#$B~(Bh2AuR}NBF z%Wm>x+A*qwE4zK0)YGxzNS~z-cOE7DT0xU!0%T>0iBAV2quz808FOtDHn1`@alg$iy%Lj!O5U2Zr zO$l}ShUw_w(yc8gmC%C!f9M;!-Wbmh&N`hU)?~Y!Yn&?vZ0wiMFy~~rS8mkb1MS8r zm6#vnt&8N{r2NcL!ZfCdm;?VCSK!=J8XQ^2`>11d(oTk|81ZL%({(IzjFL)07M8Be z6`NloA4+g9IPPxM5<|Rzo>107pN9-A`{|b#yYef8R$S<$z(h#*kXS*WG{10X7_c}{&+Bp zp4`UG;=(p~^(;ac7*b4a>+>}!d2@-y{Bq`NgDXD@hl+j~)CU5etR^#4C*Q60#%h02 zvh|Kr)DC#1h3Y&)^L$dp^jE>NQqmp8`$MAZFs1p9Im3lFF;YeHP!tQ%%-TsYb|mh! z&3t8WSABdokY8392n0@aiu0}G9=?JR^qTs!DD!;s&$=+c70oN}4xH_t0GVYqq)0@} zzlA@g_nfRt8C9vrLr4@68pNU&4yeI=4nZi#BJwujN{`(7@@XxU6O3Uq;1K~yb8>~+G&RH7p(Pwq1Z#}5az6tr$|e# R8p`lRni?Zc5l>vZ_g}TPT66#a literal 0 HcmV?d00001 diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index d0c1bea9b2..a2df6cfe1c 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -103,3 +103,17 @@ from `backstage/packages/app/src/App.tsx`: ``` After the change, you should no longer see the button. + +## Previewing and Executing Previous Template Tasks + +Each execution of a template is treated as a unique task, identifiable by its own unique ID. To view a list of previously executed template tasks, navigate to the `Create` page and access the `Task List` from the context menu (represented by the vertical ellipsis, or 'kebab menu', icon in the upper right corner). + +![Template Task List](../../assets/software-templates/template-task-list.png) + +If you wish to re-run a previously executed template, navigate to the template tasks page. Locate the desired task and select the `Start Over` option from the context menu. + +![Template Start Over](../../assets/software-templates/template-start-over.png) + +This action will initiate a new execution of the selected template, pre-populated with the same parameters as the previous run, but these parameters can be edited before re-execution. + +In the event of a failed template execution, the `Start Over` option can be used to re-execute the template. The parameters from the original run will be pre-filled, but they can be adjusted as needed before retrying the template. From 3009021821216b78482c8580183385c13bacba97 Mon Sep 17 00:00:00 2001 From: Subburaj Jagadeesan Date: Wed, 8 May 2024 09:38:04 +0100 Subject: [PATCH 077/153] Updated the screenshots with create-app template Signed-off-by: Subburaj Jagadeesan --- .../template-start-over.png | Bin 235157 -> 208076 bytes .../software-templates/template-task-list.png | Bin 218907 -> 173816 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/software-templates/template-start-over.png b/docs/assets/software-templates/template-start-over.png index 86ae13f12e828ef9bbcf9adaa357a3e4060c6c75..5e47540feb123c8dad9c11b533bda654dedc664e 100644 GIT binary patch literal 208076 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�A@OE{Znecz#8BL3Mu9y-R> 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 C-*`;` literal 235157 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

lg1d?4L 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

3Pg7-jU2))Z4|gQT)J~10T{G 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�=)^L6ucmjQvsI- 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 We%MZAj=bde{a|kWJ<06mqkjPrZySyP diff --git a/docs/assets/software-templates/template-task-list.png b/docs/assets/software-templates/template-task-list.png index 1e5eaa4b487c42918dc9b0f42a0f7e358e2aa073..b160003375d73bee010f998964281a0b5b04dcab 100644 GIT binary patch literal 173816 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±1 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ÍnyQK~ zqSzc@W}h*`XS1dj#M2K?k+Mx)hwRpf+)!7>+-^zrBed3E!n}j|rRnW~(o)~X>(_oM z_$Wez@!F}{SrQF1N}I@D!c~A*;Rq<4M{>T#qFq-HLMgbjeJzxz#$B~(Bh2AuR}NBF z%Wm>x+A*qwE4zK0)YGxzNS~z-cOE7DT0xU!0%T>0iBAV2quz808FOtDHn1`@alg$iy%Lj!O5U2Zr zO$l}ShUw_w(yc8gmC%C!f9M;!-Wbmh&N`hU)?~Y!Yn&?vZ0wiMFy~~rS8mkb1MS8r zm6#vnt&8N{r2NcL!ZfCdm;?VCSK!=J8XQ^2`>11d(oTk|81ZL%({(IzjFL)07M8Be z6`NloA4+g9IPPxM5<|Rzo>107pN9-A`{|b#yYef8R$S<$z(h#*kXS*WG{10X7_c}{&+Bp zp4`UG;=(p~^(;ac7*b4a>+>}!d2@-y{Bq`NgDXD@hl+j~)CU5etR^#4C*Q60#%h02 zvh|Kr)DC#1h3Y&)^L$dp^jE>NQqmp8`$MAZFs1p9Im3lFF;YeHP!tQ%%-TsYb|mh! z&3t8WSABdokY8392n0@aiu0}G9=?JR^qTs!DD!;s&$=+c70oN}4xH_t0GVYqq)0@} zzlA@g_nfRt8C9vrLr4@68pNU&4yeI=4nZi#BJwujN{`(7@@XxU6O3Uq;1K~yb8>~+G&RH7p(Pwq1Z#}5az6tr$|e# R8p`lRni?Zc5l>vZ_g}TPT66#a From beef2a1c9fd131b55d39de67c56e7f4ad588c5c1 Mon Sep 17 00:00:00 2001 From: Subburaj Jagadeesan Date: Thu, 9 May 2024 19:49:17 +0100 Subject: [PATCH 078/153] Updating the screenshots using create-app template Signed-off-by: Subburaj Jagadeesan --- .../template-start-over.png | Bin 208076 -> 206188 bytes .../software-templates/template-task-list.png | Bin 173816 -> 169496 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/software-templates/template-start-over.png b/docs/assets/software-templates/template-start-over.png index 5e47540feb123c8dad9c11b533bda654dedc664e..67d9caff34ab9b3a2cb13295c21262b729b9988e 100644 GIT binary patch literal 206188 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 z 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�A@OE{Znecz#8BL3Mu9y-R> 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 C-*`;` diff --git a/docs/assets/software-templates/template-task-list.png b/docs/assets/software-templates/template-task-list.png index b160003375d73bee010f998964281a0b5b04dcab..dc2bbfa3102e32d2723c7d69e3887614e9084db6 100644 GIT binary patch literal 169496 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%0A`Y_V<+&QV(&&U&HB^rV-M8<` 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/o3DZHpU?_24cw!Td?9;>e;#$Du{@SclwQtzKiz0&KB0zUr}GJvx! zR!j84$CJ6Lkx|jt;3_|xg1hKWhJ)%!^05niV?7(AY}a{DtqV+XrVVs{rfE3K%0teu z0Q^?AdqJXLFd+XAdbSy(4q9O*eJ@h6fcmzmmmM29g$ihdA<&t*R|zr>ww#QAb61f+ zpx65C9QHdk6329tmGBTcg+la9DuSuoF>Ubg8UAdFFW{s%OdU68$H>V-psjAQNgoTo_=Q|`xYADtAtv8230kpu!viLc zfqs2t;n>lWphY`=vG3=h<*jjMvG27CqNgY*Zt;08U8kZm1q+(cz{OpsK~}5dxw<8@ z;L=4X$au+YnNMNw4)?hXxQ0p}T{2vSUud&wK$j5v{iS0vIBhFX&to*X%aSs&scZZY zbJ6hYeFCGxv(ooR_0xuMfoiyL_4JSrLep@6S(E1HBG}!w$nb1_m^D0R61nu)umAfl z;AXJ%KahsFa8kX0X=p^;4OB9Gkdrc&yl8f&c8rN!Yd|lMa71_tV@Y?#f3*SDDPyaC zpto*W&$XU=TgTmq2VC6tFK&34;66=5g0+Ibn2uktaqv0+ zUee~masS%VdUwiyM@VC#Y5ab?TZq-brTx#16^r%r?+6`&Fy7+He>*C_yUTag^FL&_ z7aQZhbSQXt%6EPIH!jCJZV*^p$d~9H$tv@K z0MfdL_Q?BPfsX&!GQY5m{TW#F7T~l zN-r(0!(G2`f zj*Z<|Bx-uCV~Ig1RSOU$N%ANyr3?YxkT&}RbQzTrMtmzfbxhjaKPv+{Wrgv{ynY_I z-Gs^9z%l}WB9TWZF-Ro?OY>)ECTaMgp}#h|tdI+KYASfc9Quh$!t!IAJt{|NpahnW zLn+Y(TLxn#5LtAC!29QX0b!G!y0o=er+S`^uVuV#mB!SyQF0ZGuCB;xNSf2gpW;7g zi5q|H>>!!Gm0bp>Sz#(qtKc$-R7nLGn7o2d>vR77bb8LiT-v%B-+3%ShQ-|3DBsm_ zu<`iY1wckmVqUg$bNt+$sOm{;GTI!mR1PjvfxZ8)6HbQ%MWhLx)0 z*$5hA&7<5_-4s_{D9P5%A$-ZWo~T~%=rjpaJAk+w<>3a}LB*oNPEXH+4EI`2aJj*y zg~kUO)orvY0zhmiRCAY*3kzYJCT3rP#c~!R!r;*zUDv8?38@1~+{5({Ow#<^72g%pLF&`m4s8Q^W$0NHKPO!#TPQ|2HPIdJk3`=bll7H>&wTD#zWsKQ9AX6jNtP^Vuv zm4Q~YZ3S3)oC||9k1v07#jOvxaa^sG!eaR$ki3hFi*v#C2OzKTN5G#y1^QQSW~va) zKk79^L7BSpWuD{p%*9vV4v@om0uh?_gAq9%T@pY literal 173816 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 Date: Fri, 10 May 2024 11:30:13 -0400 Subject: [PATCH 079/153] Update docs/features/software-templates/index.md Signed-off-by: Subburaj Jagadeesan Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/features/software-templates/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index a2df6cfe1c..9642214ede 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -106,14 +106,14 @@ After the change, you should no longer see the button. ## Previewing and Executing Previous Template Tasks -Each execution of a template is treated as a unique task, identifiable by its own unique ID. To view a list of previously executed template tasks, navigate to the `Create` page and access the `Task List` from the context menu (represented by the vertical ellipsis, or 'kebab menu', icon in the upper right corner). +Each execution of a template is treated as a unique task, identifiable by its own unique ID. To view a list of previously executed template tasks, navigate to the "Create" page and access the "Task List" from the context menu (represented by the vertical ellipsis, or 'kebab menu', icon in the upper right corner). ![Template Task List](../../assets/software-templates/template-task-list.png) -If you wish to re-run a previously executed template, navigate to the template tasks page. Locate the desired task and select the `Start Over` option from the context menu. +If you wish to re-run a previously executed template, navigate to the template tasks page. Locate the desired task and select the "Start Over" option from the context menu. ![Template Start Over](../../assets/software-templates/template-start-over.png) This action will initiate a new execution of the selected template, pre-populated with the same parameters as the previous run, but these parameters can be edited before re-execution. -In the event of a failed template execution, the `Start Over` option can be used to re-execute the template. The parameters from the original run will be pre-filled, but they can be adjusted as needed before retrying the template. +In the event of a failed template execution, the "Start Over" option can be used to re-execute the template. The parameters from the original run will be pre-filled, but they can be adjusted as needed before retrying the template. From 8c8d36b967fcf15b6fa1d9deb05ab03ce7732592 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 10 May 2024 20:02:03 +0200 Subject: [PATCH 080/153] docs: improve github auth providers Signed-off-by: Vincenzo Scamporlino --- docs/auth/github/provider.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/auth/github/provider.md b/docs/auth/github/provider.md index 2c3aaeaf7d..4accc7841b 100644 --- a/docs/auth/github/provider.md +++ b/docs/auth/github/provider.md @@ -43,13 +43,12 @@ auth: # enterpriseInstanceUrl: ${AUTH_GITHUB_ENTERPRISE_INSTANCE_URL} signIn: resolvers: - # typically you would pick one of these - - resolver: emailMatchingUserEntityProfileEmail - - resolver: emailLocalPartMatchingUserEntityName + # Matches the GitHub username with the Backstage user entity name. + # See https://backstage.io/docs/auth/github/provider#resolvers for more resolvers. - resolver: usernameMatchingUserEntityName ``` -The GitHub provider is a structure with three configuration keys: +The GitHub provider is a structure with five configuration keys: - `clientId`: The client ID that you generated on GitHub, e.g. `b59241722e3c3b4816e2` @@ -60,6 +59,9 @@ The GitHub provider is a structure with three configuration keys: initiating an OAuth flow, e.g. `https://your-intermediate-service.com/handler`. Only needed if Backstage is not the immediate receiver (e.g. one OAuth app for many backstage instances). +- `signIn`: The configuration for the sign-in process, including the **resolvers** + that should be used to match the user from the auth provider with the user + entity in the Backstage catalog (typically a single resolver is sufficient). ### Resolvers @@ -69,7 +71,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. From af207a6841ac54506be020cf7d59cfe03f8c3d25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 May 2024 18:24:52 +0000 Subject: [PATCH 081/153] chore(deps): update actions/checkout action to v4.1.5 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/api-breaking-changes.yml | 2 +- .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_microsite_accessibility.yml | 2 +- .github/workflows/verify_storybook.yml | 2 +- .github/workflows/verify_windows.yml | 2 +- 29 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/api-breaking-changes.yml b/.github/workflows/api-breaking-changes.yml index 84161e3010..5f456a9b0b 100644 --- a/.github/workflows/api-breaking-changes.yml +++ b/.github/workflows/api-breaking-changes.yml @@ -18,7 +18,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index ef1a258239..6ac327bcd6 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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 dd8895a752..56ab3283ac 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: ref: '${{ github.event.pull_request.merge_commit_sha }}' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c538ec8957..ebe1dab5b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -68,7 +68,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -197,7 +197,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: fetch master branch run: git fetch origin master diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index d5f5eee35e..19c58a8a60 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -25,7 +25,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: path: backstage ref: ${{ github.event.client_payload.version && env.RELEASE_VERSION || github.ref }} diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml index 037fb27e8d..2554e3eeb8 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index ab8ea3c773..6ec5b03d56 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 44222275ad..444f3f825d 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -65,7 +65,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -148,7 +148,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8a069d476d..0b883dd75a 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: persist-credentials: false diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index 7f10ae60df..dce7217201 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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 7c8e634fb8..ddd60750d1 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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 7fe8817731..c971be522f 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: repository: backstage/versions path: backstage/versions diff --git a/.github/workflows/sync_renovate-changesets.yml b/.github/workflows/sync_renovate-changesets.yml index e1c5656d08..9d031812ea 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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 1948807215..2ea3fcd5a1 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/sync_snyk-monitor.yml b/.github/workflows/sync_snyk-monitor.yml index 43c613b641..e6b274c395 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Monitor and Synchronize Snyk Policies uses: snyk/actions/node@8349f9043a8b7f0f3ee8885bf28f0b388d2446e8 # master with: diff --git a/.github/workflows/sync_version-packages.yml b/.github/workflows/sync_version-packages.yml index ed69fd3c24..884bcf3d95 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: fetch-depth: 20000 fetch-tags: true diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index eab0a61e46..5ab208590a 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -31,7 +31,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: setup-node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -89,7 +89,7 @@ jobs: egress-policy: audit - name: Checkout git repo - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Render Compose File run: | # update image after the build above diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index 2c0e10c118..75415f7961 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Use Node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: diff --git a/.github/workflows/verify_codeql.yml b/.github/workflows/verify_codeql.yml index f028147b85..0c30218d72 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 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 21d3563b57..f784608493 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 # 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 ffaa7971e6..9763cbd085 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 6ff3b9eecf..b9229263ae 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -45,7 +45,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Configure Git run: | diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index ad0950392f..31d9d8b06a 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: python-version: '3.9' diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 7a823a85e1..064baf700e 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Configure Git run: | diff --git a/.github/workflows/verify_fossa.yml b/.github/workflows/verify_fossa.yml index 4c9b1516a2..152fe9f185 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - 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 724fac7fef..48d7da218d 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/verify_microsite_accessibility.yml b/.github/workflows/verify_microsite_accessibility.yml index af2364e743..9728bf57c6 100644 --- a/.github/workflows/verify_microsite_accessibility.yml +++ b/.github/workflows/verify_microsite_accessibility.yml @@ -19,7 +19,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Use Node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index 3cdb0de344..9a59b7b071 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: fetch-depth: 0 # Required to retrieve git history diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index 0c54cfb287..cd7a9b62ae 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 From fa9def08249b0566b51a9528ce0a6e158e37dbfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 10 May 2024 20:30:21 +0200 Subject: [PATCH 082/153] Update packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../src/components/OverflowTooltip/OverflowTooltip.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx index f0799b0d69..4b5b0f4bde 100644 --- a/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx +++ b/packages/core-components/src/components/OverflowTooltip/OverflowTooltip.tsx @@ -34,7 +34,6 @@ const useStyles = makeStyles( overflow: 'visible !important', }, typo: { - maxWidth: 200, overflow: 'hidden', textOverflow: 'ellipsis', display: '-webkit-box', From 76999670d79ba766efe931b6ef38d530335b64bb Mon Sep 17 00:00:00 2001 From: Elias Rieb Date: Tue, 7 May 2024 16:44:14 +0200 Subject: [PATCH 083/153] catalog: use LoggerService instead of winston Logger in ldap module Signed-off-by: Elias Rieb --- .changeset/clean-pants-camp.md | 5 +++++ .../catalog-backend-module-ldap/api-report.md | 18 +++++++++--------- .../catalog-backend-module-ldap/package.json | 4 ++-- .../src/ldap/client.ts | 6 +++--- .../src/ldap/read.ts | 4 ++-- .../src/processors/LdapOrgEntityProvider.ts | 10 +++++----- .../src/processors/LdapOrgReaderProcessor.ts | 8 ++++---- yarn.lock | 2 +- 8 files changed, 31 insertions(+), 26 deletions(-) create mode 100644 .changeset/clean-pants-camp.md diff --git a/.changeset/clean-pants-camp.md b/.changeset/clean-pants-camp.md new file mode 100644 index 0000000000..2070305a6d --- /dev/null +++ b/.changeset/clean-pants-camp.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-ldap': patch +--- + +Remove dependency to Winston Logger and use Backstage LoggerService instead diff --git a/plugins/catalog-backend-module-ldap/api-report.md b/plugins/catalog-backend-module-ldap/api-report.md index 277a48af8d..76276c8fad 100644 --- a/plugins/catalog-backend-module-ldap/api-report.md +++ b/plugins/catalog-backend-module-ldap/api-report.md @@ -12,7 +12,7 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node'; import { GroupEntity } from '@backstage/catalog-model'; import { JsonValue } from '@backstage/types'; import { LocationSpec } from '@backstage/plugin-catalog-common'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { SearchEntry } from 'ldapjs'; import { SearchOptions } from 'ldapjs'; import { TaskRunner } from '@backstage/backend-tasks'; @@ -76,10 +76,10 @@ export const LDAP_UUID_ANNOTATION = 'backstage.io/ldap-uuid'; // @public export class LdapClient { - constructor(client: Client, logger: Logger); + constructor(client: Client, logger: LoggerService); // (undocumented) static create( - logger: Logger, + logger: LoggerService, target: string, bind?: BindConfig, tls?: TLSConfig, @@ -99,7 +99,7 @@ export class LdapOrgEntityProvider implements EntityProvider { constructor(options: { id: string; provider: LdapProviderConfig; - logger: Logger; + logger: LoggerService; userTransformer?: UserTransformer; groupTransformer?: GroupTransformer; }); @@ -112,14 +112,14 @@ export class LdapOrgEntityProvider implements EntityProvider { ): LdapOrgEntityProvider; // (undocumented) getProviderName(): string; - read(options?: { logger?: Logger }): Promise; + read(options?: { logger?: LoggerService }): Promise; } // @public export interface LdapOrgEntityProviderOptions { groupTransformer?: GroupTransformer; id: string; - logger: Logger; + logger: LoggerService; schedule: 'manual' | TaskRunner; target: string; userTransformer?: UserTransformer; @@ -129,7 +129,7 @@ export interface LdapOrgEntityProviderOptions { export class LdapOrgReaderProcessor implements CatalogProcessor { constructor(options: { providers: LdapProviderConfig[]; - logger: Logger; + logger: LoggerService; groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; }); @@ -137,7 +137,7 @@ export class LdapOrgReaderProcessor implements CatalogProcessor { static fromConfig( configRoot: Config, options: { - logger: Logger; + logger: LoggerService; groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; }, @@ -187,7 +187,7 @@ export function readLdapOrg( options: { groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; - logger: Logger; + logger: LoggerService; }, ): Promise<{ users: UserEntity[]; diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index e50d629e0e..2be1113e64 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -36,6 +36,7 @@ "test": "backstage-cli package test" }, "dependencies": { + "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", @@ -46,8 +47,7 @@ "@types/ldapjs": "^2.2.5", "ldapjs": "^2.3.3", "lodash": "^4.17.21", - "uuid": "^9.0.0", - "winston": "^3.2.1" + "uuid": "^9.0.0" }, "devDependencies": { "@backstage/cli": "workspace:^", diff --git a/plugins/catalog-backend-module-ldap/src/ldap/client.ts b/plugins/catalog-backend-module-ldap/src/ldap/client.ts index 75e54013b3..48a3eedfb8 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/client.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/client.ts @@ -19,7 +19,6 @@ import { readFile } from 'fs/promises'; import ldap, { Client, SearchEntry, SearchOptions } from 'ldapjs'; import { cloneDeep } from 'lodash'; import tlsLib from 'tls'; -import { Logger } from 'winston'; import { BindConfig, TLSConfig } from './config'; import { createOptions, errorString } from './util'; import { @@ -29,6 +28,7 @@ import { FreeIpaVendor, LdapVendor, } from './vendors'; +import { LoggerService } from '@backstage/backend-plugin-api'; /** * Basic wrapper for the `ldapjs` library. @@ -41,7 +41,7 @@ export class LdapClient { private vendor: Promise | undefined; static async create( - logger: Logger, + logger: LoggerService, target: string, bind?: BindConfig, tls?: TLSConfig, @@ -89,7 +89,7 @@ export class LdapClient { constructor( private readonly client: Client, - private readonly logger: Logger, + private readonly logger: LoggerService, ) {} /** diff --git a/plugins/catalog-backend-module-ldap/src/ldap/read.ts b/plugins/catalog-backend-module-ldap/src/ldap/read.ts index 590d27ba8b..50036b94b0 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/read.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/read.ts @@ -31,9 +31,9 @@ import { LDAP_UUID_ANNOTATION, } from './constants'; import { LdapVendor } from './vendors'; -import { Logger } from 'winston'; import { GroupTransformer, UserTransformer } from './types'; import { mapStringAttr } from './util'; +import { LoggerService } from '@backstage/backend-plugin-api'; /** * The default implementation of the transformation from an LDAP entry to a @@ -269,7 +269,7 @@ export async function readLdapOrg( options: { groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; - logger: Logger; + logger: LoggerService; }, ): Promise<{ users: UserEntity[]; diff --git a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts index d4f19d0522..97ea4a53b0 100644 --- a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgEntityProvider.ts @@ -27,7 +27,6 @@ import { } from '@backstage/plugin-catalog-node'; import { merge } from 'lodash'; import * as uuid from 'uuid'; -import { Logger } from 'winston'; import { GroupTransformer, LdapClient, @@ -37,6 +36,7 @@ import { readLdapOrg, UserTransformer, } from '../ldap'; +import { LoggerService } from '@backstage/backend-plugin-api'; /** * Options for {@link LdapOrgEntityProvider}. @@ -64,7 +64,7 @@ export interface LdapOrgEntityProviderOptions { /** * The logger to use. */ - logger: Logger; + logger: LoggerService; /** * The refresh schedule to use. @@ -143,7 +143,7 @@ export class LdapOrgEntityProvider implements EntityProvider { private options: { id: string; provider: LdapProviderConfig; - logger: Logger; + logger: LoggerService; userTransformer?: UserTransformer; groupTransformer?: GroupTransformer; }, @@ -164,7 +164,7 @@ export class LdapOrgEntityProvider implements EntityProvider { * Runs one single complete ingestion. This is only necessary if you use * manual scheduling. */ - async read(options?: { logger?: Logger }) { + async read(options?: { logger?: LoggerService }) { if (!this.connection) { throw new Error('Not initialized'); } @@ -237,7 +237,7 @@ export class LdapOrgEntityProvider implements EntityProvider { } // Helps wrap the timing and logging behaviors -function trackProgress(logger: Logger) { +function trackProgress(logger: LoggerService) { let timestamp = Date.now(); let summary: string; diff --git a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts index 00578ac3a4..c920968fc1 100644 --- a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts +++ b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts @@ -15,7 +15,6 @@ */ import { Config } from '@backstage/config'; -import { Logger } from 'winston'; import { GroupTransformer, LdapClient, @@ -30,6 +29,7 @@ import { processingResult, } from '@backstage/plugin-catalog-node'; import { LocationSpec } from '@backstage/plugin-catalog-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; /** * Extracts teams and users out of an LDAP server. @@ -38,14 +38,14 @@ import { LocationSpec } from '@backstage/plugin-catalog-common'; */ export class LdapOrgReaderProcessor implements CatalogProcessor { private readonly providers: LdapProviderConfig[]; - private readonly logger: Logger; + private readonly logger: LoggerService; private readonly groupTransformer?: GroupTransformer; private readonly userTransformer?: UserTransformer; static fromConfig( configRoot: Config, options: { - logger: Logger; + logger: LoggerService; groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; }, @@ -62,7 +62,7 @@ export class LdapOrgReaderProcessor implements CatalogProcessor { constructor(options: { providers: LdapProviderConfig[]; - logger: Logger; + logger: LoggerService; groupTransformer?: GroupTransformer; userTransformer?: UserTransformer; }) { diff --git a/yarn.lock b/yarn.lock index 6cee25b42b..160b41ceec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5269,6 +5269,7 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-ldap@workspace:plugins/catalog-backend-module-ldap" dependencies: + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-tasks": "workspace:^" "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" @@ -5282,7 +5283,6 @@ __metadata: ldapjs: ^2.3.3 lodash: ^4.17.21 uuid: ^9.0.0 - winston: ^3.2.1 languageName: unknown linkType: soft From e42779e9b86ce1d27870d00aa37491278b84f94b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 13 May 2024 09:31:37 +0200 Subject: [PATCH 084/153] Properly log the errorInfo in ErrorBoundary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/cool-garlics-clap.md | 5 +++++ .../src/layout/ErrorBoundary/ErrorBoundary.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/cool-garlics-clap.md diff --git a/.changeset/cool-garlics-clap.md b/.changeset/cool-garlics-clap.md new file mode 100644 index 0000000000..223d0a1233 --- /dev/null +++ b/.changeset/cool-garlics-clap.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Properly log the `errorInfo` in `ErrorBoundary` diff --git a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx index 8f746882a1..b3a5d1db90 100644 --- a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx +++ b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx @@ -79,7 +79,7 @@ export const ErrorBoundary: ComponentClass< componentDidCatch(error: Error, errorInfo: ErrorInfo) { // eslint-disable-next-line no-console - console.error(`ErrorBoundary, error: ${error}, info: ${errorInfo}`); + console.error(`ErrorBoundary, error: ${error}`, { error, errorInfo }); this.setState({ error, errorInfo }); } From 57f692e66ca58ca4a3ab29dbbff237770a49f46d Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Fri, 3 May 2024 09:25:34 +0200 Subject: [PATCH 085/153] refactor(backend-common): deprecate isomorphic git class Signed-off-by: Camila Belo --- .changeset/famous-crabs-laugh.md | 6 + packages/backend-common/api-report.md | 6 +- .../backend-common/src/deprecated/index.ts | 17 + .../src/{ => deprecated}/scm/git.test.ts | 0 .../backend-common/src/deprecated/scm/git.ts | 357 +++++++++++ .../src/{ => deprecated}/scm/index.ts | 0 packages/backend-common/src/index.ts | 3 +- .../src/reading/GerritUrlReader.test.ts | 2 +- .../src/reading/GerritUrlReader.ts | 28 +- .../src/reading/GiteaUrlReader.test.ts | 2 +- .../src/reading/HarnessUrlReader.test.ts | 2 +- packages/backend-common/src/reading/git.ts | 143 +++++ plugins/scaffolder-node/package.json | 1 + .../src/actions/gitHelpers.test.ts | 5 +- .../scaffolder-node/src/actions/gitHelpers.ts | 2 +- plugins/scaffolder-node/src/scm/git.test.ts | 606 ++++++++++++++++++ .../scaffolder-node}/src/scm/git.ts | 0 plugins/scaffolder-node/src/scm/index.ts | 18 + yarn.lock | 1 + 19 files changed, 1178 insertions(+), 21 deletions(-) create mode 100644 .changeset/famous-crabs-laugh.md create mode 100644 packages/backend-common/src/deprecated/index.ts rename packages/backend-common/src/{ => deprecated}/scm/git.test.ts (100%) create mode 100644 packages/backend-common/src/deprecated/scm/git.ts rename packages/backend-common/src/{ => deprecated}/scm/index.ts (100%) create mode 100644 packages/backend-common/src/reading/git.ts create mode 100644 plugins/scaffolder-node/src/scm/git.test.ts rename {packages/backend-common => plugins/scaffolder-node}/src/scm/git.ts (100%) create mode 100644 plugins/scaffolder-node/src/scm/index.ts diff --git a/.changeset/famous-crabs-laugh.md b/.changeset/famous-crabs-laugh.md new file mode 100644 index 0000000000..6427fbbc82 --- /dev/null +++ b/.changeset/famous-crabs-laugh.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-common': patch +'@backstage/plugin-scaffolder-node': patch +--- + +Preparing for a stable new backend system release, we are deprecating utilities in the `backend-common` that are not used by the core framework, such as the isomorphic `Git` class. As we will no longer support the isomorphic `Git` utility in the framework packages, we recommend plugins that start maintaining their own implementation of this class. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index cccf326b9f..3a04072499 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -71,7 +71,7 @@ import { V1PodTemplateSpec } from '@kubernetes/client-node'; import * as winston from 'winston'; import { Writable } from 'stream'; -// @public +// @public @deprecated export type AuthCallbackOptions = { onAuth: AuthCallback; logger?: LoggerService; @@ -370,7 +370,7 @@ export function getRootLogger(): winston.Logger; // @public export function getVoidLogger(): winston.Logger; -// @public +// @public @deprecated export class Git { // (undocumented) add(options: { dir: string; filepath: string }): Promise; @@ -818,7 +818,7 @@ export function setRootLogger(newLogger: winston.Logger): void; // @public @deprecated export const SingleHostDiscovery: typeof HostDiscovery_2; -// @public +// @public @deprecated export type StaticAuthOptions = { username?: string; password?: string; diff --git a/packages/backend-common/src/deprecated/index.ts b/packages/backend-common/src/deprecated/index.ts new file mode 100644 index 0000000000..ed5fdcc577 --- /dev/null +++ b/packages/backend-common/src/deprecated/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 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 './scm'; diff --git a/packages/backend-common/src/scm/git.test.ts b/packages/backend-common/src/deprecated/scm/git.test.ts similarity index 100% rename from packages/backend-common/src/scm/git.test.ts rename to packages/backend-common/src/deprecated/scm/git.test.ts diff --git a/packages/backend-common/src/deprecated/scm/git.ts b/packages/backend-common/src/deprecated/scm/git.ts new file mode 100644 index 0000000000..1a182e6f4d --- /dev/null +++ b/packages/backend-common/src/deprecated/scm/git.ts @@ -0,0 +1,357 @@ +/* + * 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 git, { + ProgressCallback, + MergeResult, + ReadCommitResult, + AuthCallback, +} from 'isomorphic-git'; +import http from 'isomorphic-git/http/node'; +import fs from 'fs-extra'; +import { LoggerService } from '@backstage/backend-plugin-api'; + +function isAuthCallbackOptions( + options: StaticAuthOptions | AuthCallbackOptions, +): options is AuthCallbackOptions { + return 'onAuth' in options; +} + +/** + * Configure static credential for authentication + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + */ +export type StaticAuthOptions = { + username?: string; + password?: string; + token?: string; + logger?: LoggerService; +}; + +/** + * Configure an authentication callback that can provide credentials on demand + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + */ +export type AuthCallbackOptions = { + onAuth: AuthCallback; + logger?: LoggerService; +}; + +/* +provider username password +Azure 'notempty' token +Bitbucket Cloud 'x-token-auth' token +Bitbucket Server username password or token +GitHub 'x-access-token' token +GitLab 'oauth2' token + +From : https://isomorphic-git.org/docs/en/onAuth with fix for GitHub + +Or token provided as `token` for Bearer auth header +instead of Basic Auth (e.g., Bitbucket Server). +*/ + +/** + * A convenience wrapper around the `isomorphic-git` library. + * @public + * @deprecated This class is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + */ + +export class Git { + private readonly headers: { + [x: string]: string; + }; + + private constructor( + private readonly config: { + onAuth: AuthCallback; + token?: string; + logger?: LoggerService; + }, + ) { + this.onAuth = config.onAuth; + + this.headers = { + 'user-agent': 'git/@isomorphic-git', + ...(config.token ? { Authorization: `Bearer ${config.token}` } : {}), + }; + } + + async add(options: { dir: string; filepath: string }): Promise { + const { dir, filepath } = options; + this.config.logger?.info(`Adding file {dir=${dir},filepath=${filepath}}`); + + return git.add({ fs, dir, filepath }); + } + + async addRemote(options: { + dir: string; + remote: string; + url: string; + force?: boolean; + }): Promise { + const { dir, url, remote, force } = options; + this.config.logger?.info( + `Creating new remote {dir=${dir},remote=${remote},url=${url}}`, + ); + return git.addRemote({ fs, dir, remote, url, force }); + } + + async deleteRemote(options: { dir: string; remote: string }): Promise { + const { dir, remote } = options; + this.config.logger?.info(`Deleting remote {dir=${dir},remote=${remote}}`); + return git.deleteRemote({ fs, dir, remote }); + } + + async checkout(options: { dir: string; ref: string }): Promise { + const { dir, ref } = options; + this.config.logger?.info(`Checking out branch {dir=${dir},ref=${ref}}`); + + return git.checkout({ fs, dir, ref }); + } + + async branch(options: { dir: string; ref: string }): Promise { + const { dir, ref } = options; + this.config.logger?.info(`Creating branch {dir=${dir},ref=${ref}`); + + return git.branch({ fs, dir, ref }); + } + + async commit(options: { + dir: string; + message: string; + author: { name: string; email: string }; + committer: { name: string; email: string }; + }): Promise { + const { dir, message, author, committer } = options; + this.config.logger?.info( + `Committing file to repo {dir=${dir},message=${message}}`, + ); + return git.commit({ fs, dir, message, author, committer }); + } + + /** https://isomorphic-git.org/docs/en/clone */ + async clone(options: { + url: string; + dir: string; + ref?: string; + depth?: number; + noCheckout?: boolean; + }): Promise { + const { url, dir, ref, depth, noCheckout } = options; + this.config.logger?.info(`Cloning repo {dir=${dir},url=${url}}`); + + try { + return await git.clone({ + fs, + http, + url, + dir, + ref, + singleBranch: true, + depth: depth ?? 1, + noCheckout, + onProgress: this.onProgressHandler(), + headers: this.headers, + onAuth: this.onAuth, + }); + } catch (ex) { + this.config.logger?.error(`Failed to clone repo {dir=${dir},url=${url}}`); + if (ex.data) { + throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`); + } + throw ex; + } + } + + /** https://isomorphic-git.org/docs/en/currentBranch */ + async currentBranch(options: { + dir: string; + fullName?: boolean; + }): Promise { + const { dir, fullName = false } = options; + return git.currentBranch({ fs, dir, fullname: fullName }) as Promise< + string | undefined + >; + } + + /** https://isomorphic-git.org/docs/en/fetch */ + async fetch(options: { + dir: string; + remote?: string; + tags?: boolean; + }): Promise { + const { dir, remote = 'origin', tags = false } = options; + this.config.logger?.info( + `Fetching remote=${remote} for repository {dir=${dir}}`, + ); + + try { + await git.fetch({ + fs, + http, + dir, + remote, + tags, + onProgress: this.onProgressHandler(), + headers: this.headers, + onAuth: this.onAuth, + }); + } catch (ex) { + this.config.logger?.error( + `Failed to fetch repo {dir=${dir},remote=${remote}}`, + ); + if (ex.data) { + throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`); + } + throw ex; + } + } + + async init(options: { dir: string; defaultBranch?: string }): Promise { + const { dir, defaultBranch = 'master' } = options; + this.config.logger?.info(`Init git repository {dir=${dir}}`); + + return git.init({ + fs, + dir, + defaultBranch, + }); + } + + /** https://isomorphic-git.org/docs/en/merge */ + async merge(options: { + dir: string; + theirs: string; + ours?: string; + author: { name: string; email: string }; + committer: { name: string; email: string }; + }): Promise { + const { dir, theirs, ours, author, committer } = options; + this.config.logger?.info( + `Merging branch '${theirs}' into '${ours}' for repository {dir=${dir}}`, + ); + + // If ours is undefined, current branch is used. + return git.merge({ + fs, + dir, + ours, + theirs, + author, + committer, + }); + } + + async push(options: { + dir: string; + remote: string; + remoteRef?: string; + force?: boolean; + }) { + const { dir, remote, remoteRef, force } = options; + this.config.logger?.info( + `Pushing directory to remote {dir=${dir},remote=${remote}}`, + ); + try { + return await git.push({ + fs, + dir, + http, + onProgress: this.onProgressHandler(), + remoteRef, + force, + headers: this.headers, + remote, + onAuth: this.onAuth, + }); + } catch (ex) { + this.config.logger?.error( + `Failed to push to repo {dir=${dir}, remote=${remote}}`, + ); + if (ex.data) { + throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`); + } + throw ex; + } + } + + /** https://isomorphic-git.org/docs/en/readCommit */ + async readCommit(options: { + dir: string; + sha: string; + }): Promise { + const { dir, sha } = options; + return git.readCommit({ fs, dir, oid: sha }); + } + + /** https://isomorphic-git.org/docs/en/remove */ + async remove(options: { dir: string; filepath: string }): Promise { + const { dir, filepath } = options; + this.config.logger?.info( + `Removing file from git index {dir=${dir},filepath=${filepath}}`, + ); + return git.remove({ fs, dir, filepath }); + } + + /** https://isomorphic-git.org/docs/en/resolveRef */ + async resolveRef(options: { dir: string; ref: string }): Promise { + const { dir, ref } = options; + return git.resolveRef({ fs, dir, ref }); + } + + /** https://isomorphic-git.org/docs/en/log */ + async log(options: { + dir: string; + ref?: string; + }): Promise { + const { dir, ref } = options; + return git.log({ + fs, + dir, + ref: ref ?? 'HEAD', + }); + } + + private onAuth: AuthCallback; + + private onProgressHandler = (): ProgressCallback => { + let currentPhase = ''; + + return event => { + if (currentPhase !== event.phase) { + currentPhase = event.phase; + this.config.logger?.info(event.phase); + } + const total = event.total + ? `${Math.round((event.loaded / event.total) * 100)}%` + : event.loaded; + this.config.logger?.debug(`status={${event.phase},total={${total}}}`); + }; + }; + + static fromAuth = (options: StaticAuthOptions | AuthCallbackOptions) => { + if (isAuthCallbackOptions(options)) { + const { onAuth, logger } = options; + return new Git({ onAuth, logger }); + } + + const { username, password, token, logger } = options; + return new Git({ onAuth: () => ({ username, password }), token, logger }); + }; +} diff --git a/packages/backend-common/src/scm/index.ts b/packages/backend-common/src/deprecated/scm/index.ts similarity index 100% rename from packages/backend-common/src/scm/index.ts rename to packages/backend-common/src/deprecated/scm/index.ts diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index 4b1314b7d2..dfae1d549c 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -22,6 +22,8 @@ export { legacyPlugin, makeLegacyPlugin } from './legacy'; export type { LegacyCreateRouter } from './legacy'; +export { Git } from './deprecated'; +export type { StaticAuthOptions, AuthCallbackOptions } from './deprecated'; export * from './auth'; export * from './cache'; export { loadBackendConfig } from './config'; @@ -32,7 +34,6 @@ export * from './logging'; export * from './middleware'; export * from './paths'; export * from './reading'; -export * from './scm'; export * from './service'; export * from './tokens'; export * from './util'; diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-common/src/reading/GerritUrlReader.test.ts index 66943cac51..14f96b529a 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.test.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.test.ts @@ -47,7 +47,7 @@ const treeResponseFactory = DefaultReadTreeResponseFactory.create({ }); const cloneMock = jest.fn(() => Promise.resolve()); -jest.mock('../scm', () => ({ +jest.mock('./git', () => ({ Git: { fromAuth: () => ({ clone: cloneMock, diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index 76de711dec..b8a3d98392 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -14,7 +14,15 @@ * limitations under the License. */ -import { NotFoundError, NotModifiedError } from '@backstage/errors'; +import { Base64Decode } from 'base64-stream'; +import concatStream from 'concat-stream'; +import fs from 'fs-extra'; +import fetch, { Response } from 'node-fetch'; +import os from 'os'; +import { join as joinPath } from 'path'; +import { Readable, pipeline as pipelineCb } from 'stream'; +import tar from 'tar'; +import { promisify } from 'util'; import { GerritIntegration, ScmIntegrations, @@ -26,16 +34,7 @@ import { parseGerritGitilesUrl, parseGerritJsonResponse, } from '@backstage/integration'; -import { Base64Decode } from 'base64-stream'; -import concatStream from 'concat-stream'; -import fs from 'fs-extra'; -import fetch, { Response } from 'node-fetch'; -import os from 'os'; -import { join as joinPath } from 'path'; -import { Readable, pipeline as pipelineCb } from 'stream'; -import tar from 'tar'; -import { promisify } from 'util'; -import { Git } from '../scm'; +import { NotFoundError, NotModifiedError } from '@backstage/errors'; import { ReadTreeOptions, ReadTreeResponse, @@ -46,6 +45,13 @@ import { SearchResponse, UrlReader, } from './types'; +import { StaticAuthOptions, AuthCallbackOptions, Git } from './git'; + +export function isAuthCallbackOptions( + options: StaticAuthOptions | AuthCallbackOptions, +): options is AuthCallbackOptions { + return 'onAuth' in options; +} const pipeline = promisify(pipelineCb); diff --git a/packages/backend-common/src/reading/GiteaUrlReader.test.ts b/packages/backend-common/src/reading/GiteaUrlReader.test.ts index a941d2e5aa..f8658a2241 100644 --- a/packages/backend-common/src/reading/GiteaUrlReader.test.ts +++ b/packages/backend-common/src/reading/GiteaUrlReader.test.ts @@ -33,7 +33,7 @@ const treeResponseFactory = DefaultReadTreeResponseFactory.create({ config: new ConfigReader({}), }); -jest.mock('../scm', () => ({ +jest.mock('./git', () => ({ Git: { fromAuth: () => ({ clone: jest.fn(() => Promise.resolve({})), diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-common/src/reading/HarnessUrlReader.test.ts index bb09baa140..2741b75fd5 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.test.ts +++ b/packages/backend-common/src/reading/HarnessUrlReader.test.ts @@ -30,7 +30,7 @@ const treeResponseFactory = DefaultReadTreeResponseFactory.create({ config: new ConfigReader({}), }); -jest.mock('../scm', () => ({ +jest.mock('./git', () => ({ Git: { fromAuth: () => ({ clone: jest.fn(() => Promise.resolve({})), diff --git a/packages/backend-common/src/reading/git.ts b/packages/backend-common/src/reading/git.ts new file mode 100644 index 0000000000..ecd38d6c0c --- /dev/null +++ b/packages/backend-common/src/reading/git.ts @@ -0,0 +1,143 @@ +/* + * Copyright 2024 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 fs from 'fs-extra'; +import isomorphicGit, { ProgressCallback, AuthCallback } from 'isomorphic-git'; +import http from 'isomorphic-git/http/node'; +import { LoggerService } from '@backstage/backend-plugin-api'; +import { isAuthCallbackOptions } from './GerritUrlReader'; + +/** + * Configure static credential for authentication + * + * @public + */ +export type StaticAuthOptions = { + username?: string; + password?: string; + token?: string; + logger?: LoggerService; +}; + +/** + * Configure an authentication callback that can provide credentials on demand + * + * @public + */ +export type AuthCallbackOptions = { + onAuth: AuthCallback; + logger?: LoggerService; +}; + +/* +provider username password +Azure 'notempty' token +Bitbucket Cloud 'x-token-auth' token +Bitbucket Server username password or token +GitHub 'x-access-token' token +GitLab 'oauth2' token + +From : https://isomorphic-git.org/docs/en/onAuth with fix for GitHub + +Or token provided as `token` for Bearer auth header +instead of Basic Auth (e.g., Bitbucket Server). +*/ +/** + * A convenience wrapper around the `isomorphic-git` library. + * + * @public + */ +export class Git { + private readonly headers: { + [x: string]: string; + }; + + private constructor( + private readonly config: { + onAuth: AuthCallback; + token?: string; + logger?: LoggerService; + }, + ) { + this.onAuth = config.onAuth; + + this.headers = { + 'user-agent': 'git/@isomorphic-git', + ...(config.token ? { Authorization: `Bearer ${config.token}` } : {}), + }; + } + + /** https://isomorphic-git.org/docs/en/clone */ + async clone(options: { + url: string; + dir: string; + ref?: string; + depth?: number; + noCheckout?: boolean; + }): Promise { + const { url, dir, ref, depth, noCheckout } = options; + this.config.logger?.info(`Cloning repo {dir=${dir},url=${url}}`); + + try { + return await isomorphicGit.clone({ + fs, + http, + url, + dir, + ref, + singleBranch: true, + depth: depth ?? 1, + noCheckout, + onProgress: this.onProgressHandler(), + headers: this.headers, + onAuth: this.onAuth, + }); + } catch (ex) { + this.config.logger?.error(`Failed to clone repo {dir=${dir},url=${url}}`); + if (ex.data) { + throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`); + } + throw ex; + } + } + + private onAuth: AuthCallback; + + private onProgressHandler = (): ProgressCallback => { + let currentPhase = ''; + + return event => { + if (currentPhase !== event.phase) { + currentPhase = event.phase; + this.config.logger?.info(event.phase); + } + const total = event.total + ? `${Math.round((event.loaded / event.total) * 100)}%` + : event.loaded; + this.config.logger?.debug(`status={${event.phase},total={${total}}}`); + }; + }; + + static fromAuth = (options: StaticAuthOptions | AuthCallbackOptions) => { + if (isAuthCallbackOptions(options)) { + const { onAuth, logger } = options; + return new Git({ onAuth, logger }); + } + + const { username, password, token, logger } = options; + return new Git({ onAuth: () => ({ username, password }), token, logger }); + }; +} diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 11d3da67bc..c45382a707 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -54,6 +54,7 @@ "@backstage/types": "workspace:^", "fs-extra": "^11.2.0", "globby": "^11.0.0", + "isomorphic-git": "^1.23.0", "jsonschema": "^1.2.6", "p-limit": "^3.1.0", "winston": "^3.2.1", diff --git a/plugins/scaffolder-node/src/actions/gitHelpers.test.ts b/plugins/scaffolder-node/src/actions/gitHelpers.test.ts index b230b2cd06..64281d660f 100644 --- a/plugins/scaffolder-node/src/actions/gitHelpers.test.ts +++ b/plugins/scaffolder-node/src/actions/gitHelpers.test.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Git, getVoidLogger } from '@backstage/backend-common'; +import { getVoidLogger } from '@backstage/backend-common'; +import { Git } from '../scm'; import { commitAndPushRepo, initRepoAndPush, @@ -24,7 +25,7 @@ import { cloneRepo, } from './gitHelpers'; -jest.mock('@backstage/backend-common', () => ({ +jest.mock('../scm', () => ({ Git: { fromAuth: jest.fn().mockReturnValue({ init: jest.fn(), diff --git a/plugins/scaffolder-node/src/actions/gitHelpers.ts b/plugins/scaffolder-node/src/actions/gitHelpers.ts index 2026e75247..04f47d1648 100644 --- a/plugins/scaffolder-node/src/actions/gitHelpers.ts +++ b/plugins/scaffolder-node/src/actions/gitHelpers.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { Git } from '@backstage/backend-common'; import { Logger } from 'winston'; +import { Git } from '../scm'; /** * @public diff --git a/plugins/scaffolder-node/src/scm/git.test.ts b/plugins/scaffolder-node/src/scm/git.test.ts new file mode 100644 index 0000000000..1c07dfb917 --- /dev/null +++ b/plugins/scaffolder-node/src/scm/git.test.ts @@ -0,0 +1,606 @@ +/* + * 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. + */ +jest.mock('isomorphic-git'); +jest.mock('isomorphic-git/http/node'); +jest.mock('fs-extra'); + +import * as isomorphic from 'isomorphic-git'; +import { Git } from './git'; +import http from 'isomorphic-git/http/node'; +import fs from 'fs-extra'; + +describe('Git', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + + describe('add', () => { + it('should call isomorphic-git add with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const filepath = 'mockfile/path'; + + await git.add({ dir, filepath }); + + expect(isomorphic.add).toHaveBeenCalledWith({ + fs, + dir, + filepath, + }); + }); + }); + + describe('addRemote', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const remote = 'origin'; + const url = 'git@github.com/something/sads'; + const force = true; + + await git.addRemote({ dir, remote, url, force }); + + expect(isomorphic.addRemote).toHaveBeenCalledWith({ + fs, + dir, + remote, + url, + force, + }); + }); + }); + + describe('remove', () => { + it('should call isomorphic-git remove with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const filepath = 'mockfile/path'; + + await git.remove({ dir, filepath }); + + expect(isomorphic.remove).toHaveBeenCalledWith({ + fs, + dir, + filepath, + }); + }); + }); + + describe('deleteRemote', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const remote = 'origin'; + + await git.deleteRemote({ dir, remote }); + + expect(isomorphic.deleteRemote).toHaveBeenCalledWith({ + fs, + dir, + remote, + }); + }); + }); + + describe('checkout', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const ref = 'master'; + + await git.checkout({ dir, ref }); + + expect(isomorphic.checkout).toHaveBeenCalledWith({ + fs, + dir, + ref, + }); + }); + }); + + describe('branch', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const ref = 'master'; + + await git.branch({ dir, ref }); + + expect(isomorphic.branch).toHaveBeenCalledWith({ + fs, + dir, + ref, + }); + }); + }); + + describe('commit', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const message = 'Inital Commit'; + const author = { + name: 'author', + email: 'test@backstage.io', + }; + const committer = { + name: 'comitter', + email: 'test@backstage.io', + }; + + await git.commit({ dir, message, author, committer }); + + expect(isomorphic.commit).toHaveBeenCalledWith({ + fs, + dir, + message, + author, + committer, + }); + }); + }); + + describe('clone', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const url = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + await git.clone({ url, dir }); + + expect(isomorphic.clone).toHaveBeenCalledWith({ + fs, + http, + url, + dir, + singleBranch: true, + depth: 1, + onProgress: expect.any(Function), + headers: { + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should call isomorphic-git with the correct arguments (Bearer)', async () => { + const url = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + token: 'test', + }; + const git = Git.fromAuth(auth); + + await git.clone({ url, dir }); + + expect(isomorphic.clone).toHaveBeenCalledWith({ + fs, + http, + url, + dir, + singleBranch: true, + depth: 1, + onProgress: expect.any(Function), + headers: { + Authorization: 'Bearer test', + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should pass a function that returns the authorization as the onAuth handler when username and password are specified', async () => { + const url = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + await git.clone({ url, dir }); + + const { onAuth } = ( + isomorphic.clone as unknown as jest.Mock<(typeof isomorphic)['clone']> + ).mock.calls[0][0]!; + + expect(onAuth()).toEqual(auth); + }); + + it('should pass the provided callback as the onAuth handler when on auth is specified', async () => { + const url = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'from', + password: 'callback', + }; + + const git = Git.fromAuth({ onAuth: () => auth }); + + await git.clone({ url, dir }); + + const { onAuth } = ( + isomorphic.clone as unknown as jest.Mock<(typeof isomorphic)['clone']> + ).mock.calls[0][0]!; + + expect(onAuth()).toEqual(auth); + }); + + it('should propagate the data from the error handler', async () => { + const url = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + (isomorphic.clone as jest.Mock).mockImplementation(() => { + const error: Error & { data?: unknown } = new Error('mock error'); + error.data = { some: 'more information here' }; + + throw error; + }); + + await expect(git.clone({ url, dir })).rejects.toThrow( + 'more information here', + ); + }); + }); + + describe('currentBranch', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const fullName = true; + const git = Git.fromAuth({}); + + await git.currentBranch({ dir, fullName }); + + expect(isomorphic.currentBranch).toHaveBeenCalledWith({ + fs, + dir, + fullname: true, + }); + + await git.currentBranch({ dir }); + + expect(isomorphic.currentBranch).toHaveBeenCalledWith({ + fs, + dir, + fullname: false, + }); + }); + }); + + describe('fetch', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const remote = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + await git.fetch({ remote, dir, tags: true }); + + expect(isomorphic.fetch).toHaveBeenCalledWith({ + fs, + http, + remote, + dir, + tags: true, + onProgress: expect.any(Function), + headers: { + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should call isomorphic-git with the correct arguments (Bearer)', async () => { + const remote = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + token: 'test', + }; + const git = Git.fromAuth(auth); + + await git.fetch({ remote, dir }); + + expect(isomorphic.fetch).toHaveBeenCalledWith({ + fs, + http, + remote, + dir, + tags: false, + onProgress: expect.any(Function), + headers: { + Authorization: 'Bearer test', + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should pass a function that returns the authorization as the onAuth handler', async () => { + const remote = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + await git.fetch({ remote, dir }); + + const { onAuth } = ( + isomorphic.fetch as unknown as jest.Mock<(typeof isomorphic)['fetch']> + ).mock.calls[0][0]!; + + expect(onAuth()).toEqual(auth); + }); + + it('should propagate the data from the error handler', async () => { + const remote = 'http://github.com/some/repo'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + (isomorphic.fetch as jest.Mock).mockImplementation(() => { + const error: Error & { data?: unknown } = new Error('mock error'); + error.data = { some: 'more information here' }; + + throw error; + }); + + await expect(git.fetch({ remote, dir })).rejects.toThrow( + 'more information here', + ); + }); + }); + + describe('init', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const defaultBranch = 'master'; + + const git = Git.fromAuth({}); + + await git.init({ dir, defaultBranch }); + + expect(isomorphic.init).toHaveBeenCalledWith({ + fs, + dir, + defaultBranch, + }); + }); + }); + + describe('merge', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const author = { + name: 'author', + email: 'test@backstage.io', + }; + const committer = { + name: 'comitter', + email: 'test@backstage.io', + }; + const theirs = 'master'; + const ours = 'production'; + + const git = Git.fromAuth({}); + + await git.merge({ dir, theirs, ours, author, committer }); + + expect(isomorphic.merge).toHaveBeenCalledWith({ + fs, + dir, + ours, + theirs, + author, + committer, + }); + }); + }); + + describe('push', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const remote = 'origin'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + const remoteRef = 'master'; + const force = true; + + await git.push({ dir, remote, remoteRef, force }); + + expect(isomorphic.push).toHaveBeenCalledWith({ + fs, + http, + remote, + dir, + remoteRef, + force, + onProgress: expect.any(Function), + headers: { + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should call isomorphic-git with the correct arguments (Bearer)', async () => { + const remote = 'origin'; + const dir = '/some/mock/dir'; + const auth = { + token: 'test', + }; + const git = Git.fromAuth(auth); + const remoteRef = 'master'; + const force = true; + + await git.push({ dir, remote, remoteRef, force }); + + expect(isomorphic.push).toHaveBeenCalledWith({ + fs, + http, + remote, + dir, + remoteRef, + force, + onProgress: expect.any(Function), + headers: { + Authorization: 'Bearer test', + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should call isomorphic-git with remoteRef parameter', async () => { + const remote = 'origin'; + const remoteRef = 'refs/for/master'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + + await git.push({ dir, remote, remoteRef }); + + expect(isomorphic.push).toHaveBeenCalledWith({ + fs, + http, + remote, + remoteRef, + dir, + onProgress: expect.any(Function), + headers: { + 'user-agent': 'git/@isomorphic-git', + }, + onAuth: expect.any(Function), + }); + }); + + it('should pass a function that returns the authorization as the onAuth handler', async () => { + const remote = 'origin'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + const remoteRef = 'master'; + const force = true; + + await git.push({ remote, dir, remoteRef, force }); + + const { onAuth } = ( + isomorphic.push as unknown as jest.Mock<(typeof isomorphic)['push']> + ).mock.calls[0][0]!; + + expect(onAuth()).toEqual(auth); + }); + + it('should propagate the data from the error handler', async () => { + const remote = 'origin'; + const dir = '/some/mock/dir'; + const auth = { + username: 'blob', + password: 'hunter2', + }; + const git = Git.fromAuth(auth); + const remoteRef = 'master'; + const force = true; + + (isomorphic.push as jest.Mock).mockImplementation(() => { + const error: Error & { data?: unknown } = new Error('mock error'); + error.data = { some: 'more information here' }; + + throw error; + }); + + await expect(git.push({ remote, dir, remoteRef, force })).rejects.toThrow( + 'more information here', + ); + }); + }); + + describe('readCommit', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const sha = 'as43bd7'; + + const git = Git.fromAuth({}); + + await git.readCommit({ dir, sha }); + + expect(isomorphic.readCommit).toHaveBeenCalledWith({ + fs, + dir, + oid: sha, + }); + }); + }); + + describe('resolveRef', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const ref = 'as43bd7'; + + const git = Git.fromAuth({}); + + await git.resolveRef({ dir, ref }); + + expect(isomorphic.resolveRef).toHaveBeenCalledWith({ + fs, + dir, + ref, + }); + }); + }); + + describe('log', () => { + it('should call isomorphic-git with the correct arguments', async () => { + const dir = '/some/mock/dir'; + const ref = 'as43bd7'; + + const git = Git.fromAuth({}); + + await git.log({ dir, ref }); + + expect(isomorphic.log).toHaveBeenCalledWith({ + fs, + dir, + ref, + }); + }); + }); +}); diff --git a/packages/backend-common/src/scm/git.ts b/plugins/scaffolder-node/src/scm/git.ts similarity index 100% rename from packages/backend-common/src/scm/git.ts rename to plugins/scaffolder-node/src/scm/git.ts diff --git a/plugins/scaffolder-node/src/scm/index.ts b/plugins/scaffolder-node/src/scm/index.ts new file mode 100644 index 0000000000..f9c59e99eb --- /dev/null +++ b/plugins/scaffolder-node/src/scm/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Git } from './git'; +export type { StaticAuthOptions, AuthCallbackOptions } from './git'; diff --git a/yarn.lock b/yarn.lock index 9c9a730679..44dd1b76ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6909,6 +6909,7 @@ __metadata: "@backstage/types": "workspace:^" fs-extra: ^11.2.0 globby: ^11.0.0 + isomorphic-git: ^1.23.0 jsonschema: ^1.2.6 p-limit: ^3.1.0 winston: ^3.2.1 From f633efa1c74365a4e7bb7cabfa48306f7d19e9ea Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 13 May 2024 10:35:20 +0200 Subject: [PATCH 086/153] refactor: apply review suggestions Signed-off-by: Camila Belo --- .changeset/famous-crabs-laugh.md | 1 - .changeset/strange-rocks-study.md | 5 +++++ packages/backend-common/src/reading/GerritUrlReader.ts | 8 +------- packages/backend-common/src/reading/git.ts | 7 ++++++- 4 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 .changeset/strange-rocks-study.md diff --git a/.changeset/famous-crabs-laugh.md b/.changeset/famous-crabs-laugh.md index 6427fbbc82..282cbb9f93 100644 --- a/.changeset/famous-crabs-laugh.md +++ b/.changeset/famous-crabs-laugh.md @@ -1,6 +1,5 @@ --- '@backstage/backend-common': patch -'@backstage/plugin-scaffolder-node': patch --- Preparing for a stable new backend system release, we are deprecating utilities in the `backend-common` that are not used by the core framework, such as the isomorphic `Git` class. As we will no longer support the isomorphic `Git` utility in the framework packages, we recommend plugins that start maintaining their own implementation of this class. diff --git a/.changeset/strange-rocks-study.md b/.changeset/strange-rocks-study.md new file mode 100644 index 0000000000..75ceb745fb --- /dev/null +++ b/.changeset/strange-rocks-study.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-node': patch +--- + +To remove the dependency on the soon-to-be-deprecated `backend-common` package, this package now maintains its own isomorphic Git class implementation. diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index b8a3d98392..52a541382b 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -45,13 +45,7 @@ import { SearchResponse, UrlReader, } from './types'; -import { StaticAuthOptions, AuthCallbackOptions, Git } from './git'; - -export function isAuthCallbackOptions( - options: StaticAuthOptions | AuthCallbackOptions, -): options is AuthCallbackOptions { - return 'onAuth' in options; -} +import { Git } from './git'; const pipeline = promisify(pipelineCb); diff --git a/packages/backend-common/src/reading/git.ts b/packages/backend-common/src/reading/git.ts index ecd38d6c0c..119d4f64bd 100644 --- a/packages/backend-common/src/reading/git.ts +++ b/packages/backend-common/src/reading/git.ts @@ -18,7 +18,6 @@ import fs from 'fs-extra'; import isomorphicGit, { ProgressCallback, AuthCallback } from 'isomorphic-git'; import http from 'isomorphic-git/http/node'; import { LoggerService } from '@backstage/backend-plugin-api'; -import { isAuthCallbackOptions } from './GerritUrlReader'; /** * Configure static credential for authentication @@ -42,6 +41,12 @@ export type AuthCallbackOptions = { logger?: LoggerService; }; +function isAuthCallbackOptions( + options: StaticAuthOptions | AuthCallbackOptions, +): options is AuthCallbackOptions { + return 'onAuth' in options; +} + /* provider username password Azure 'notempty' token From 8472777e25872ba41e26568173e885af31f37539 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 11:36:24 +0200 Subject: [PATCH 087/153] Update docs/auth/github/provider.md Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Signed-off-by: Vincenzo Scamporlino --- docs/auth/github/provider.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/auth/github/provider.md b/docs/auth/github/provider.md index 4accc7841b..1604b607ff 100644 --- a/docs/auth/github/provider.md +++ b/docs/auth/github/provider.md @@ -48,7 +48,7 @@ auth: - resolver: usernameMatchingUserEntityName ``` -The GitHub provider is a structure with five configuration keys: +The GitHub provider is a structure with these configuration keys: - `clientId`: The client ID that you generated on GitHub, e.g. `b59241722e3c3b4816e2` From 32e329e23f24c9472ec9fca6b0ac4fc6ff173f5e Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 11:41:23 +0200 Subject: [PATCH 088/153] backend-app-api: add missing test Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/http/readHelmetOptions.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/http/readHelmetOptions.test.ts b/packages/backend-app-api/src/http/readHelmetOptions.test.ts index 619a4e6a17..97daef359a 100644 --- a/packages/backend-app-api/src/http/readHelmetOptions.test.ts +++ b/packages/backend-app-api/src/http/readHelmetOptions.test.ts @@ -48,6 +48,7 @@ describe('readHelmetOptions', () => { key: ['value'], 'img-src': false, scriptSrcAttr: ['custom'], + 'object-src': ['asd'], }, }); expect(readHelmetOptions(config)).toEqual({ @@ -58,7 +59,7 @@ describe('readHelmetOptions', () => { 'base-uri': ["'self'"], 'font-src': ["'self'", 'https:', 'data:'], 'frame-ancestors': ["'self'"], - 'object-src': ["'none'"], + 'object-src': ['asd'], 'script-src': ["'self'", "'unsafe-eval'"], 'style-src': ["'self'", 'https:', "'unsafe-inline'"], 'script-src-attr': ['custom'], From 2d707aa3598c51cd187076c21ab3594218a54848 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 12:20:52 +0200 Subject: [PATCH 089/153] changesets: exit pre release Signed-off-by: Vincenzo Scamporlino --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 4a813e4e19..8c72a9d481 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "next", "initialVersions": { "example-app": "0.2.96", From e5e1af521aefa977d255978428817e1e9bea4fcc Mon Sep 17 00:00:00 2001 From: JeevaRamanathan Date: Mon, 13 May 2024 15:53:17 +0530 Subject: [PATCH 090/153] updated document of github, gitlab location Signed-off-by: JeevaRamanathan --- docs/integrations/github/locations.md | 8 +++++--- docs/integrations/gitlab/locations.md | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/integrations/github/locations.md b/docs/integrations/github/locations.md index 7d3ce632d6..ae83b38e1e 100644 --- a/docs/integrations/github/locations.md +++ b/docs/integrations/github/locations.md @@ -28,9 +28,11 @@ integrations: token: ${GHE_TOKEN} ``` -> Note: A public GitHub provider is added automatically at startup for -> convenience, so you only need to list it if you want to supply a -> [token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token). +:::note Note + +A public GitHub provider is added automatically at startup for convenience, so you only need to list it if you want to supply a [token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token). + +::: Directly under the `github` key is a list of provider configurations, where you can list the various GitHub-compatible providers you want to be able to fetch diff --git a/docs/integrations/gitlab/locations.md b/docs/integrations/gitlab/locations.md index a71fc9bcba..f5995a3ac1 100644 --- a/docs/integrations/gitlab/locations.md +++ b/docs/integrations/gitlab/locations.md @@ -19,9 +19,11 @@ integrations: token: ${GITLAB_TOKEN} ``` -> Note: A public GitLab provider is added automatically at startup for -> convenience, so you only need to list it if you want to supply a -> [token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html). +:::note Note + +A public GitLab provider is added automatically at startup for convenience, so you only need to list it if you want to supply a [token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html). + +::: Directly under the `gitlab` key is a list of provider configurations, where you can list the GitLab providers you want to fetch data from. Each entry is a From 207f9624612b2b4f59dd47f9f7f483ec865de5a4 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 12:45:28 +0200 Subject: [PATCH 091/153] catalog-github: defaultNamespace to alwaysUseDefaultNamespace Signed-off-by: Vincenzo Scamporlino --- .changeset/wild-cats-hug.md | 2 +- plugins/catalog-backend-module-github-org/src/module.ts | 2 +- plugins/catalog-backend-module-github/api-report.md | 4 ++-- .../src/providers/GithubMultiOrgEntityProvider.test.ts | 4 ++-- .../src/providers/GithubMultiOrgEntityProvider.ts | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.changeset/wild-cats-hug.md b/.changeset/wild-cats-hug.md index 180bf50747..e33d399dab 100644 --- a/.changeset/wild-cats-hug.md +++ b/.changeset/wild-cats-hug.md @@ -2,6 +2,6 @@ '@backstage/plugin-catalog-backend-module-github': patch --- -Added `defaultNamespace` option to `GithubMultiOrgEntityProvider`. +Added `alwaysUseDefaultNamespace` option to `GithubMultiOrgEntityProvider`. If set to true, the provider will use `default` as the namespace for all group entities. Groups with the same name across different orgs will be considered the same group. diff --git a/plugins/catalog-backend-module-github-org/src/module.ts b/plugins/catalog-backend-module-github-org/src/module.ts index 517968c4f0..afcf2df976 100644 --- a/plugins/catalog-backend-module-github-org/src/module.ts +++ b/plugins/catalog-backend-module-github-org/src/module.ts @@ -120,7 +120,7 @@ export const catalogModuleGithubOrgEntityProvider = createBackendModule({ logger, userTransformer, teamTransformer, - defaultNamespace: + alwaysUseDefaultNamespace: definitions.length === 1 && definition.orgs?.length === 1, }), ); diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index 3c7b563593..0b68170255 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -150,7 +150,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { orgs?: string[]; userTransformer?: UserTransformer; teamTransformer?: TeamTransformer; - defaultNamespace?: boolean; + alwaysUseDefaultNamespace?: boolean; }); // (undocumented) connect(connection: EntityProviderConnection): Promise; @@ -166,7 +166,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { // @public export interface GithubMultiOrgEntityProviderOptions { - defaultNamespace?: boolean; + alwaysUseDefaultNamespace?: boolean; events?: EventsService; githubCredentialsProvider?: GithubCredentialsProvider; githubUrl: string; diff --git a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts index 87d197d4ea..c89901fcb3 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.test.ts @@ -647,7 +647,7 @@ describe('GithubMultiOrgEntityProvider', () => { }); }); - it('should use the default namespace if options.defaultNamespace is provided', async () => { + it('should use the default namespace if options.alwaysUseDefaultNamespace is provided', async () => { mockClient .mockResolvedValueOnce({ organization: { @@ -764,7 +764,7 @@ describe('GithubMultiOrgEntityProvider', () => { githubUrl: 'https://github.com', logger, orgs: ['orgA', 'orgB'], - defaultNamespace: true, + alwaysUseDefaultNamespace: true, }); await entityProvider.connect(entityProviderConnection); diff --git a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts index bac6383459..756b9902c6 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubMultiOrgEntityProvider.ts @@ -150,7 +150,7 @@ export interface GithubMultiOrgEntityProviderOptions { * * If set to true, groups with the same name across different orgs will be considered the same group. */ - defaultNamespace?: boolean; + alwaysUseDefaultNamespace?: boolean; /** * Optionally include a user transformer for transforming from GitHub users to User Entities @@ -207,7 +207,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { userTransformer: options.userTransformer, teamTransformer: options.teamTransformer, events: options.events, - defaultNamespace: options.defaultNamespace, + alwaysUseDefaultNamespace: options.alwaysUseDefaultNamespace, }); provider.schedule(options.schedule); @@ -226,7 +226,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { orgs?: string[]; userTransformer?: UserTransformer; teamTransformer?: TeamTransformer; - defaultNamespace?: boolean; + alwaysUseDefaultNamespace?: boolean; }, ) {} @@ -857,7 +857,7 @@ export class GithubMultiOrgEntityProvider implements EntityProvider { const result = await defaultOrganizationTeamTransformer(team, ctx); if (result && result.spec) { - if (!this.options.defaultNamespace) { + if (!this.options.alwaysUseDefaultNamespace) { result.metadata.namespace = ctx.org.toLocaleLowerCase('en-US'); } From 84d443db5f958dba6dfaa3e32dd59d31150daa53 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 12:54:25 +0200 Subject: [PATCH 092/153] catalog-github: use logger Signed-off-by: Vincenzo Scamporlino --- .../src/GithubOrgEntityCleanerProvider.tsx | 8 ++++++-- plugins/catalog-backend-module-github-org/src/module.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx b/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx index 386fd367c2..a00cd504d7 100644 --- a/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx +++ b/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx @@ -13,13 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { LoggerService } from '@backstage/backend-plugin-api'; import { EntityProvider, EntityProviderConnection, } from '@backstage/plugin-catalog-node'; export class GithubOrgEntityCleanerProvider implements EntityProvider { - constructor(private readonly options: { id: string }) {} + logger: LoggerService; + constructor(private readonly options: { id: string; logger: LoggerService }) { + this.logger = options.logger.child({ target: this.getProviderName() }); + } getProviderName() { return `GithubOrgEntityProvider:${this.options.id}`; @@ -32,7 +36,7 @@ export class GithubOrgEntityCleanerProvider implements EntityProvider { entities: [], }) .catch(error => { - console.error('Failed to clean up entities', error); + this.logger.error('Failed to clean up entities', error); }); } } diff --git a/plugins/catalog-backend-module-github-org/src/module.ts b/plugins/catalog-backend-module-github-org/src/module.ts index afcf2df976..31d4cef1c0 100644 --- a/plugins/catalog-backend-module-github-org/src/module.ts +++ b/plugins/catalog-backend-module-github-org/src/module.ts @@ -106,7 +106,7 @@ export const catalogModuleGithubOrgEntityProvider = createBackendModule({ for (const definition of definitions) { catalog.addEntityProvider( - new GithubOrgEntityCleanerProvider({ id: definition.id }), + new GithubOrgEntityCleanerProvider({ id: definition.id, logger }), ); catalog.addEntityProvider( GithubMultiOrgEntityProvider.fromConfig(config, { From a394b66c3eaa30c2901b0ff0911950aacc2cc0d0 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 29 Apr 2024 09:32:02 +0200 Subject: [PATCH 093/153] refator(backend-common): extract test utilities to plugin api Signed-off-by: Camila Belo --- .../backend-common/api-report-testUtils.md | 27 +++---- packages/backend-common/src/deprecated.ts | 43 ++++++++++ packages/backend-common/src/testUtils.ts | 70 ++-------------- .../api-report-testUtils.md | 26 ++++++ packages/backend-plugin-api/package.json | 4 + packages/backend-plugin-api/src/testUtils.ts | 81 +++++++++++++++++++ .../app-backend/src/service/appPlugin.test.ts | 2 +- .../src/stages/publish/local.test.ts | 2 +- 8 files changed, 173 insertions(+), 82 deletions(-) create mode 100644 packages/backend-common/src/deprecated.ts create mode 100644 packages/backend-plugin-api/api-report-testUtils.md create mode 100644 packages/backend-plugin-api/src/testUtils.ts diff --git a/packages/backend-common/api-report-testUtils.md b/packages/backend-common/api-report-testUtils.md index 9dbdade10e..d53748234e 100644 --- a/packages/backend-common/api-report-testUtils.md +++ b/packages/backend-common/api-report-testUtils.md @@ -3,24 +3,19 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -// @public -export function overridePackagePathResolution( - options: OverridePackagePathResolutionOptions, -): PackagePathResolutionOverride; +import { overridePackagePathResolution as overridePackagePathResolution_2 } from '@backstage/backend-plugin-api/testUtils'; +import { OverridePackagePathResolutionOptions as OverridePackagePathResolutionOptions_2 } from '@backstage/backend-plugin-api/testUtils'; +import { PackagePathResolutionOverride as PackagePathResolutionOverride_2 } from '@backstage/backend-plugin-api/testUtils'; -// @public (undocumented) -export interface OverridePackagePathResolutionOptions { - packageName: string; - path?: string; - paths?: { - [path in string]: string | (() => string); - }; -} +// @public @deprecated (undocumented) +export const overridePackagePathResolution: typeof overridePackagePathResolution_2; -// @public (undocumented) -export interface PackagePathResolutionOverride { - restore(): void; -} +// @public @deprecated (undocumented) +export type OverridePackagePathResolutionOptions = + OverridePackagePathResolutionOptions_2; + +// @public @deprecated (undocumented) +export type PackagePathResolutionOverride = PackagePathResolutionOverride_2; // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-common/src/deprecated.ts b/packages/backend-common/src/deprecated.ts new file mode 100644 index 0000000000..397d97f20e --- /dev/null +++ b/packages/backend-common/src/deprecated.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 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 { + overridePackagePathResolution as _overridePackagePathResolution, + OverridePackagePathResolutionOptions as _OverridePackagePathResolutionOptions, + PackagePathResolutionOverride as _PackagePathResolutionOverride, +} from '@backstage/backend-plugin-api/testUtils'; + +/** + * @public + * @deprecated This function is deprecated and will be removed in future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `overridePackagePathResolution` function from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export const overridePackagePathResolution = _overridePackagePathResolution; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `OverridePackagePathResolutionOptions` type from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export type OverridePackagePathResolutionOptions = + _OverridePackagePathResolutionOptions; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `PackagePathResolutionOverride` type from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export type PackagePathResolutionOverride = _PackagePathResolutionOverride; diff --git a/packages/backend-common/src/testUtils.ts b/packages/backend-common/src/testUtils.ts index 9616ab1701..bae633428f 100644 --- a/packages/backend-common/src/testUtils.ts +++ b/packages/backend-common/src/testUtils.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Backstage Authors + * Copyright 2024 The Backstage Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,66 +14,8 @@ * limitations under the License. */ -import { packagePathMocks } from './paths'; -import { posix as posixPath, resolve as resolvePath } from 'path'; - -/** @public */ -export interface PackagePathResolutionOverride { - /** Restores the normal behavior of resolvePackagePath */ - restore(): void; -} - -/** @public */ -export interface OverridePackagePathResolutionOptions { - /** The name of the package to mock the resolved path of */ - packageName: string; - - /** A replacement for the root package path */ - path?: string; - - /** - * Replacements for package sub-paths, each key must be an exact match of the posix-style path - * that is being resolved within the package. - * - * For example, code calling `resolvePackagePath('x', 'foo', 'bar')` would match only the following - * configuration: `overridePackagePathResolution({ packageName: 'x', paths: { 'foo/bar': baz } })` - */ - paths?: { [path in string]: string | (() => string) }; -} - -/** - * This utility helps you override the paths returned by `resolvePackagePath` for a given package. - * - * @public - */ -export function overridePackagePathResolution( - options: OverridePackagePathResolutionOptions, -): PackagePathResolutionOverride { - const name = options.packageName; - - if (packagePathMocks.has(name)) { - throw new Error( - `Tried to override resolution for '${name}' more than once for package '${name}'`, - ); - } - - packagePathMocks.set(name, paths => { - const joinedPath = posixPath.join(...paths); - const localResolver = options.paths?.[joinedPath]; - if (localResolver) { - return typeof localResolver === 'function' - ? localResolver() - : localResolver; - } - if (options.path) { - return resolvePath(options.path, ...paths); - } - return undefined; - }); - - return { - restore() { - packagePathMocks.delete(name); - }, - }; -} +export { + overridePackagePathResolution, + type OverridePackagePathResolutionOptions, + type PackagePathResolutionOverride, +} from './deprecated'; diff --git a/packages/backend-plugin-api/api-report-testUtils.md b/packages/backend-plugin-api/api-report-testUtils.md new file mode 100644 index 0000000000..8c9bba8398 --- /dev/null +++ b/packages/backend-plugin-api/api-report-testUtils.md @@ -0,0 +1,26 @@ +## API Report File for "@backstage/backend-plugin-api" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +// @public +export function overridePackagePathResolution( + options: OverridePackagePathResolutionOptions, +): PackagePathResolutionOverride; + +// @public (undocumented) +export interface OverridePackagePathResolutionOptions { + packageName: string; + path?: string; + paths?: { + [path in string]: string | (() => string); + }; +} + +// @public (undocumented) +export interface PackagePathResolutionOverride { + restore(): void; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index fff99c0370..c83ef854b8 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -21,6 +21,7 @@ "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", + "./testUtils": "./src/testUtils.ts", "./package.json": "./package.json" }, "main": "src/index.ts", @@ -30,6 +31,9 @@ "alpha": [ "src/alpha.ts" ], + "testUtils": [ + "src/testUtils.ts" + ], "package.json": [ "package.json" ] diff --git a/packages/backend-plugin-api/src/testUtils.ts b/packages/backend-plugin-api/src/testUtils.ts new file mode 100644 index 0000000000..a04cae4c25 --- /dev/null +++ b/packages/backend-plugin-api/src/testUtils.ts @@ -0,0 +1,81 @@ +/* + * 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. + */ + +// TODO: Remove this relative import when extrating the path utilities to this package +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { packagePathMocks } from '../../backend-common/src/paths'; +import { posix as posixPath, resolve as resolvePath } from 'path'; + +/** @public */ +export interface PackagePathResolutionOverride { + /** Restores the normal behavior of resolvePackagePath */ + restore(): void; +} + +/** @public */ +export interface OverridePackagePathResolutionOptions { + /** The name of the package to mock the resolved path of */ + packageName: string; + + /** A replacement for the root package path */ + path?: string; + + /** + * Replacements for package sub-paths, each key must be an exact match of the posix-style path + * that is being resolved within the package. + * + * For example, code calling `resolvePackagePath('x', 'foo', 'bar')` would match only the following + * configuration: `overridePackagePathResolution({ packageName: 'x', paths: { 'foo/bar': baz } })` + */ + paths?: { [path in string]: string | (() => string) }; +} + +/** + * This utility helps you override the paths returned by `resolvePackagePath` for a given package. + * + * @public + */ +export function overridePackagePathResolution( + options: OverridePackagePathResolutionOptions, +): PackagePathResolutionOverride { + const name = options.packageName; + + if (packagePathMocks.has(name)) { + throw new Error( + `Tried to override resolution for '${name}' more than once for package '${name}'`, + ); + } + + packagePathMocks.set(name, paths => { + const joinedPath = posixPath.join(...paths); + const localResolver = options.paths?.[joinedPath]; + if (localResolver) { + return typeof localResolver === 'function' + ? localResolver() + : localResolver; + } + if (options.path) { + return resolvePath(options.path, ...paths); + } + return undefined; + }); + + return { + restore() { + packagePathMocks.delete(name); + }, + }; +} diff --git a/plugins/app-backend/src/service/appPlugin.test.ts b/plugins/app-backend/src/service/appPlugin.test.ts index 647697c204..c239d476bd 100644 --- a/plugins/app-backend/src/service/appPlugin.test.ts +++ b/plugins/app-backend/src/service/appPlugin.test.ts @@ -22,7 +22,7 @@ import { } from '@backstage/backend-test-utils'; import { appPlugin } from './appPlugin'; import { createRootLogger } from '@backstage/backend-common'; -import { overridePackagePathResolution } from '@backstage/backend-common/testUtils'; +import { overridePackagePathResolution } from '@backstage/backend-plugin-api/testUtils'; const mockDir = createMockDirectory(); overridePackagePathResolution({ diff --git a/plugins/techdocs-node/src/stages/publish/local.test.ts b/plugins/techdocs-node/src/stages/publish/local.test.ts index 4019f80d11..89a38c7ed2 100644 --- a/plugins/techdocs-node/src/stages/publish/local.test.ts +++ b/plugins/techdocs-node/src/stages/publish/local.test.ts @@ -17,7 +17,7 @@ import { getVoidLogger, PluginEndpointDiscovery, } from '@backstage/backend-common'; -import { overridePackagePathResolution } from '@backstage/backend-common/testUtils'; +import { overridePackagePathResolution } from '@backstage/backend-plugin-api/testUtils'; import { ConfigReader } from '@backstage/config'; import express from 'express'; import request from 'supertest'; From d229dc49adbb3059153e14cf312a4889c8a4c66e Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Tue, 30 Apr 2024 14:03:56 +0200 Subject: [PATCH 094/153] refator(backend-common): extract path utilities to plugin api Signed-off-by: Camila Belo --- .changeset/funny-cars-jump.md | 24 ++++++++++ .../implementations/auth/DatabaseKeyStore.ts | 7 ++- packages/backend-common/src/deprecated.ts | 27 ++++++++++++ packages/backend-common/src/index.ts | 6 ++- .../src/reading/tree/ZipArchiveResponse.ts | 2 +- .../src/schemas/appBackendModule.ts | 2 +- packages/backend-plugin-api/package.json | 3 ++ packages/backend-plugin-api/src/index.ts | 1 + .../src/paths.test.ts | 0 .../src/paths.ts | 0 packages/backend-plugin-api/src/testUtils.ts | 2 +- .../src/database/migrateBackendTasks.ts | 2 +- .../src/filesystem/MockDirectory.ts | 2 +- packages/repo-tools/package.json | 44 +++++++++---------- .../package/schema/openapi/generate/client.ts | 2 +- .../src/lib/assets/StaticAssetsStore.ts | 10 ++--- .../src/lib/assets/findStaticAssets.ts | 2 +- plugins/app-backend/src/service/router.ts | 2 +- .../auth-backend/src/database/AuthDatabase.ts | 2 +- .../src/database/migrations.ts | 2 +- .../src/database/migrations.ts | 2 +- .../database/DatabaseNotificationsStore.ts | 6 +-- .../src/actions/fetch/cookiecutter.ts | 7 +-- .../src/actions/githubPullRequest.ts | 6 ++- .../src/actions/gitlabMergeRequest.ts | 2 +- .../src/actions/gitlabRepoPush.ts | 2 +- .../src/lib/templating/SecureTemplater.ts | 2 +- .../actions/builtin/catalog/write.ts | 2 +- .../scaffolder/actions/builtin/fetch/plain.ts | 3 +- .../actions/builtin/fetch/plainFile.ts | 3 +- .../builtin/fetch/template.examples.test.ts | 3 +- .../actions/builtin/fetch/template.test.ts | 3 +- .../actions/builtin/fetch/template.ts | 3 +- .../actions/builtin/filesystem/delete.ts | 2 +- .../actions/builtin/filesystem/rename.ts | 2 +- .../src/scaffolder/dryrun/createDryRunner.ts | 6 ++- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 6 +-- plugins/scaffolder-node/src/actions/fetch.ts | 3 +- plugins/scaffolder-node/src/actions/util.ts | 2 +- .../src/files/deserializeDirectoryContents.ts | 2 +- .../src/files/serializeDirectoryContents.ts | 2 +- .../src/database/DatabaseDocumentStore.ts | 6 +-- plugins/techdocs-node/src/helpers.ts | 3 +- .../src/stages/generate/helpers.ts | 2 +- .../techdocs-node/src/stages/publish/local.ts | 4 +- .../src/database/DatabaseUserSettingsStore.ts | 6 +-- yarn.lock | 5 ++- 47 files changed, 151 insertions(+), 86 deletions(-) create mode 100644 .changeset/funny-cars-jump.md rename packages/{backend-common => backend-plugin-api}/src/paths.test.ts (100%) rename packages/{backend-common => backend-plugin-api}/src/paths.ts (100%) diff --git a/.changeset/funny-cars-jump.md b/.changeset/funny-cars-jump.md new file mode 100644 index 0000000000..cbaf01c7d0 --- /dev/null +++ b/.changeset/funny-cars-jump.md @@ -0,0 +1,24 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/backend-dynamic-feature-service': patch +'@backstage/plugin-scaffolder-backend-module-github': patch +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +'@backstage/plugin-search-backend-module-pg': patch +'@backstage/plugin-notifications-backend': patch +'@backstage/plugin-user-settings-backend': patch +'@backstage/backend-plugin-api': patch +'@backstage/backend-test-utils': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/backend-app-api': patch +'@backstage/backend-common': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-scaffolder-node': patch +'@backstage/backend-tasks': patch +'@backstage/plugin-techdocs-node': patch +'@backstage/plugin-auth-backend': patch +'@backstage/repo-tools': patch +'@backstage/plugin-app-backend': patch +--- + +Extract path utilities from `backend-common` to the `backend-plugin-api` package. diff --git a/packages/backend-app-api/src/services/implementations/auth/DatabaseKeyStore.ts b/packages/backend-app-api/src/services/implementations/auth/DatabaseKeyStore.ts index 6a1536fd18..5bf9244707 100644 --- a/packages/backend-app-api/src/services/implementations/auth/DatabaseKeyStore.ts +++ b/packages/backend-app-api/src/services/implementations/auth/DatabaseKeyStore.ts @@ -14,11 +14,14 @@ * limitations under the License. */ -import { DatabaseService, LoggerService } from '@backstage/backend-plugin-api'; +import { + DatabaseService, + LoggerService, + resolvePackagePath, +} from '@backstage/backend-plugin-api'; import { DateTime } from 'luxon'; import { Knex } from 'knex'; import { JsonObject } from '@backstage/types'; -import { resolvePackagePath } from '@backstage/backend-common'; import { KeyStore } from './types'; const MIGRATIONS_TABLE = 'backstage_backend_public_keys__knex_migrations'; diff --git a/packages/backend-common/src/deprecated.ts b/packages/backend-common/src/deprecated.ts index 397d97f20e..cee15aadb6 100644 --- a/packages/backend-common/src/deprecated.ts +++ b/packages/backend-common/src/deprecated.ts @@ -14,6 +14,12 @@ * limitations under the License. */ +import { + resolvePackagePath as _resolvePackagePath, + resolveSafeChildPath as _resolveSafeChildPath, + isChildPath as _isChildPath, +} from '@backstage/backend-plugin-api'; + import { overridePackagePathResolution as _overridePackagePathResolution, OverridePackagePathResolutionOptions as _OverridePackagePathResolutionOptions, @@ -41,3 +47,24 @@ export type OverridePackagePathResolutionOptions = * Please use the `PackagePathResolutionOverride` type from the `@backstage/backend-plugin-api/testUtils` package instead. */ export type PackagePathResolutionOverride = _PackagePathResolutionOverride; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `resolvePackagePath` function from the `@backstage/backend-plugin-api` package instead. + */ +export const resolvePackagePath = _resolvePackagePath; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see + * Please use the `resolveSafeChildPath` function from the `@backstage/backend-plugin-api` package instead. + */ +export const resolveSafeChildPath = _resolveSafeChildPath; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see + * Please use the `isChildPath` function from the `@backstage/cli-common` package instead. + */ +export const isChildPath = _isChildPath; diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index 4b1314b7d2..1d01410408 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -25,12 +25,16 @@ export type { LegacyCreateRouter } from './legacy'; export * from './auth'; export * from './cache'; export { loadBackendConfig } from './config'; +export { + resolvePackagePath, + resolveSafeChildPath, + isChildPath, +} from './deprecated'; export * from './database'; export * from './discovery'; export * from './hot'; export * from './logging'; export * from './middleware'; -export * from './paths'; export * from './reading'; export * from './scm'; export * from './service'; diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts index a191163517..412819c5b9 100644 --- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts @@ -25,7 +25,7 @@ import { ReadTreeResponseFile, } from '../types'; import { streamToBuffer } from './util'; -import { resolveSafeChildPath } from '../../paths'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; /** * Wraps a zip archive stream into a tree response reader. diff --git a/packages/backend-dynamic-feature-service/src/schemas/appBackendModule.ts b/packages/backend-dynamic-feature-service/src/schemas/appBackendModule.ts index b44913edfd..6e54379e90 100644 --- a/packages/backend-dynamic-feature-service/src/schemas/appBackendModule.ts +++ b/packages/backend-dynamic-feature-service/src/schemas/appBackendModule.ts @@ -17,13 +17,13 @@ import { coreServices, createBackendModule, + resolvePackagePath, } from '@backstage/backend-plugin-api'; import { dynamicPluginsSchemasServiceRef } from './schemas'; import { configSchemaExtensionPoint, loadCompiledConfigSchema, } from '@backstage/plugin-app-node'; -import { resolvePackagePath } from '@backstage/backend-common'; /** @public */ export const dynamicPluginsFrontendSchemas = createBackendModule({ diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index c83ef854b8..ca954e4c56 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -53,7 +53,9 @@ }, "dependencies": { "@backstage/backend-tasks": "workspace:^", + "@backstage/cli-common": "workspace:^", "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/types": "workspace:^", @@ -62,6 +64,7 @@ "knex": "^3.0.0" }, "devDependencies": { + "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^" } } diff --git a/packages/backend-plugin-api/src/index.ts b/packages/backend-plugin-api/src/index.ts index 8e0b23d20b..c2e2a13a89 100644 --- a/packages/backend-plugin-api/src/index.ts +++ b/packages/backend-plugin-api/src/index.ts @@ -22,4 +22,5 @@ export * from './services'; export type { BackendFeature } from './types'; +export * from './paths'; export * from './wiring'; diff --git a/packages/backend-common/src/paths.test.ts b/packages/backend-plugin-api/src/paths.test.ts similarity index 100% rename from packages/backend-common/src/paths.test.ts rename to packages/backend-plugin-api/src/paths.test.ts diff --git a/packages/backend-common/src/paths.ts b/packages/backend-plugin-api/src/paths.ts similarity index 100% rename from packages/backend-common/src/paths.ts rename to packages/backend-plugin-api/src/paths.ts diff --git a/packages/backend-plugin-api/src/testUtils.ts b/packages/backend-plugin-api/src/testUtils.ts index a04cae4c25..ba09145bf0 100644 --- a/packages/backend-plugin-api/src/testUtils.ts +++ b/packages/backend-plugin-api/src/testUtils.ts @@ -16,7 +16,7 @@ // TODO: Remove this relative import when extrating the path utilities to this package // eslint-disable-next-line @backstage/no-relative-monorepo-imports -import { packagePathMocks } from '../../backend-common/src/paths'; +import { packagePathMocks } from './paths'; import { posix as posixPath, resolve as resolvePath } from 'path'; /** @public */ diff --git a/packages/backend-tasks/src/database/migrateBackendTasks.ts b/packages/backend-tasks/src/database/migrateBackendTasks.ts index 9530668e3e..ae5048fbf7 100644 --- a/packages/backend-tasks/src/database/migrateBackendTasks.ts +++ b/packages/backend-tasks/src/database/migrateBackendTasks.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; import { DB_MIGRATIONS_TABLE } from './tables'; diff --git a/packages/backend-test-utils/src/filesystem/MockDirectory.ts b/packages/backend-test-utils/src/filesystem/MockDirectory.ts index fff8a35a06..1c10c77fc6 100644 --- a/packages/backend-test-utils/src/filesystem/MockDirectory.ts +++ b/packages/backend-test-utils/src/filesystem/MockDirectory.ts @@ -15,7 +15,7 @@ */ import os from 'os'; -import { isChildPath } from '@backstage/backend-common'; +import { isChildPath } from '@backstage/backend-plugin-api'; import fs from 'fs-extra'; import textextensions from 'textextensions'; import { diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 14a2cbca1d..41492f2366 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -8,31 +8,42 @@ "backstage": { "role": "cli" }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "packages/repo-tools" }, - "keywords": [ - "backstage" - ], "license": "Apache-2.0", "main": "dist/index.cjs.js", - "scripts": { - "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", - "clean": "backstage-cli package clean", - "start": "nodemon --" - }, "bin": { "backstage-repo-tools": "bin/backstage-repo-tools" }, + "files": [ + "bin", + "dist/**/*.js", + "templates", + "openapitools.json" + ], + "scripts": { + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", + "start": "nodemon --", + "test": "backstage-cli package test" + }, + "nodemonConfig": { + "exec": "bin/backstage-repo-tools", + "ext": "ts", + "watch": "./src" + }, "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", "@apisyouwonthate/style-guide": "^1.4.0", - "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/cli-common": "workspace:^", "@backstage/cli-node": "workspace:^", @@ -84,16 +95,5 @@ "prettier": { "optional": true } - }, - "files": [ - "bin", - "dist/**/*.js", - "templates", - "openapitools.json" - ], - "nodemonConfig": { - "watch": "./src", - "exec": "bin/backstage-repo-tools", - "ext": "ts" } } diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts index 5dfed05f93..6963e02664 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts @@ -24,7 +24,7 @@ import { paths as cliPaths } from '../../../../../lib/paths'; import { mkdirpSync } from 'fs-extra'; import fs from 'fs-extra'; import { exec } from '../../../../../lib/exec'; -import { resolvePackagePath } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { getPathToCurrentOpenApiSpec } from '../../../../../lib/openapi/helpers'; async function generate(outputDirectory: string) { diff --git a/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts b/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts index 05d6424013..1179a11ef3 100644 --- a/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts +++ b/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts @@ -14,15 +14,15 @@ * limitations under the License. */ -import { - PluginDatabaseManager, - resolvePackagePath, -} from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; import { Knex } from 'knex'; import { DateTime } from 'luxon'; import partition from 'lodash/partition'; import { StaticAsset, StaticAssetInput, StaticAssetProvider } from './types'; -import { LoggerService } from '@backstage/backend-plugin-api'; +import { + LoggerService, + resolvePackagePath, +} from '@backstage/backend-plugin-api'; const migrationsDir = resolvePackagePath( '@backstage/plugin-app-backend', diff --git a/plugins/app-backend/src/lib/assets/findStaticAssets.ts b/plugins/app-backend/src/lib/assets/findStaticAssets.ts index 7ecea7146e..c8731bfc93 100644 --- a/plugins/app-backend/src/lib/assets/findStaticAssets.ts +++ b/plugins/app-backend/src/lib/assets/findStaticAssets.ts @@ -17,7 +17,7 @@ import fs from 'fs-extra'; import globby from 'globby'; import { StaticAssetInput } from './types'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; /** * Finds all static assets within a directory diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index af88f0d9da..f1fb20a4b5 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -17,8 +17,8 @@ import { notFoundHandler, PluginDatabaseManager, - resolvePackagePath, } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { AppConfig, Config } from '@backstage/config'; import helmet from 'helmet'; import express from 'express'; diff --git a/plugins/auth-backend/src/database/AuthDatabase.ts b/plugins/auth-backend/src/database/AuthDatabase.ts index 97e4236754..ec4d2034e7 100644 --- a/plugins/auth-backend/src/database/AuthDatabase.ts +++ b/plugins/auth-backend/src/database/AuthDatabase.ts @@ -17,8 +17,8 @@ import { DatabaseManager, PluginDatabaseManager, - resolvePackagePath, } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; import { Knex } from 'knex'; diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/migrations.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/migrations.ts index 940a82107b..08c581e77a 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/database/migrations.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/migrations.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; import { DB_MIGRATIONS_TABLE } from './tables'; diff --git a/plugins/catalog-backend/src/database/migrations.ts b/plugins/catalog-backend/src/database/migrations.ts index ed3a7751b5..5139c74930 100644 --- a/plugins/catalog-backend/src/database/migrations.ts +++ b/plugins/catalog-backend/src/database/migrations.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; export async function applyDatabaseMigrations(knex: Knex): Promise { diff --git a/plugins/notifications-backend/src/database/DatabaseNotificationsStore.ts b/plugins/notifications-backend/src/database/DatabaseNotificationsStore.ts index ae548a9892..f4bd25d1ba 100644 --- a/plugins/notifications-backend/src/database/DatabaseNotificationsStore.ts +++ b/plugins/notifications-backend/src/database/DatabaseNotificationsStore.ts @@ -13,10 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - PluginDatabaseManager, - resolvePackagePath, -} from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { NotificationGetOptions, NotificationModifyOptions, diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts index 1a49ab0855..d170acb5d0 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts @@ -14,11 +14,8 @@ * limitations under the License. */ -import { - ContainerRunner, - UrlReader, - resolveSafeChildPath, -} from '@backstage/backend-common'; +import { ContainerRunner, UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { JsonObject, JsonValue } from '@backstage/types'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts index a72ec8345b..5efcc6e0bb 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubPullRequest.ts @@ -27,11 +27,13 @@ import { } from '@backstage/plugin-scaffolder-node'; import { Octokit } from 'octokit'; import { CustomErrorBase, InputError } from '@backstage/errors'; -import { resolveSafeChildPath } from '@backstage/backend-common'; import { createPullRequest } from 'octokit-plugin-create-pull-request'; import { getOctokitOptions } from './helpers'; import { examples } from './githubPullRequest.examples'; -import { LoggerService } from '@backstage/backend-plugin-api'; +import { + LoggerService, + resolveSafeChildPath, +} from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; export type Encoding = 'utf-8' | 'base64'; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts index c9b8ce68a9..a549585426 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts @@ -23,7 +23,7 @@ import { Types } from '@gitbeaker/core'; import path from 'path'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { InputError } from '@backstage/errors'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { createGitlabApi } from './helpers'; import { examples } from './gitlabMergeRequest.examples'; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts index aae3b05c49..c926fe2971 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts @@ -23,7 +23,7 @@ import { Types } from '@gitbeaker/core'; import path from 'path'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { InputError } from '@backstage/errors'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { createGitlabApi } from './helpers'; import { examples } from './gitlabRepoPush.examples'; diff --git a/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts b/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts index 14a58e4975..6860902c78 100644 --- a/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts +++ b/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts @@ -15,7 +15,7 @@ */ import { Isolate } from 'isolated-vm'; -import { resolvePackagePath } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { TemplateFilter as _TemplateFilter, TemplateGlobal as _TemplateGlobal, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts index 27c39dd098..9feaa14c07 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts @@ -17,7 +17,7 @@ import fs from 'fs-extra'; import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import * as yaml from 'yaml'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { z } from 'zod'; import { examples } from './write.examples'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts index 8bca630af9..c6beaa2d67 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { UrlReader, resolveSafeChildPath } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; import { examples } from './plain.examples'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plainFile.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plainFile.ts index da0255ff5a..92db7aa3ed 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plainFile.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plainFile.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { UrlReader, resolveSafeChildPath } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; import { examples } from './plainFile.examples'; import { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.examples.test.ts index 36f1f00b50..02fe0c30a4 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.examples.test.ts @@ -16,7 +16,8 @@ import { join as joinPath, sep as pathSep } from 'path'; import fs from 'fs-extra'; -import { resolvePackagePath, UrlReader } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils'; import { createFetchTemplateAction } from './template'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts index fd0ef7d757..0542b6a50d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts @@ -21,7 +21,8 @@ jest.mock('@backstage/plugin-scaffolder-node', () => { import { join as joinPath, sep as pathSep } from 'path'; import fs from 'fs-extra'; -import { resolvePackagePath, UrlReader } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; import { createFetchTemplateAction } from './template'; import { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts index b39582e18b..0983199339 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts @@ -15,7 +15,8 @@ */ import { extname } from 'path'; -import { resolveSafeChildPath, UrlReader } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; import { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts index 5787d245ab..13dfc69525 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts @@ -16,7 +16,7 @@ import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import { InputError } from '@backstage/errors'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import fs from 'fs-extra'; import { examples } from './delete.examples'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts index 5d9d666d15..238fc9e8c0 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts @@ -15,7 +15,7 @@ */ import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { InputError } from '@backstage/errors'; import fs from 'fs-extra'; import { examples } from './rename.examples'; diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts index 2eaa505c8c..6b8caf5a3d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts @@ -33,9 +33,11 @@ import { TemplateActionRegistry } from '../actions'; import { NunjucksWorkflowRunner } from '../tasks/NunjucksWorkflowRunner'; import { DecoratedActionsRegistry } from './DecoratedActionsRegistry'; import fs from 'fs-extra'; -import { resolveSafeChildPath } from '@backstage/backend-common'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; -import { BackstageCredentials } from '@backstage/backend-plugin-api'; +import { + BackstageCredentials, + resolveSafeChildPath, +} from '@backstage/backend-plugin-api'; interface DryRunInput { spec: TaskSpec; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index f6f00b0441..9c95c11017 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -15,10 +15,8 @@ */ import { JsonObject } from '@backstage/types'; -import { - PluginDatabaseManager, - resolvePackagePath, -} from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { ConflictError, NotFoundError } from '@backstage/errors'; import { Knex } from 'knex'; import { v4 as uuid } from 'uuid'; diff --git a/plugins/scaffolder-node/src/actions/fetch.ts b/plugins/scaffolder-node/src/actions/fetch.ts index 6b3e08bc7e..63bc4b1352 100644 --- a/plugins/scaffolder-node/src/actions/fetch.ts +++ b/plugins/scaffolder-node/src/actions/fetch.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { resolveSafeChildPath, UrlReader } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { InputError } from '@backstage/errors'; import { ScmIntegrations } from '@backstage/integration'; import fs from 'fs-extra'; diff --git a/plugins/scaffolder-node/src/actions/util.ts b/plugins/scaffolder-node/src/actions/util.ts index 7f7121ef16..2b3a1296bf 100644 --- a/plugins/scaffolder-node/src/actions/util.ts +++ b/plugins/scaffolder-node/src/actions/util.ts @@ -15,7 +15,7 @@ */ import { InputError } from '@backstage/errors'; -import { isChildPath } from '@backstage/backend-common'; +import { isChildPath } from '@backstage/backend-plugin-api'; import { join as joinPath, normalize as normalizePath } from 'path'; import { ScmIntegrationRegistry } from '@backstage/integration'; diff --git a/plugins/scaffolder-node/src/files/deserializeDirectoryContents.ts b/plugins/scaffolder-node/src/files/deserializeDirectoryContents.ts index bdcecd99f1..4c6ae251ee 100644 --- a/plugins/scaffolder-node/src/files/deserializeDirectoryContents.ts +++ b/plugins/scaffolder-node/src/files/deserializeDirectoryContents.ts @@ -16,7 +16,7 @@ import fs from 'fs-extra'; import { dirname } from 'path'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { SerializedFile } from './types'; /** diff --git a/plugins/scaffolder-node/src/files/serializeDirectoryContents.ts b/plugins/scaffolder-node/src/files/serializeDirectoryContents.ts index 7e52f6323b..1b83a8cf32 100644 --- a/plugins/scaffolder-node/src/files/serializeDirectoryContents.ts +++ b/plugins/scaffolder-node/src/files/serializeDirectoryContents.ts @@ -17,7 +17,7 @@ import { promises as fs } from 'fs'; import globby from 'globby'; import limiterFactory from 'p-limit'; -import { resolveSafeChildPath } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { SerializedFile } from './types'; import { isError } from '@backstage/errors'; diff --git a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts index 3019c63a64..88ba7072dd 100644 --- a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts +++ b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts @@ -13,10 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - PluginDatabaseManager, - resolvePackagePath, -} from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { IndexableDocument } from '@backstage/plugin-search-common'; import { Knex } from 'knex'; import { diff --git a/plugins/techdocs-node/src/helpers.ts b/plugins/techdocs-node/src/helpers.ts index 39a1f4c666..c293d16896 100644 --- a/plugins/techdocs-node/src/helpers.ts +++ b/plugins/techdocs-node/src/helpers.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { resolveSafeChildPath, UrlReader } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import { Entity, getEntitySourceLocation, diff --git a/plugins/techdocs-node/src/stages/generate/helpers.ts b/plugins/techdocs-node/src/stages/generate/helpers.ts index 1450a4afba..df1a31470d 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { isChildPath } from '@backstage/backend-common'; +import { isChildPath } from '@backstage/backend-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { assertError, ForwardedError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; diff --git a/plugins/techdocs-node/src/stages/publish/local.ts b/plugins/techdocs-node/src/stages/publish/local.ts index 1a02cb7eee..37f41080b4 100644 --- a/plugins/techdocs-node/src/stages/publish/local.ts +++ b/plugins/techdocs-node/src/stages/publish/local.ts @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { - PluginEndpointDiscovery, resolvePackagePath, resolveSafeChildPath, -} from '@backstage/backend-common'; +} from '@backstage/backend-plugin-api'; import { Entity, CompoundEntityRef, diff --git a/plugins/user-settings-backend/src/database/DatabaseUserSettingsStore.ts b/plugins/user-settings-backend/src/database/DatabaseUserSettingsStore.ts index b0fe8fdecc..99c4b2cff4 100644 --- a/plugins/user-settings-backend/src/database/DatabaseUserSettingsStore.ts +++ b/plugins/user-settings-backend/src/database/DatabaseUserSettingsStore.ts @@ -14,10 +14,8 @@ * limitations under the License. */ -import { - PluginDatabaseManager, - resolvePackagePath, -} from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { NotFoundError } from '@backstage/errors'; import { JsonValue } from '@backstage/types'; import { Knex } from 'knex'; diff --git a/yarn.lock b/yarn.lock index 9c9a730679..53cf1fef48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3506,8 +3506,11 @@ __metadata: resolution: "@backstage/backend-plugin-api@workspace:packages/backend-plugin-api" dependencies: "@backstage/backend-tasks": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" + "@backstage/cli-common": "workspace:^" "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" "@backstage/types": "workspace:^" @@ -7669,7 +7672,7 @@ __metadata: dependencies: "@apidevtools/swagger-parser": ^10.1.0 "@apisyouwonthate/style-guide": ^1.4.0 - "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" From 01dfcf5742a245ea093645843ccf0c2d0bf36a0f Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Thu, 2 May 2024 15:58:45 +0200 Subject: [PATCH 095/153] docs: update api-reports Signed-off-by: Camila Belo --- packages/backend-common/api-report.md | 15 +++++++++------ packages/backend-plugin-api/api-report.md | 9 +++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index cccf326b9f..56debad5e2 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -34,7 +34,7 @@ import { HarnessIntegration } from '@backstage/integration'; import { HostDiscovery as HostDiscovery_2 } from '@backstage/backend-app-api'; import { HttpAuthService } from '@backstage/backend-plugin-api'; import { IdentityService } from '@backstage/backend-plugin-api'; -import { isChildPath } from '@backstage/cli-common'; +import { isChildPath as isChildPath_2 } from '@backstage/backend-plugin-api'; import { KubeConfig } from '@kubernetes/client-node'; import { LifecycleService } from '@backstage/backend-plugin-api'; import { LoadConfigOptionsRemote } from '@backstage/config-loader'; @@ -55,6 +55,8 @@ import { ReadTreeResponseFile } from '@backstage/backend-plugin-api'; import { ReadUrlOptions } from '@backstage/backend-plugin-api'; import { ReadUrlResponse } from '@backstage/backend-plugin-api'; import { RequestHandler } from 'express'; +import { resolvePackagePath as resolvePackagePath_2 } from '@backstage/backend-plugin-api'; +import { resolveSafeChildPath as resolveSafeChildPath_2 } from '@backstage/backend-plugin-api'; import { RootConfigService } from '@backstage/backend-plugin-api'; import { Router } from 'express'; import { SchedulerService } from '@backstage/backend-plugin-api'; @@ -533,7 +535,8 @@ export class HarnessUrlReader implements UrlReader { // @public export const HostDiscovery: typeof HostDiscovery_2; -export { isChildPath }; +// @public @deprecated (undocumented) +export const isChildPath: typeof isChildPath_2; // @public export function isDatabaseConflictError(e: unknown): boolean; @@ -738,11 +741,11 @@ export type RequestLoggingHandlerFactory = ( logger?: LoggerService, ) => RequestHandler; -// @public -export function resolvePackagePath(name: string, ...paths: string[]): string; +// @public @deprecated (undocumented) +export const resolvePackagePath: typeof resolvePackagePath_2; -// @public -export function resolveSafeChildPath(base: string, path: string): string; +// @public @deprecated (undocumented) +export const resolveSafeChildPath: typeof resolveSafeChildPath_2; // @public export type RunContainerOptions = { diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index b04c7bc20b..932ccc74ab 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -10,6 +10,7 @@ import { AuthorizePermissionResponse } from '@backstage/plugin-permission-common import { Config } from '@backstage/config'; import { Handler } from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; +import { isChildPath } from '@backstage/cli-common'; import { JsonObject } from '@backstage/types'; import { JsonValue } from '@backstage/types'; import { Knex } from 'knex'; @@ -351,6 +352,8 @@ export interface HttpRouterServiceAuthPolicy { // @public (undocumented) export interface IdentityService extends IdentityApi {} +export { isChildPath }; + // @public (undocumented) export interface LifecycleService { addShutdownHook( @@ -496,6 +499,12 @@ export type ReadUrlResponse = { lastModifiedAt?: Date; }; +// @public +export function resolvePackagePath(name: string, ...paths: string[]): string; + +// @public +export function resolveSafeChildPath(base: string, path: string): string; + // @public (undocumented) export interface RootConfigService extends Config {} From f09848a2ef645c2977a2bfe2a45f445505a336f3 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 13 May 2024 14:17:43 +0200 Subject: [PATCH 096/153] Update .changeset/funny-cars-jump.md Co-authored-by: Patrik Oldsberg Signed-off-by: Camila Belo --- .changeset/funny-cars-jump.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/funny-cars-jump.md b/.changeset/funny-cars-jump.md index cbaf01c7d0..c67204d68c 100644 --- a/.changeset/funny-cars-jump.md +++ b/.changeset/funny-cars-jump.md @@ -21,4 +21,4 @@ '@backstage/plugin-app-backend': patch --- -Extract path utilities from `backend-common` to the `backend-plugin-api` package. +Move path utilities from `backend-common` to the `backend-plugin-api` package. From 009da479d54861114771c6279738cf6313f91878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Mon, 22 Apr 2024 14:16:52 +0200 Subject: [PATCH 097/153] fix: Fix versions-check cli command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .changeset/wild-doors-cheat.md | 5 ++ packages/cli-node/package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/lib/versioning/Lockfile.ts | 80 +++++++++++++++++---- plugins/devtools-backend/package.json | 2 +- yarn.lock | 14 ++-- 6 files changed, 82 insertions(+), 23 deletions(-) create mode 100644 .changeset/wild-doors-cheat.md diff --git a/.changeset/wild-doors-cheat.md b/.changeset/wild-doors-cheat.md new file mode 100644 index 0000000000..c302dde467 --- /dev/null +++ b/.changeset/wild-doors-cheat.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fix `versions:check --fix` when `yarn.lock` has multiple joint versions in the same section diff --git a/packages/cli-node/package.json b/packages/cli-node/package.json index 3bd9a98f60..a786d71949 100644 --- a/packages/cli-node/package.json +++ b/packages/cli-node/package.json @@ -35,7 +35,7 @@ "@backstage/errors": "workspace:^", "@backstage/types": "workspace:^", "@manypkg/get-packages": "^1.1.3", - "@yarnpkg/parsers": "^3.0.0-rc.4", + "@yarnpkg/parsers": "^3.0.0", "fs-extra": "^11.2.0", "semver": "^7.5.3", "zod": "^3.22.4" diff --git a/packages/cli/package.json b/packages/cli/package.json index d6fe116248..02a57980e9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -79,7 +79,7 @@ "@typescript-eslint/eslint-plugin": "^6.12.0", "@typescript-eslint/parser": "^6.7.2", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.4", + "@yarnpkg/parsers": "^3.0.0", "bfj": "^8.0.0", "buffer": "^6.0.3", "chalk": "^4.0.0", diff --git a/packages/cli/src/lib/versioning/Lockfile.ts b/packages/cli/src/lib/versioning/Lockfile.ts index 50d0a77cfd..6af115a4da 100644 --- a/packages/cli/src/lib/versioning/Lockfile.ts +++ b/packages/cli/src/lib/versioning/Lockfile.ts @@ -98,6 +98,24 @@ export class Lockfile { return Lockfile.parse(lockfileContents); } + static #getRangesFromDataKey(key: string): string[] { + const [, name, ranges] = key.match(ENTRY_PATTERN) ?? []; + if (!name) { + throw new Error(`Failed to parse yarn.lock entry '${key}'`); + } + + return ranges.split(/\s*,\s*/).map(rangePart => { + let range = rangePart; + if (range.startsWith(`${name}@`)) { + range = range.slice(`${name}@`.length); + } + if (range.startsWith('npm:')) { + range = range.slice('npm:'.length); + } + return range; + }); + } + static parse(content: string) { const legacy = LEGACY_REGEX.test(content); @@ -113,7 +131,7 @@ export class Lockfile { for (const [key, value] of Object.entries(data)) { if (SPECIAL_OBJECT_KEYS.includes(key)) continue; - const [, name, ranges] = ENTRY_PATTERN.exec(key) ?? []; + const [, name] = ENTRY_PATTERN.exec(key) ?? []; if (!name) { throw new Error(`Failed to parse yarn.lock entry '${key}'`); } @@ -123,13 +141,8 @@ export class Lockfile { queries = []; packages.set(name, queries); } - for (let range of ranges.split(/\s*,\s*/)) { - if (range.startsWith(`${name}@`)) { - range = range.slice(`${name}@`.length); - } - if (range.startsWith('npm:')) { - range = range.slice('npm:'.length); - } + const ranges = Lockfile.#getRangesFromDataKey(key); + for (const range of ranges) { queries.push({ range, version: value.version, dataKey: key }); } } @@ -276,9 +289,34 @@ export class Lockfile { } remove(name: string, range: string): boolean { - const query = `${name}@${range}`; + const simpleQuery = `${name}@${range}`; + const query = this.getEntryOf(name, range); + const existed = Boolean(this.data[query]); - delete this.data[query]; + + if (simpleQuery === query) { + // Single-versioned entry, just delete + delete this.data[query]; + } else { + // Remove this version from the entry key. This modifies the key, so the + // package queries' needs to be updated too. + const newRanges = Lockfile.#getRangesFromDataKey(query).filter( + q => q !== simpleQuery, + ); + const newQuery = newRanges.join(', '); + + // Replace the entry with a new one without this particular range + const entry = this.data[query]; + delete this.data[query]; + this.data[newQuery] = entry; + + // Fix all package queries pointing to the old query + this.packages.get(name)?.forEach(q => { + if (q.dataKey === query) { + q.dataKey = newQuery; + } + }); + } const newEntries = this.packages.get(name)?.filter(e => e.range !== range); if (newEntries) { @@ -288,19 +326,35 @@ export class Lockfile { return existed; } + getEntryOf(name: string, range: string) { + const query = this.packages.get(name)?.find(q => q.range === range); + if (!query) { + throw new Error(`No entry data for ${name}@${range}`); + } + + return query.dataKey; + } + /** Modifies the lockfile by bumping packages to the suggested versions */ replaceVersions(results: AnalyzeResultNewVersion[]) { + // When replacing versions, we might replace the same version multiple times, + // as a query may contain multiple versions. This keeps the original version, + // to ensure we don't make mistakes. + const oldVersions = Object.fromEntries( + Object.entries(this.data).map(([key, val]) => [key, val.version]), + ); + for (const { name, range, oldVersion, newVersion } of results) { - const query = `${name}@${range}`; + const query = this.getEntryOf(name, range); // Update the backing data const entryData = this.data[query]; if (!entryData) { throw new Error(`No entry data for ${query}`); } - if (entryData.version !== oldVersion) { + if (oldVersions[query] !== oldVersion) { throw new Error( - `Expected existing version data for ${query} to be ${oldVersion}, was ${entryData.version}`, + `Expected existing version data for ${query} to be ${oldVersion}, was ${oldVersions[query]}`, ); } diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index fd2c8eac4a..6c440b66f0 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -41,7 +41,7 @@ "@manypkg/get-packages": "^1.1.3", "@types/express": "*", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.4", + "@yarnpkg/parsers": "^3.0.0", "express": "^4.18.1", "express-promise-router": "^4.1.0", "fs-extra": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 9c9a730679..bcf0790899 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3642,7 +3642,7 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/types": "workspace:^" "@manypkg/get-packages": ^1.1.3 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 fs-extra: ^11.2.0 semver: ^7.5.3 zod: ^3.22.4 @@ -3716,7 +3716,7 @@ __metadata: "@typescript-eslint/parser": ^6.7.2 "@vitejs/plugin-react": ^4.0.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 bfj: ^8.0.0 buffer: ^6.0.3 chalk: ^4.0.0 @@ -5777,7 +5777,7 @@ __metadata: "@types/supertest": ^2.0.8 "@types/yarnpkg__lockfile": ^1.1.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 express: ^4.18.1 express-promise-router: ^4.1.0 fs-extra: ^11.0.0 @@ -19325,13 +19325,13 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0-rc.4": - version: 3.0.0-rc.21 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.21" +"@yarnpkg/parsers@npm:^3.0.0": + version: 3.0.0 + resolution: "@yarnpkg/parsers@npm:3.0.0" dependencies: js-yaml: ^3.10.0 tslib: ^2.4.0 - checksum: c0741ef01089a7d452dfb75b8c24a82ddcc3e218dac22b794a06f2e50c7070378c460f63f63fb7ed0f62f634114e448e3d85a75ccd4db84e1526242ae9b4a7d5 + checksum: fefe5ecafb5bfa2b678ac9ba9259810fdda40142afd9d0b7e0e5cc1cce1fd824dffc52217c5e429807481d8fd18ead074bd317e64fd626335d3c9f1a320bade2 languageName: node linkType: hard From f7edc833204e8ccdf79cc676af906b80a1112ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Mon, 22 Apr 2024 16:12:41 +0200 Subject: [PATCH 098/153] Revert package upgrade from devtools-backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- plugins/devtools-backend/package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 6c440b66f0..fd2c8eac4a 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -41,7 +41,7 @@ "@manypkg/get-packages": "^1.1.3", "@types/express": "*", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0", + "@yarnpkg/parsers": "^3.0.0-rc.4", "express": "^4.18.1", "express-promise-router": "^4.1.0", "fs-extra": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index bcf0790899..f3b60bc781 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5777,7 +5777,7 @@ __metadata: "@types/supertest": ^2.0.8 "@types/yarnpkg__lockfile": ^1.1.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0 + "@yarnpkg/parsers": ^3.0.0-rc.4 express: ^4.18.1 express-promise-router: ^4.1.0 fs-extra: ^11.0.0 @@ -19325,7 +19325,7 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0": +"@yarnpkg/parsers@npm:^3.0.0, @yarnpkg/parsers@npm:^3.0.0-rc.4": version: 3.0.0 resolution: "@yarnpkg/parsers@npm:3.0.0" dependencies: From 17ed7bc6f92ca10c4697013b0420548384ab0890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Tue, 23 Apr 2024 06:08:32 +0200 Subject: [PATCH 099/153] Back to the future MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- plugins/devtools-backend/package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index fd2c8eac4a..6c440b66f0 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -41,7 +41,7 @@ "@manypkg/get-packages": "^1.1.3", "@types/express": "*", "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.4", + "@yarnpkg/parsers": "^3.0.0", "express": "^4.18.1", "express-promise-router": "^4.1.0", "fs-extra": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index f3b60bc781..bcf0790899 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5777,7 +5777,7 @@ __metadata: "@types/supertest": ^2.0.8 "@types/yarnpkg__lockfile": ^1.1.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.4 + "@yarnpkg/parsers": ^3.0.0 express: ^4.18.1 express-promise-router: ^4.1.0 fs-extra: ^11.0.0 @@ -19325,7 +19325,7 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0, @yarnpkg/parsers@npm:^3.0.0-rc.4": +"@yarnpkg/parsers@npm:^3.0.0": version: 3.0.0 resolution: "@yarnpkg/parsers@npm:3.0.0" dependencies: From 93be042a86d12ad22435599ebd904993f06e606a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Mon, 13 May 2024 14:34:58 +0200 Subject: [PATCH 100/153] fix: Added changeset to cli-node dependency upgrade MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .changeset/breezy-badgers-train.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/breezy-badgers-train.md diff --git a/.changeset/breezy-badgers-train.md b/.changeset/breezy-badgers-train.md new file mode 100644 index 0000000000..8f747b8602 --- /dev/null +++ b/.changeset/breezy-badgers-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli-node': patch +--- + +Upgraded @yarnpkg/parsers to stable 3.0 From d871c5627acc58e5b2bd7f9b7c4465eb40665bc0 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Mon, 13 May 2024 17:34:32 +0200 Subject: [PATCH 101/153] refactor: apply review suggestions Signed-off-by: Camila Belo --- packages/backend-common/src/deprecated.ts | 28 ----------------- packages/backend-common/src/index.ts | 6 +--- packages/backend-common/src/testUtils.ts | 32 +++++++++++++++++--- packages/backend-plugin-api/src/testUtils.ts | 2 -- 4 files changed, 28 insertions(+), 40 deletions(-) diff --git a/packages/backend-common/src/deprecated.ts b/packages/backend-common/src/deprecated.ts index cee15aadb6..4589303e4b 100644 --- a/packages/backend-common/src/deprecated.ts +++ b/packages/backend-common/src/deprecated.ts @@ -20,34 +20,6 @@ import { isChildPath as _isChildPath, } from '@backstage/backend-plugin-api'; -import { - overridePackagePathResolution as _overridePackagePathResolution, - OverridePackagePathResolutionOptions as _OverridePackagePathResolutionOptions, - PackagePathResolutionOverride as _PackagePathResolutionOverride, -} from '@backstage/backend-plugin-api/testUtils'; - -/** - * @public - * @deprecated This function is deprecated and will be removed in future release, see https://github.com/backstage/backstage/issues/24493. - * Please use the `overridePackagePathResolution` function from the `@backstage/backend-plugin-api/testUtils` package instead. - */ -export const overridePackagePathResolution = _overridePackagePathResolution; - -/** - * @public - * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. - * Please use the `OverridePackagePathResolutionOptions` type from the `@backstage/backend-plugin-api/testUtils` package instead. - */ -export type OverridePackagePathResolutionOptions = - _OverridePackagePathResolutionOptions; - -/** - * @public - * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. - * Please use the `PackagePathResolutionOverride` type from the `@backstage/backend-plugin-api/testUtils` package instead. - */ -export type PackagePathResolutionOverride = _PackagePathResolutionOverride; - /** * @public * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index 1d01410408..0c435ad9de 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -25,11 +25,7 @@ export type { LegacyCreateRouter } from './legacy'; export * from './auth'; export * from './cache'; export { loadBackendConfig } from './config'; -export { - resolvePackagePath, - resolveSafeChildPath, - isChildPath, -} from './deprecated'; +export * from './deprecated'; export * from './database'; export * from './discovery'; export * from './hot'; diff --git a/packages/backend-common/src/testUtils.ts b/packages/backend-common/src/testUtils.ts index bae633428f..397d97f20e 100644 --- a/packages/backend-common/src/testUtils.ts +++ b/packages/backend-common/src/testUtils.ts @@ -14,8 +14,30 @@ * limitations under the License. */ -export { - overridePackagePathResolution, - type OverridePackagePathResolutionOptions, - type PackagePathResolutionOverride, -} from './deprecated'; +import { + overridePackagePathResolution as _overridePackagePathResolution, + OverridePackagePathResolutionOptions as _OverridePackagePathResolutionOptions, + PackagePathResolutionOverride as _PackagePathResolutionOverride, +} from '@backstage/backend-plugin-api/testUtils'; + +/** + * @public + * @deprecated This function is deprecated and will be removed in future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `overridePackagePathResolution` function from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export const overridePackagePathResolution = _overridePackagePathResolution; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `OverridePackagePathResolutionOptions` type from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export type OverridePackagePathResolutionOptions = + _OverridePackagePathResolutionOptions; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `PackagePathResolutionOverride` type from the `@backstage/backend-plugin-api/testUtils` package instead. + */ +export type PackagePathResolutionOverride = _PackagePathResolutionOverride; diff --git a/packages/backend-plugin-api/src/testUtils.ts b/packages/backend-plugin-api/src/testUtils.ts index ba09145bf0..9616ab1701 100644 --- a/packages/backend-plugin-api/src/testUtils.ts +++ b/packages/backend-plugin-api/src/testUtils.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -// TODO: Remove this relative import when extrating the path utilities to this package -// eslint-disable-next-line @backstage/no-relative-monorepo-imports import { packagePathMocks } from './paths'; import { posix as posixPath, resolve as resolvePath } from 'path'; From ef716d9eeffe92061639269e0e190854ce1cba77 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 16:20:27 +0000 Subject: [PATCH 102/153] fix(deps): update dependency @pmmmwh/react-refresh-webpack-plugin to v0.5.13 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 58469b81a6..0f57532af5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13337,14 +13337,12 @@ __metadata: linkType: hard "@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.7": - version: 0.5.11 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11" + version: 0.5.13 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.13" dependencies: ansi-html-community: ^0.0.8 - common-path-prefix: ^3.0.0 core-js-pure: ^3.23.3 error-stack-parser: ^2.0.6 - find-up: ^5.0.0 html-entities: ^2.1.0 loader-utils: ^2.0.4 schema-utils: ^3.0.0 @@ -13355,7 +13353,7 @@ __metadata: sockjs-client: ^1.4.0 type-fest: ">=0.17.0 <5.0.0" webpack: ">=4.43.0 <6.0.0" - webpack-dev-server: 3.x || 4.x + webpack-dev-server: 3.x || 4.x || 5.x webpack-hot-middleware: 2.x webpack-plugin-serve: 0.x || 1.x peerDependenciesMeta: @@ -13371,7 +13369,7 @@ __metadata: optional: true webpack-plugin-serve: optional: true - checksum: a82eced9519f4dcac424acae719f819ab4150bfcf2874ac7daaf25a4f1c409e3d8b9d693fea0c686c24d520a5473756df32da90d8b89739670f8f8084c600bb4 + checksum: 9f931cf79945f58ee31569b83f4b294ae0849ea8232b6c79e690b46a3d7f2b981aa72718a4bd7517ab82657dddfed2a691c9d9e37295a87dfd0b18b2693d4aa6 languageName: node linkType: hard @@ -22253,13 +22251,6 @@ __metadata: languageName: node linkType: hard -"common-path-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "common-path-prefix@npm:3.0.0" - checksum: fdb3c4f54e51e70d417ccd950c07f757582de800c0678ca388aedefefc84982039f346f9fd9a1252d08d2da9e9ef4019f580a1d1d3a10da031e4bb3c924c5818 - languageName: node - linkType: hard - "common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" From c889f9141381dabba1573edc85c3a5b1290b3365 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:05:59 +0000 Subject: [PATCH 103/153] fix(deps): update dependency @types/passport-oauth2 to v1.4.16 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 0f57532af5..99d5075482 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17916,13 +17916,13 @@ __metadata: linkType: hard "@types/passport-oauth2@npm:*, @types/passport-oauth2@npm:^1.4.11, @types/passport-oauth2@npm:^1.4.15": - version: 1.4.15 - resolution: "@types/passport-oauth2@npm:1.4.15" + version: 1.4.16 + resolution: "@types/passport-oauth2@npm:1.4.16" dependencies: "@types/express": "*" "@types/oauth": "*" "@types/passport": "*" - checksum: 352c4e2d09a86f8fc0dcf2c917c221f302a35a14e7467e2fa3a1653c0a9a1f842c910a4e52f799856536522e6359c20d1afc319579d9edf4b2ac7ea11b183b52 + checksum: a590d3fcdf93dbe4498c636de139dc22a723bbf12a7f248f432085a47ec1b76b2e1201336ee26cd65c400d7ce6fb30ae0b151f40067267942c8a5b3c708cc23d languageName: node linkType: hard From 03cdff9c3c3dfa52539d572901ecbb33286e42ae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:58:49 +0000 Subject: [PATCH 104/153] fix(deps): update dependency @useoptic/openapi-utilities to v0.54.13 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99d5075482..cf61ceace7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18896,13 +18896,13 @@ __metadata: languageName: node linkType: hard -"@useoptic/json-pointer-helpers@npm:0.54.8": - version: 0.54.8 - resolution: "@useoptic/json-pointer-helpers@npm:0.54.8" +"@useoptic/json-pointer-helpers@npm:0.54.13": + version: 0.54.13 + resolution: "@useoptic/json-pointer-helpers@npm:0.54.13" dependencies: jsonpointer: ^5.0.1 minimatch: 9.0.3 - checksum: 4eddabb6dce3ca8160dcd4904299b6964945c3fe47d39bfeca6c68b9a50b058b901a6fb10ab168295475d651df3349149faa5f27f77293e15b6eee8d4417432e + checksum: ad987e9bbec82606bd5995f4ffea7eb708549573e8a94a201ed266e4efc854423804671c3772be714457c417641da69d6689a1e61164bd0cfb8f83a1561facdb languageName: node linkType: hard @@ -18961,10 +18961,10 @@ __metadata: linkType: hard "@useoptic/openapi-utilities@npm:^0.54.8": - version: 0.54.8 - resolution: "@useoptic/openapi-utilities@npm:0.54.8" + version: 0.54.13 + resolution: "@useoptic/openapi-utilities@npm:0.54.13" dependencies: - "@useoptic/json-pointer-helpers": 0.54.8 + "@useoptic/json-pointer-helpers": 0.54.13 ajv: ^8.6.0 ajv-errors: ~3.0.0 ajv-formats: ~2.1.0 @@ -18981,7 +18981,7 @@ __metadata: ts-invariant: ^0.9.3 url-join: ^4.0.1 yaml-ast-parser: ^0.0.43 - checksum: fa9e9f430c77687591aaf8b43b7b31a7c2f80fe9c140aaa978f1948f84d3e974181c91c3d8ec3e06efca9735c7826290baf4be72063bf733887aa632b40c3c4a + checksum: d02eabba96af29632557cdb5532edcc4a629860471fe6cd02990c54ad8014c980d07e3dde8d04ed644a0bd3c2218a93fc50fe9904ee317ef6189b2db41bc7505 languageName: node linkType: hard From 5b1ecde6142e2c8d01cc215aca7fac3fb6edda57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 18:42:26 +0000 Subject: [PATCH 105/153] fix(deps): update dependency clsx to v2.1.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- microsite/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 3ca3e2837a..572a8fe5fd 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -4334,9 +4334,9 @@ __metadata: linkType: hard "clsx@npm:^2.0.0": - version: 2.1.0 - resolution: "clsx@npm:2.1.0" - checksum: 43fefc29b6b49c9476fbce4f8b1cc75c27b67747738e598e6651dd40d63692135dc60b18fa1c5b78a2a9ba8ae6fd2055a068924b94e20b42039bd53b78b98e1d + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 languageName: node linkType: hard From 5f3f8a86fd1d4ed7305833013f49f96cd1b40d84 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 May 2024 21:59:12 +0200 Subject: [PATCH 106/153] catalog-github: too much css Signed-off-by: Vincenzo Scamporlino --- ...ntityCleanerProvider.tsx => GithubOrgEntityCleanerProvider.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/catalog-backend-module-github-org/src/{GithubOrgEntityCleanerProvider.tsx => GithubOrgEntityCleanerProvider.ts} (100%) diff --git a/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx b/plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.ts similarity index 100% rename from plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.tsx rename to plugins/catalog-backend-module-github-org/src/GithubOrgEntityCleanerProvider.ts From 789aa030b374823fd36e82249141dc7f80082620 Mon Sep 17 00:00:00 2001 From: Erik Sjoholm Date: Mon, 13 May 2024 16:45:51 -0700 Subject: [PATCH 107/153] fix a bug documented in issue#24753 where markdown descriptions are not being opened in a new tab Signed-off-by: Erik Sjoholm --- .../src/next/components/ScaffolderField/ScaffolderField.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder-react/src/next/components/ScaffolderField/ScaffolderField.tsx b/plugins/scaffolder-react/src/next/components/ScaffolderField/ScaffolderField.tsx index 1bb1656fd0..60c3907ddb 100644 --- a/plugins/scaffolder-react/src/next/components/ScaffolderField/ScaffolderField.tsx +++ b/plugins/scaffolder-react/src/next/components/ScaffolderField/ScaffolderField.tsx @@ -76,6 +76,7 @@ export const ScaffolderField = ( {displayLabel && rawDescription ? ( ) : null} From 86dc29dcbe0bcd5bf225036c37ca0ed9d9268c0e Mon Sep 17 00:00:00 2001 From: Erik Sjoholm Date: Mon, 13 May 2024 16:52:00 -0700 Subject: [PATCH 108/153] Add changeset and api-report Signed-off-by: Erik Sjoholm --- .changeset/loud-pumpkins-bow.md | 5 +++++ plugins/scaffolder-backend/api-report.md | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/loud-pumpkins-bow.md diff --git a/.changeset/loud-pumpkins-bow.md b/.changeset/loud-pumpkins-bow.md new file mode 100644 index 0000000000..366645db24 --- /dev/null +++ b/.changeset/loud-pumpkins-bow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Fixed a bug where links in scaffolder field markdown content e.g. - description was not able to be launched in a new tab. This fix makes it so that all links within Scaffolder Fields are launched in a new tab. diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index c141733ec4..8a9623d78f 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -302,7 +302,10 @@ export const createPublishGitlabMergeRequestAction: (options: { }) => TemplateAction_2< { repoUrl: string; - title: string; + title: string + /** + * @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead + */; description: string; branchName: string; targetBranchName?: string | undefined; From e49a8106ad27ba869efec9d5e63e12b00254fbd0 Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Tue, 14 May 2024 09:55:07 +0300 Subject: [PATCH 109/153] fix: show all notifications by default in notifications page to prevent confusion with sidebar item showing that you have new notifications but the table not showing any because the default filter is for last week only Signed-off-by: Heikki Hellgren --- .changeset/nice-scissors-jog.md | 5 +++++ .../src/components/NotificationsPage/NotificationsPage.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/nice-scissors-jog.md diff --git a/.changeset/nice-scissors-jog.md b/.changeset/nice-scissors-jog.md new file mode 100644 index 0000000000..7065a9e63f --- /dev/null +++ b/.changeset/nice-scissors-jog.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Show all notifications by default to match the sidebar item status diff --git a/plugins/notifications/src/components/NotificationsPage/NotificationsPage.tsx b/plugins/notifications/src/components/NotificationsPage/NotificationsPage.tsx index d1dde185f2..ef1fda0407 100644 --- a/plugins/notifications/src/components/NotificationsPage/NotificationsPage.tsx +++ b/plugins/notifications/src/components/NotificationsPage/NotificationsPage.tsx @@ -71,7 +71,7 @@ export const NotificationsPage = (props?: NotificationsPageProps) => { const [pageNumber, setPageNumber] = React.useState(0); const [pageSize, setPageSize] = React.useState(5); const [containsText, setContainsText] = React.useState(); - const [createdAfter, setCreatedAfter] = React.useState('lastWeek'); + const [createdAfter, setCreatedAfter] = React.useState('all'); const [sorting, setSorting] = React.useState( SortByOptions.newest.sortBy, ); From 120c2a49f3a4121bef10a5ff95c19042362b07e8 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Tue, 14 May 2024 11:05:23 +0200 Subject: [PATCH 110/153] refactor(backend-common): unify deprecated file and folder Signed-off-by: Camila Belo --- packages/backend-common/src/deprecated.ts | 42 ------------------- .../backend-common/src/deprecated/index.ts | 27 ++++++++++++ packages/backend-common/src/index.ts | 2 - 3 files changed, 27 insertions(+), 44 deletions(-) delete mode 100644 packages/backend-common/src/deprecated.ts diff --git a/packages/backend-common/src/deprecated.ts b/packages/backend-common/src/deprecated.ts deleted file mode 100644 index 4589303e4b..0000000000 --- a/packages/backend-common/src/deprecated.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2024 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 { - resolvePackagePath as _resolvePackagePath, - resolveSafeChildPath as _resolveSafeChildPath, - isChildPath as _isChildPath, -} from '@backstage/backend-plugin-api'; - -/** - * @public - * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. - * Please use the `resolvePackagePath` function from the `@backstage/backend-plugin-api` package instead. - */ -export const resolvePackagePath = _resolvePackagePath; - -/** - * @public - * @deprecated This type is deprecated and will be removed in a future release, see - * Please use the `resolveSafeChildPath` function from the `@backstage/backend-plugin-api` package instead. - */ -export const resolveSafeChildPath = _resolveSafeChildPath; - -/** - * @public - * @deprecated This type is deprecated and will be removed in a future release, see - * Please use the `isChildPath` function from the `@backstage/cli-common` package instead. - */ -export const isChildPath = _isChildPath; diff --git a/packages/backend-common/src/deprecated/index.ts b/packages/backend-common/src/deprecated/index.ts index ed5fdcc577..708e358bfc 100644 --- a/packages/backend-common/src/deprecated/index.ts +++ b/packages/backend-common/src/deprecated/index.ts @@ -15,3 +15,30 @@ */ export * from './scm'; + +import { + resolvePackagePath as _resolvePackagePath, + resolveSafeChildPath as _resolveSafeChildPath, + isChildPath as _isChildPath, +} from '@backstage/backend-plugin-api'; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see https://github.com/backstage/backstage/issues/24493. + * Please use the `resolvePackagePath` function from the `@backstage/backend-plugin-api` package instead. + */ +export const resolvePackagePath = _resolvePackagePath; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see + * Please use the `resolveSafeChildPath` function from the `@backstage/backend-plugin-api` package instead. + */ +export const resolveSafeChildPath = _resolveSafeChildPath; + +/** + * @public + * @deprecated This type is deprecated and will be removed in a future release, see + * Please use the `isChildPath` function from the `@backstage/cli-common` package instead. + */ +export const isChildPath = _isChildPath; diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index 216eb9446e..87bfa245f6 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -22,8 +22,6 @@ export { legacyPlugin, makeLegacyPlugin } from './legacy'; export type { LegacyCreateRouter } from './legacy'; -export { Git } from './deprecated'; -export type { StaticAuthOptions, AuthCallbackOptions } from './deprecated'; export * from './auth'; export * from './cache'; export { loadBackendConfig } from './config'; From 07ba7f648e01ddd946f4d4bf7c76fe558771bb8e Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 14 May 2024 11:44:52 +0200 Subject: [PATCH 111/153] docs: fix vale issue Signed-off-by: Vincenzo Scamporlino --- docs/integrations/github/org.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 94eb551c7c..7348c4cb21 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -90,7 +90,7 @@ Directly under the `githubOrg` is a list of configurations, each entry is a stru - `id`: A stable id for this provider. Entities from this provider will be associated with this ID, so you should take care not to change it over time since that may lead to orphaned entities and/or conflicts. - `githubUrl`: The target that this provider should consume -- `orgs` (optional): The list of the GitHub orgs to consume. By default wil consume all accessible orgs on the given GitHub instance (support for GitHub App integration only). +- `orgs` (optional): The list of the GitHub orgs to consume. By default will consume all accessible orgs on the given GitHub instance (support for GitHub App integration only). - `schedule`: The refresh schedule to use, matches the structure of [`TaskScheduleDefinitionConfig`](https://backstage.io/docs/reference/backend-tasks.taskscheduledefinitionconfig/) ### Events Support From b19dfb38cceb21b2c165ebe397e0d9e4cda80e1a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 14 May 2024 11:54:07 +0200 Subject: [PATCH 112/153] docs/integration/github: doc spelling fix + update Signed-off-by: Patrik Oldsberg --- docs/integrations/github/org.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 7348c4cb21..06b4e07daa 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -90,7 +90,7 @@ Directly under the `githubOrg` is a list of configurations, each entry is a stru - `id`: A stable id for this provider. Entities from this provider will be associated with this ID, so you should take care not to change it over time since that may lead to orphaned entities and/or conflicts. - `githubUrl`: The target that this provider should consume -- `orgs` (optional): The list of the GitHub orgs to consume. By default will consume all accessible orgs on the given GitHub instance (support for GitHub App integration only). +- `orgs` (optional): The list of the GitHub orgs to consume. If you only list a single org the generated group entities will use the `default` namespace, otherwise they will use the org name as the namespace. By default the provider will consume all accessible orgs on the given GitHub instance (support for GitHub App integration only). - `schedule`: The refresh schedule to use, matches the structure of [`TaskScheduleDefinitionConfig`](https://backstage.io/docs/reference/backend-tasks.taskscheduledefinitionconfig/) ### Events Support From 329cc345af42c7220a031bec82ed7c62d3415d99 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 14 May 2024 11:06:45 +0200 Subject: [PATCH 113/153] backend-app-api: add initialization logger Signed-off-by: Patrik Oldsberg --- .changeset/pink-nails-warn.md | 5 ++ .../src/wiring/BackendInitializer.ts | 10 +++ .../src/wiring/createInitializationLogger.ts | 79 +++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 .changeset/pink-nails-warn.md create mode 100644 packages/backend-app-api/src/wiring/createInitializationLogger.ts diff --git a/.changeset/pink-nails-warn.md b/.changeset/pink-nails-warn.md new file mode 100644 index 0000000000..6bdbf465b0 --- /dev/null +++ b/.changeset/pink-nails-warn.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Added logging of all plugins being initialized, periodic status, and completion. diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index fe949c2e33..1bf38a8c40 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -31,6 +31,7 @@ import { ForwardedError, ConflictError } from '@backstage/errors'; import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; import { DependencyGraph } from '../lib/DependencyGraph'; import { ServiceRegistry } from './ServiceRegistry'; +import { createInitializationLogger } from './createInitializationLogger'; export interface BackendRegisterInit { consumes: Set; @@ -226,6 +227,11 @@ export class BackendInitializer { const allPluginIds = [...pluginInits.keys()]; + const initLogger = createInitializationLogger( + allPluginIds, + await this.#serviceRegistry.get(coreServices.rootLogger, 'root'), + ); + // All plugins are initialized in parallel await Promise.all( allPluginIds.map(async pluginId => { @@ -289,6 +295,8 @@ export class BackendInitializer { }); } + initLogger.onPluginStarted(pluginId); + // Once the plugin and all modules have been initialized, we can signal that the plugin has stared up successfully const lifecycleService = await this.#getPluginLifecycleImpl(pluginId); await lifecycleService.startup(); @@ -299,6 +307,8 @@ export class BackendInitializer { const lifecycleService = await this.#getRootLifecycleImpl(); await lifecycleService.startup(); + initLogger.onAllStarted(); + // Once the backend is started, any uncaught errors or unhandled rejections are caught // and logged, in order to avoid crashing the entire backend on local failures. if (process.env.NODE_ENV !== 'test') { diff --git a/packages/backend-app-api/src/wiring/createInitializationLogger.ts b/packages/backend-app-api/src/wiring/createInitializationLogger.ts new file mode 100644 index 0000000000..566b5507ec --- /dev/null +++ b/packages/backend-app-api/src/wiring/createInitializationLogger.ts @@ -0,0 +1,79 @@ +/* + * Copyright 2024 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 { RootLoggerService } from '@backstage/backend-plugin-api'; + +const LOGGER_INTERVAL_MAX = 60_000; + +function joinIds(ids: Iterable): string { + return [...ids].map(id => `'${id}'`).join(', '); +} + +export function createInitializationLogger( + pluginIds: string[], + rootLogger?: RootLoggerService, +): { + onPluginStarted(pluginId: string): void; + onAllStarted(): void; +} { + const logger = rootLogger?.child({ type: 'initialization' }); + const starting = new Set(pluginIds); + const started = new Set(); + + logger?.info(`Plugin initialization started: ${joinIds(pluginIds)}`); + + const getInitStatus = () => { + let status = ''; + if (started.size > 0) { + status = `, newly initialized: ${joinIds(started)}`; + started.clear(); + } + if (starting.size > 0) { + status += `, still initializing: ${joinIds(starting)}`; + } + return status; + }; + + // Periodically log the initialization status with a fibonacci backoff + let interval = 1000; + let prevInterval = 0; + let timeout: NodeJS.Timeout | undefined; + const onTimeout = () => { + logger?.info(`Plugin initialization in progress${getInitStatus()}`); + + const nextInterval = Math.min(interval + prevInterval, LOGGER_INTERVAL_MAX); + prevInterval = interval; + interval = nextInterval; + + timeout = setTimeout(onTimeout, nextInterval); + }; + timeout = setTimeout(onTimeout, interval); + + return { + onPluginStarted(pluginId: string) { + starting.delete(pluginId); + started.add(pluginId); + }, + onAllStarted() { + logger?.info(`Plugin initialization complete${getInitStatus()}`); + + if (timeout) { + clearTimeout(timeout); + timeout = undefined; + } + }, + }; +} From f1856032d38177963d2d1e15094fcd2d916d1b1d Mon Sep 17 00:00:00 2001 From: Alper Altay Date: Mon, 13 May 2024 14:36:30 +0200 Subject: [PATCH 114/153] fix: dynamic import of vite Signed-off-by: Alper Altay --- .changeset/tender-falcons-add.md | 5 +++++ packages/cli/src/lib/bundler/server.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/tender-falcons-add.md diff --git a/.changeset/tender-falcons-add.md b/.changeset/tender-falcons-add.md new file mode 100644 index 0000000000..60a947bcc3 --- /dev/null +++ b/.changeset/tender-falcons-add.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed the dynamic import of vite. diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 2b7311a34c..1099980aa7 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -165,7 +165,7 @@ DEPRECATION WARNING: React Router Beta is deprecated and support for it will be }); if (process.env.EXPERIMENTAL_VITE) { - const { default: vite } = await import('vite'); + const vite = import('vite'); const { default: viteReact } = await import('@vitejs/plugin-react'); const { nodePolyfills: viteNodePolyfills } = await import( 'vite-plugin-node-polyfills' From f8eeeb8774470ab1ac5558ae8eb18f60cd67e8ed Mon Sep 17 00:00:00 2001 From: Alper Altay Date: Mon, 13 May 2024 14:38:01 +0200 Subject: [PATCH 115/153] chore: added missing await Signed-off-by: Alper Altay --- packages/cli/src/lib/bundler/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 1099980aa7..53f3b2c25a 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -165,7 +165,7 @@ DEPRECATION WARNING: React Router Beta is deprecated and support for it will be }); if (process.env.EXPERIMENTAL_VITE) { - const vite = import('vite'); + const vite = await import('vite'); const { default: viteReact } = await import('@vitejs/plugin-react'); const { nodePolyfills: viteNodePolyfills } = await import( 'vite-plugin-node-polyfills' From 0972164fbc77997dddab4bad4cf666e2c31114f4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 14 May 2024 12:02:01 +0000 Subject: [PATCH 116/153] Version Packages --- .changeset/afraid-ghosts-watch.md | 5 - .changeset/afraid-needles-divide.md | 5 - .changeset/blue-hotels-shake.md | 7 - .changeset/brave-carrots-glow.md | 5 - .changeset/brave-planets-raise.md | 9 - .changeset/bright-pumpkins-rule.md | 5 - .changeset/chatty-cycles-unite.md | 9 - .changeset/chilly-adults-sing.md | 5 - .changeset/chilly-fireants-roll.md | 5 - .changeset/chilly-shoes-doubt.md | 5 - .changeset/clean-pants-camp.md | 5 - .changeset/cli-postpack-schmostschmack.md | 5 - .changeset/cold-cougars-float.md | 7 - .changeset/cold-rats-leave.md | 5 - .changeset/cool-elephants-march.md | 5 - .changeset/cool-garlics-clap.md | 5 - .changeset/create-app-1714476054.md | 5 - .changeset/create-app-1715088359.md | 5 - .changeset/cuddly-chairs-kick.md | 5 - .changeset/curly-shirts-flow.md | 5 - .changeset/curvy-planes-flash.md | 5 - .changeset/cyan-eagles-hammer.md | 6 - .changeset/cyan-suns-shave.md | 5 - .changeset/dirty-chairs-march.md | 5 - .changeset/dry-sloths-impress.md | 5 - .changeset/early-starfishes-hammer.md | 5 - .changeset/eighty-apricots-kneel.md | 5 - .changeset/eighty-bats-stare.md | 5 - .changeset/eleven-pandas-divide.md | 5 - .changeset/empty-beers-relax.md | 5 - .changeset/famous-crabs-laugh.md | 5 - .changeset/few-vans-cross.md | 5 - .changeset/five-cows-crash.md | 5 - .changeset/fix-stackoverflow.md | 5 - .changeset/flat-countries-clap.md | 5 - .changeset/fluffy-hotels-wait.md | 5 - .changeset/four-cooks-serve.md | 6 - .changeset/fresh-crews-impress.md | 5 - .changeset/funny-bees-taste.md | 5 - .changeset/funny-cars-jump.md | 24 - .changeset/fuzzy-seahorses-tell.md | 5 - .changeset/giant-donkeys-talk.md | 5 - .changeset/gold-waves-bake.md | 5 - .changeset/gorgeous-cameras-cross.md | 5 - .changeset/green-adults-push.md | 5 - .changeset/green-boxes-rescue.md | 5 - .changeset/grumpy-toes-tap.md | 5 - .changeset/happy-radios-kiss.md | 5 - .changeset/healthy-dots-ring.md | 6 - .changeset/healthy-shirts-roll.md | 5 - .changeset/heavy-trainers-fly.md | 5 - .changeset/hip-carrots-drive.md | 5 - .changeset/hot-forks-train.md | 5 - .changeset/itchy-gorillas-hope.md | 5 - .changeset/itchy-keys-wonder.md | 6 - .changeset/kind-toes-scream.md | 5 - .changeset/late-planes-fix.md | 6 - .changeset/lazy-phones-worry.md | 5 - .changeset/little-rockets-live.md | 7 - .changeset/loud-frogs-eat.md | 5 - .changeset/loud-timers-flow.md | 5 - .changeset/loud-vans-greet.md | 5 - .changeset/lovely-games-cry.md | 5 - .changeset/lucky-news-guess.md | 5 - .changeset/mean-ravens-dance.md | 7 - .changeset/metal-years-rhyme.md | 6 - .changeset/modern-radios-guess.md | 5 - .changeset/nasty-papayas-heal.md | 5 - .changeset/nervous-mayflies-float.md | 5 - .changeset/new-poets-promise.md | 5 - .changeset/nice-scissors-jog.md | 5 - .changeset/olive-pants-leave.md | 11 - .changeset/olive-rockets-drum.md | 5 - .changeset/orange-numbers-think.md | 5 - .changeset/perfect-beers-explode.md | 5 - .changeset/perfect-points-hope.md | 5 - .changeset/pink-nails-warn.md | 5 - .changeset/pink-years-peel.md | 6 - .changeset/pre.json | 395 ---- .changeset/proud-comics-love.md | 6 - .changeset/proud-doors-cheat.md | 5 - .changeset/purple-parents-sin.md | 5 - .changeset/purple-waves-smile.md | 5 - .changeset/quick-cats-argue.md | 7 - .changeset/quiet-boxes-build.md | 5 - .changeset/rare-fireants-tickle.md | 5 - .changeset/real-crabs-obey.md | 5 - .changeset/red-mangos-fly.md | 5 - .changeset/renovate-0d0bd5c.md | 11 - .changeset/renovate-228c530.md | 5 - .changeset/rich-adults-float.md | 5 - .changeset/selfish-pigs-glow.md | 6 - .changeset/selfish-walls-visit.md | 6 - .changeset/sharp-glasses-live.md | 5 - .changeset/shy-students-clap.md | 5 - .changeset/silent-wombats-hang.md | 5 - .changeset/six-scissors-smile.md | 5 - .changeset/sixty-bears-camp.md | 5 - .changeset/slimy-donkeys-laugh.md | 5 - .changeset/slimy-kids-behave.md | 5 - .changeset/smart-avocados-invent.md | 5 - .changeset/smooth-garlics-behave.md | 5 - .changeset/sour-socks-approve.md | 5 - .changeset/strange-rocks-study.md | 5 - .changeset/stupid-onions-know.md | 5 - .changeset/sweet-spiders-rhyme.md | 5 - .changeset/sweet-zoos-clap.md | 5 - .changeset/swift-humans-hunt.md | 5 - .changeset/tall-ads-shave.md | 5 - .changeset/tame-jars-double.md | 5 - .changeset/tame-jokes-bow.md | 5 - .changeset/tasty-apes-learn.md | 5 - .changeset/tasty-moles-jog.md | 5 - .changeset/tasty-rats-explain.md | 5 - .changeset/tender-falcons-add.md | 5 - .changeset/thick-llamas-itch.md | 5 - .changeset/thick-terms-rush.md | 5 - .changeset/thirty-mangos-travel.md | 5 - .changeset/tough-eggs-wink.md | 5 - .changeset/tricky-cougars-shout.md | 5 - .changeset/unlucky-days-play.md | 5 - .changeset/unlucky-rivers-collect.md | 5 - .changeset/warm-fans-promise.md | 5 - .changeset/wet-files-pretend.md | 5 - .changeset/wild-cats-hug.md | 7 - .changeset/wild-seahorses-grin.md | 6 - .changeset/young-guests-reflect.md | 5 - .changeset/young-olives-drop.md | 5 - docs/releases/v1.27.0-changelog.md | 1949 +++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 9 + 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 | 39 + packages/app-next/package.json | 2 +- packages/app/CHANGELOG.md | 37 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 27 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 23 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 10 + packages/backend-defaults/package.json | 2 +- .../CHANGELOG.md | 21 + .../package.json | 2 +- packages/backend-legacy/CHANGELOG.md | 40 + packages/backend-legacy/package.json | 2 +- packages/backend-openapi-utils/CHANGELOG.md | 7 + packages/backend-openapi-utils/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 10 + packages/backend-plugin-api/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 9 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 13 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 36 + packages/backend/package.json | 2 +- packages/catalog-client/CHANGELOG.md | 7 + packages/catalog-client/package.json | 2 +- packages/catalog-model/CHANGELOG.md | 6 + packages/catalog-model/package.json | 2 +- packages/cli/CHANGELOG.md | 18 + packages/cli/package.json | 2 +- packages/core-app-api/CHANGELOG.md | 6 + packages/core-app-api/package.json | 2 +- packages/core-compat-api/CHANGELOG.md | 8 + packages/core-compat-api/package.json | 2 +- packages/core-components/CHANGELOG.md | 14 + packages/core-components/package.json | 2 +- packages/create-app/CHANGELOG.md | 10 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 13 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 7 + packages/e2e-test/package.json | 2 +- packages/eslint-plugin/CHANGELOG.md | 6 + packages/eslint-plugin/package.json | 2 +- packages/frontend-app-api/CHANGELOG.md | 14 + packages/frontend-app-api/package.json | 2 +- packages/frontend-plugin-api/CHANGELOG.md | 7 + packages/frontend-plugin-api/package.json | 2 +- packages/frontend-test-utils/CHANGELOG.md | 9 + packages/frontend-test-utils/package.json | 2 +- packages/integration-react/CHANGELOG.md | 7 + packages/integration-react/package.json | 2 +- packages/integration/CHANGELOG.md | 6 + packages/integration/package.json | 2 +- packages/repo-tools/CHANGELOG.md | 14 + packages/repo-tools/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 17 + .../techdocs-cli-embedded-app/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 10 + packages/techdocs-cli/package.json | 2 +- packages/test-utils/CHANGELOG.md | 8 + packages/test-utils/package.json | 2 +- packages/theme/CHANGELOG.md | 6 + packages/theme/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 15 + plugins/api-docs/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 11 + plugins/app-backend/package.json | 2 +- plugins/app-node/CHANGELOG.md | 7 + plugins/app-node/package.json | 2 +- plugins/app-visualizer/CHANGELOG.md | 8 + plugins/app-visualizer/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 29 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 11 + plugins/auth-node/package.json | 2 +- plugins/auth-react/CHANGELOG.md | 8 + plugins/auth-react/package.json | 2 +- plugins/bitbucket-cloud-common/CHANGELOG.md | 8 + plugins/bitbucket-cloud-common/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 14 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 12 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../catalog-backend-module-gcp/CHANGELOG.md | 12 + .../catalog-backend-module-gcp/package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 23 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 12 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 28 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-common/CHANGELOG.md | 7 + plugins/catalog-common/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 13 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 19 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 16 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 16 + plugins/catalog-react/package.json | 2 +- .../catalog-unprocessed-entities/CHANGELOG.md | 8 + .../catalog-unprocessed-entities/package.json | 2 +- plugins/catalog/CHANGELOG.md | 23 + plugins/catalog/package.json | 2 +- plugins/config-schema/CHANGELOG.md | 7 + plugins/config-schema/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 10 + plugins/devtools-backend/package.json | 2 +- plugins/devtools/CHANGELOG.md | 9 + plugins/devtools/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../events-backend-module-azure/CHANGELOG.md | 8 + .../events-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../events-backend-module-gerrit/CHANGELOG.md | 8 + .../events-backend-module-gerrit/package.json | 2 +- .../events-backend-module-github/CHANGELOG.md | 8 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 8 + .../events-backend-module-gitlab/package.json | 2 +- .../events-backend-test-utils/CHANGELOG.md | 7 + .../events-backend-test-utils/package.json | 2 +- plugins/events-backend/CHANGELOG.md | 9 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 8 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 9 + .../example-todo-list-backend/package.json | 2 +- plugins/example-todo-list/CHANGELOG.md | 7 + plugins/example-todo-list/package.json | 2 +- plugins/home-react/CHANGELOG.md | 11 + plugins/home-react/package.json | 2 +- plugins/home/CHANGELOG.md | 20 + plugins/home/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 15 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes-cluster/CHANGELOG.md | 11 + plugins/kubernetes-cluster/package.json | 2 +- plugins/kubernetes-common/CHANGELOG.md | 7 + plugins/kubernetes-common/package.json | 2 +- plugins/kubernetes-node/CHANGELOG.md | 9 + plugins/kubernetes-node/package.json | 2 +- plugins/kubernetes-react/CHANGELOG.md | 10 + plugins/kubernetes-react/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 11 + plugins/kubernetes/package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- plugins/notifications-backend/CHANGELOG.md | 19 + plugins/notifications-backend/package.json | 2 +- plugins/notifications-node/CHANGELOG.md | 12 + plugins/notifications-node/package.json | 2 +- plugins/notifications/CHANGELOG.md | 19 + plugins/notifications/package.json | 2 +- plugins/org-react/CHANGELOG.md | 10 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 13 + plugins/org/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 10 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 9 + plugins/permission-node/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 8 + plugins/proxy-backend/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 31 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-common/CHANGELOG.md | 8 + plugins/scaffolder-common/package.json | 2 +- .../scaffolder-node-test-utils/CHANGELOG.md | 9 + .../scaffolder-node-test-utils/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 14 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 17 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 28 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 10 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 10 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 13 + plugins/search-backend/package.json | 2 +- plugins/search-react/CHANGELOG.md | 9 + plugins/search-react/package.json | 2 +- plugins/search/CHANGELOG.md | 12 + plugins/search/package.json | 2 +- plugins/signals-backend/CHANGELOG.md | 12 + plugins/signals-backend/package.json | 2 +- plugins/signals-node/CHANGELOG.md | 10 + plugins/signals-node/package.json | 2 +- plugins/signals/CHANGELOG.md | 8 + plugins/signals/package.json | 2 +- .../techdocs-addons-test-utils/CHANGELOG.md | 15 + .../techdocs-addons-test-utils/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 15 + plugins/techdocs-backend/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 11 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs-react/CHANGELOG.md | 8 + plugins/techdocs-react/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 19 + plugins/techdocs/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 10 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 13 + plugins/user-settings/package.json | 2 +- yarn.lock | 315 +-- 447 files changed, 4105 insertions(+), 1505 deletions(-) delete mode 100644 .changeset/afraid-ghosts-watch.md delete mode 100644 .changeset/afraid-needles-divide.md delete mode 100644 .changeset/blue-hotels-shake.md delete mode 100644 .changeset/brave-carrots-glow.md delete mode 100644 .changeset/brave-planets-raise.md delete mode 100644 .changeset/bright-pumpkins-rule.md delete mode 100644 .changeset/chatty-cycles-unite.md delete mode 100644 .changeset/chilly-adults-sing.md delete mode 100644 .changeset/chilly-fireants-roll.md delete mode 100644 .changeset/chilly-shoes-doubt.md delete mode 100644 .changeset/clean-pants-camp.md delete mode 100644 .changeset/cli-postpack-schmostschmack.md delete mode 100644 .changeset/cold-cougars-float.md delete mode 100644 .changeset/cold-rats-leave.md delete mode 100644 .changeset/cool-elephants-march.md delete mode 100644 .changeset/cool-garlics-clap.md delete mode 100644 .changeset/create-app-1714476054.md delete mode 100644 .changeset/create-app-1715088359.md delete mode 100644 .changeset/cuddly-chairs-kick.md delete mode 100644 .changeset/curly-shirts-flow.md delete mode 100644 .changeset/curvy-planes-flash.md delete mode 100644 .changeset/cyan-eagles-hammer.md delete mode 100644 .changeset/cyan-suns-shave.md delete mode 100644 .changeset/dirty-chairs-march.md delete mode 100644 .changeset/dry-sloths-impress.md delete mode 100644 .changeset/early-starfishes-hammer.md delete mode 100644 .changeset/eighty-apricots-kneel.md delete mode 100644 .changeset/eighty-bats-stare.md delete mode 100644 .changeset/eleven-pandas-divide.md delete mode 100644 .changeset/empty-beers-relax.md delete mode 100644 .changeset/famous-crabs-laugh.md delete mode 100644 .changeset/few-vans-cross.md delete mode 100644 .changeset/five-cows-crash.md delete mode 100644 .changeset/fix-stackoverflow.md delete mode 100644 .changeset/flat-countries-clap.md delete mode 100644 .changeset/fluffy-hotels-wait.md delete mode 100644 .changeset/four-cooks-serve.md delete mode 100644 .changeset/fresh-crews-impress.md delete mode 100644 .changeset/funny-bees-taste.md delete mode 100644 .changeset/funny-cars-jump.md delete mode 100644 .changeset/fuzzy-seahorses-tell.md delete mode 100644 .changeset/giant-donkeys-talk.md delete mode 100644 .changeset/gold-waves-bake.md delete mode 100644 .changeset/gorgeous-cameras-cross.md delete mode 100644 .changeset/green-adults-push.md delete mode 100644 .changeset/green-boxes-rescue.md delete mode 100644 .changeset/grumpy-toes-tap.md delete mode 100644 .changeset/happy-radios-kiss.md delete mode 100644 .changeset/healthy-dots-ring.md delete mode 100644 .changeset/healthy-shirts-roll.md delete mode 100644 .changeset/heavy-trainers-fly.md delete mode 100644 .changeset/hip-carrots-drive.md delete mode 100644 .changeset/hot-forks-train.md delete mode 100644 .changeset/itchy-gorillas-hope.md delete mode 100644 .changeset/itchy-keys-wonder.md delete mode 100644 .changeset/kind-toes-scream.md delete mode 100644 .changeset/late-planes-fix.md delete mode 100644 .changeset/lazy-phones-worry.md delete mode 100644 .changeset/little-rockets-live.md delete mode 100644 .changeset/loud-frogs-eat.md delete mode 100644 .changeset/loud-timers-flow.md delete mode 100644 .changeset/loud-vans-greet.md delete mode 100644 .changeset/lovely-games-cry.md delete mode 100644 .changeset/lucky-news-guess.md delete mode 100644 .changeset/mean-ravens-dance.md delete mode 100644 .changeset/metal-years-rhyme.md delete mode 100644 .changeset/modern-radios-guess.md delete mode 100644 .changeset/nasty-papayas-heal.md delete mode 100644 .changeset/nervous-mayflies-float.md delete mode 100644 .changeset/new-poets-promise.md delete mode 100644 .changeset/nice-scissors-jog.md delete mode 100644 .changeset/olive-pants-leave.md delete mode 100644 .changeset/olive-rockets-drum.md delete mode 100644 .changeset/orange-numbers-think.md delete mode 100644 .changeset/perfect-beers-explode.md delete mode 100644 .changeset/perfect-points-hope.md delete mode 100644 .changeset/pink-nails-warn.md delete mode 100644 .changeset/pink-years-peel.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/proud-comics-love.md delete mode 100644 .changeset/proud-doors-cheat.md delete mode 100644 .changeset/purple-parents-sin.md delete mode 100644 .changeset/purple-waves-smile.md delete mode 100644 .changeset/quick-cats-argue.md delete mode 100644 .changeset/quiet-boxes-build.md delete mode 100644 .changeset/rare-fireants-tickle.md delete mode 100644 .changeset/real-crabs-obey.md delete mode 100644 .changeset/red-mangos-fly.md delete mode 100644 .changeset/renovate-0d0bd5c.md delete mode 100644 .changeset/renovate-228c530.md delete mode 100644 .changeset/rich-adults-float.md delete mode 100644 .changeset/selfish-pigs-glow.md delete mode 100644 .changeset/selfish-walls-visit.md delete mode 100644 .changeset/sharp-glasses-live.md delete mode 100644 .changeset/shy-students-clap.md delete mode 100644 .changeset/silent-wombats-hang.md delete mode 100644 .changeset/six-scissors-smile.md delete mode 100644 .changeset/sixty-bears-camp.md delete mode 100644 .changeset/slimy-donkeys-laugh.md delete mode 100644 .changeset/slimy-kids-behave.md delete mode 100644 .changeset/smart-avocados-invent.md delete mode 100644 .changeset/smooth-garlics-behave.md delete mode 100644 .changeset/sour-socks-approve.md delete mode 100644 .changeset/strange-rocks-study.md delete mode 100644 .changeset/stupid-onions-know.md delete mode 100644 .changeset/sweet-spiders-rhyme.md delete mode 100644 .changeset/sweet-zoos-clap.md delete mode 100644 .changeset/swift-humans-hunt.md delete mode 100644 .changeset/tall-ads-shave.md delete mode 100644 .changeset/tame-jars-double.md delete mode 100644 .changeset/tame-jokes-bow.md delete mode 100644 .changeset/tasty-apes-learn.md delete mode 100644 .changeset/tasty-moles-jog.md delete mode 100644 .changeset/tasty-rats-explain.md delete mode 100644 .changeset/tender-falcons-add.md delete mode 100644 .changeset/thick-llamas-itch.md delete mode 100644 .changeset/thick-terms-rush.md delete mode 100644 .changeset/thirty-mangos-travel.md delete mode 100644 .changeset/tough-eggs-wink.md delete mode 100644 .changeset/tricky-cougars-shout.md delete mode 100644 .changeset/unlucky-days-play.md delete mode 100644 .changeset/unlucky-rivers-collect.md delete mode 100644 .changeset/warm-fans-promise.md delete mode 100644 .changeset/wet-files-pretend.md delete mode 100644 .changeset/wild-cats-hug.md delete mode 100644 .changeset/wild-seahorses-grin.md delete mode 100644 .changeset/young-guests-reflect.md delete mode 100644 .changeset/young-olives-drop.md create mode 100644 docs/releases/v1.27.0-changelog.md diff --git a/.changeset/afraid-ghosts-watch.md b/.changeset/afraid-ghosts-watch.md deleted file mode 100644 index b277baaff1..0000000000 --- a/.changeset/afraid-ghosts-watch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': patch ---- - -Fix never resolved indexer promise. diff --git a/.changeset/afraid-needles-divide.md b/.changeset/afraid-needles-divide.md deleted file mode 100644 index 6db7f449b0..0000000000 --- a/.changeset/afraid-needles-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. diff --git a/.changeset/blue-hotels-shake.md b/.changeset/blue-hotels-shake.md deleted file mode 100644 index 3d55aacffa..0000000000 --- a/.changeset/blue-hotels-shake.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-scaffolder-common': patch -'@backstage/plugin-scaffolder-react': patch -'@backstage/plugin-scaffolder': patch ---- - -Capturing more event clicks for scaffolder diff --git a/.changeset/brave-carrots-glow.md b/.changeset/brave-carrots-glow.md deleted file mode 100644 index b4493bf4f6..0000000000 --- a/.changeset/brave-carrots-glow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-node': minor ---- - -Added `LocationAnalyzer` type, moved from `@backstage/plugin-catalog-backend`. diff --git a/.changeset/brave-planets-raise.md b/.changeset/brave-planets-raise.md deleted file mode 100644 index 9aec85ae6e..0000000000 --- a/.changeset/brave-planets-raise.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-user-settings': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-catalog': patch ---- - -Fix broken links in README. diff --git a/.changeset/bright-pumpkins-rule.md b/.changeset/bright-pumpkins-rule.md deleted file mode 100644 index 07de4f313c..0000000000 --- a/.changeset/bright-pumpkins-rule.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Allow overriding `NotificationsPage` page properties diff --git a/.changeset/chatty-cycles-unite.md b/.changeset/chatty-cycles-unite.md deleted file mode 100644 index 93dffbb143..0000000000 --- a/.changeset/chatty-cycles-unite.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-github': patch -'@backstage/core-compat-api': patch -'@backstage/create-app': patch -'@backstage/plugin-api-docs': patch -'@backstage/plugin-catalog': patch ---- - -Update local development dependencies. diff --git a/.changeset/chilly-adults-sing.md b/.changeset/chilly-adults-sing.md deleted file mode 100644 index 82f4cb88b2..0000000000 --- a/.changeset/chilly-adults-sing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Add lifecycle monitoring for the catalog processing diff --git a/.changeset/chilly-fireants-roll.md b/.changeset/chilly-fireants-roll.md deleted file mode 100644 index 93c05fecb7..0000000000 --- a/.changeset/chilly-fireants-roll.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home': patch ---- - -Use relative time when displaying visits from the same day diff --git a/.changeset/chilly-shoes-doubt.md b/.changeset/chilly-shoes-doubt.md deleted file mode 100644 index 978600f5b4..0000000000 --- a/.changeset/chilly-shoes-doubt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-msgraph': patch ---- - -Fixed disabling of user photo fetching. Previously, the config value wasn't propagated properly, so user photos was still being fetched despite disabled by config. diff --git a/.changeset/clean-pants-camp.md b/.changeset/clean-pants-camp.md deleted file mode 100644 index 2070305a6d..0000000000 --- a/.changeset/clean-pants-camp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-ldap': patch ---- - -Remove dependency to Winston Logger and use Backstage LoggerService instead diff --git a/.changeset/cli-postpack-schmostschmack.md b/.changeset/cli-postpack-schmostschmack.md deleted file mode 100644 index 2500c89a8c..0000000000 --- a/.changeset/cli-postpack-schmostschmack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The `build-workspace` command no longer manually runs `yarn postpack`, relying instead on the fact that running `yarn pack` will automatically invoke the `postpack` script. No action is necessary if you are running the latest version of yarn 1, 3, or 4. diff --git a/.changeset/cold-cougars-float.md b/.changeset/cold-cougars-float.md deleted file mode 100644 index 1ddc78a34b..0000000000 --- a/.changeset/cold-cougars-float.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-unprocessed': patch -'@backstage/backend-dynamic-feature-service': patch -'@backstage/plugin-search-backend-module-catalog': patch ---- - -Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. diff --git a/.changeset/cold-rats-leave.md b/.changeset/cold-rats-leave.md deleted file mode 100644 index 6fe28d6371..0000000000 --- a/.changeset/cold-rats-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Fix issue with the log format not being respected when logging from actions diff --git a/.changeset/cool-elephants-march.md b/.changeset/cool-elephants-march.md deleted file mode 100644 index 2396f9553d..0000000000 --- a/.changeset/cool-elephants-march.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitea': patch ---- - -Allow defining `repoVisibility` field for the action `publish:gitea` diff --git a/.changeset/cool-garlics-clap.md b/.changeset/cool-garlics-clap.md deleted file mode 100644 index 223d0a1233..0000000000 --- a/.changeset/cool-garlics-clap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Properly log the `errorInfo` in `ErrorBoundary` diff --git a/.changeset/create-app-1714476054.md b/.changeset/create-app-1714476054.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1714476054.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1715088359.md b/.changeset/create-app-1715088359.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1715088359.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/cuddly-chairs-kick.md b/.changeset/cuddly-chairs-kick.md deleted file mode 100644 index ebb53b8e26..0000000000 --- a/.changeset/cuddly-chairs-kick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service diff --git a/.changeset/curly-shirts-flow.md b/.changeset/curly-shirts-flow.md deleted file mode 100644 index b9a73809ba..0000000000 --- a/.changeset/curly-shirts-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Update the paths logic in the api reports command to support complex subpaths diff --git a/.changeset/curvy-planes-flash.md b/.changeset/curvy-planes-flash.md deleted file mode 100644 index 0d3368e53d..0000000000 --- a/.changeset/curvy-planes-flash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch ---- - -Allow skipping archived repositories (`skipArchivedRepos` flag) on Bitbucket. diff --git a/.changeset/cyan-eagles-hammer.md b/.changeset/cyan-eagles-hammer.md deleted file mode 100644 index dfe6f0bc62..0000000000 --- a/.changeset/cyan-eagles-hammer.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-notifications-backend-module-email': patch -'@backstage/plugin-notifications-backend': patch ---- - -Fixed email processor `esm` issue and config reading diff --git a/.changeset/cyan-suns-shave.md b/.changeset/cyan-suns-shave.md deleted file mode 100644 index 09e51d9548..0000000000 --- a/.changeset/cyan-suns-shave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-unprocessed': patch ---- - -Correctly convert owner to string in case owner has not been provided diff --git a/.changeset/dirty-chairs-march.md b/.changeset/dirty-chairs-march.md deleted file mode 100644 index c4e22657a6..0000000000 --- a/.changeset/dirty-chairs-march.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitlab': patch ---- - -Add merge method and squash option for project creation diff --git a/.changeset/dry-sloths-impress.md b/.changeset/dry-sloths-impress.md deleted file mode 100644 index 6bd5ba4156..0000000000 --- a/.changeset/dry-sloths-impress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/catalog-model': minor ---- - -Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. diff --git a/.changeset/early-starfishes-hammer.md b/.changeset/early-starfishes-hammer.md deleted file mode 100644 index abe17e85a2..0000000000 --- a/.changeset/early-starfishes-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -Deprecated the `LocationAnalyzer` type, which has been moved to `@backstage/plugin-catalog-node`. diff --git a/.changeset/eighty-apricots-kneel.md b/.changeset/eighty-apricots-kneel.md deleted file mode 100644 index a9cabaf378..0000000000 --- a/.changeset/eighty-apricots-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@techdocs/cli': patch ---- - -Fix cookie endpoint mock for `serve` diff --git a/.changeset/eighty-bats-stare.md b/.changeset/eighty-bats-stare.md deleted file mode 100644 index 6ebb2e9265..0000000000 --- a/.changeset/eighty-bats-stare.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Update path in Readme for Plugin Techdocs to show the correct setup information. diff --git a/.changeset/eleven-pandas-divide.md b/.changeset/eleven-pandas-divide.md deleted file mode 100644 index 912d34570a..0000000000 --- a/.changeset/eleven-pandas-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gitlab': patch ---- - -Added events support for `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider`. diff --git a/.changeset/empty-beers-relax.md b/.changeset/empty-beers-relax.md deleted file mode 100644 index bbfcef0933..0000000000 --- a/.changeset/empty-beers-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Added `HarnessURLReader` with `readUrl` support. diff --git a/.changeset/famous-crabs-laugh.md b/.changeset/famous-crabs-laugh.md deleted file mode 100644 index 282cbb9f93..0000000000 --- a/.changeset/famous-crabs-laugh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Preparing for a stable new backend system release, we are deprecating utilities in the `backend-common` that are not used by the core framework, such as the isomorphic `Git` class. As we will no longer support the isomorphic `Git` utility in the framework packages, we recommend plugins that start maintaining their own implementation of this class. diff --git a/.changeset/few-vans-cross.md b/.changeset/few-vans-cross.md deleted file mode 100644 index d7a12f6c10..0000000000 --- a/.changeset/few-vans-cross.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Plugins created through the `legacyPlugin` helper are now able to authenticate requests from plugins that are fully implemented using the new backend system. This fixes the `Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array` error. diff --git a/.changeset/five-cows-crash.md b/.changeset/five-cows-crash.md deleted file mode 100644 index 2c298dbad3..0000000000 --- a/.changeset/five-cows-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-import': minor ---- - -`EntityListComponent` uses `entityPresentationApi` instead of `humanizeEntityRef` to display Entity diff --git a/.changeset/fix-stackoverflow.md b/.changeset/fix-stackoverflow.md deleted file mode 100644 index 6ce9f15737..0000000000 --- a/.changeset/fix-stackoverflow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch ---- - -Fix plugin/incremental-ingestion 'Maximum call stack size exceeded' error when ingest large entities. diff --git a/.changeset/flat-countries-clap.md b/.changeset/flat-countries-clap.md deleted file mode 100644 index 9c962b04a3..0000000000 --- a/.changeset/flat-countries-clap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': minor ---- - -Adds 2 new commands `repo schema openapi diff` and `package schema openapi diff`. `repo schema openapi diff` is intended to power a new breaking changes check on pull requests and the package level command allows plugin developers to quickly see new API breaking changes. They're intended to be used in complement with the existing `repo schema openapi verify` command to validate your OpenAPI spec against a variety of things. diff --git a/.changeset/fluffy-hotels-wait.md b/.changeset/fluffy-hotels-wait.md deleted file mode 100644 index a578f2fb4a..0000000000 --- a/.changeset/fluffy-hotels-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Both the target and types library have been bumped from ES2021 to ES2022 in `@backstage/cli/config/tsconfig.json`. diff --git a/.changeset/four-cooks-serve.md b/.changeset/four-cooks-serve.md deleted file mode 100644 index 864807cc49..0000000000 --- a/.changeset/four-cooks-serve.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-notifications-backend': patch -'@backstage/plugin-notifications-node': patch ---- - -Support for filtering entities from notification recipients after resolving them from the recipients diff --git a/.changeset/fresh-crews-impress.md b/.changeset/fresh-crews-impress.md deleted file mode 100644 index 18f98f1dd9..0000000000 --- a/.changeset/fresh-crews-impress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Move the JWKS registration outside of the lifecycle middleware diff --git a/.changeset/funny-bees-taste.md b/.changeset/funny-bees-taste.md deleted file mode 100644 index a9b2d84997..0000000000 --- a/.changeset/funny-bees-taste.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -The user can newly mark all unread messages as read at one click. diff --git a/.changeset/funny-cars-jump.md b/.changeset/funny-cars-jump.md deleted file mode 100644 index c67204d68c..0000000000 --- a/.changeset/funny-cars-jump.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/backend-dynamic-feature-service': patch -'@backstage/plugin-scaffolder-backend-module-github': patch -'@backstage/plugin-scaffolder-backend-module-gitlab': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-notifications-backend': patch -'@backstage/plugin-user-settings-backend': patch -'@backstage/backend-plugin-api': patch -'@backstage/backend-test-utils': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/backend-app-api': patch -'@backstage/backend-common': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-scaffolder-node': patch -'@backstage/backend-tasks': patch -'@backstage/plugin-techdocs-node': patch -'@backstage/plugin-auth-backend': patch -'@backstage/repo-tools': patch -'@backstage/plugin-app-backend': patch ---- - -Move path utilities from `backend-common` to the `backend-plugin-api` package. diff --git a/.changeset/fuzzy-seahorses-tell.md b/.changeset/fuzzy-seahorses-tell.md deleted file mode 100644 index f184e9ce95..0000000000 --- a/.changeset/fuzzy-seahorses-tell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Fixed an internal circular import that broke Jest mocks. diff --git a/.changeset/giant-donkeys-talk.md b/.changeset/giant-donkeys-talk.md deleted file mode 100644 index 62af2eb7e8..0000000000 --- a/.changeset/giant-donkeys-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications-backend-module-email': patch ---- - -Support relative links in notifications sent via email diff --git a/.changeset/gold-waves-bake.md b/.changeset/gold-waves-bake.md deleted file mode 100644 index 2883b7b967..0000000000 --- a/.changeset/gold-waves-bake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Add support for `versions:migrate` to do code changes. Can be skipped with `--no-code-changes` diff --git a/.changeset/gorgeous-cameras-cross.md b/.changeset/gorgeous-cameras-cross.md deleted file mode 100644 index 50d7ddb2d7..0000000000 --- a/.changeset/gorgeous-cameras-cross.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-addons-test-utils': patch ---- - -Fix bug in TechDocsAddonTester when jest.resetAllMocks is called between tests diff --git a/.changeset/green-adults-push.md b/.changeset/green-adults-push.md deleted file mode 100644 index 3edc21c385..0000000000 --- a/.changeset/green-adults-push.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Add preserveModules to rollup, which allows better async loading and tree-shaking in webpack diff --git a/.changeset/green-boxes-rescue.md b/.changeset/green-boxes-rescue.md deleted file mode 100644 index 146695a320..0000000000 --- a/.changeset/green-boxes-rescue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications-backend-module-email': patch ---- - -Allow sending notifications by email with the new notifications module diff --git a/.changeset/grumpy-toes-tap.md b/.changeset/grumpy-toes-tap.md deleted file mode 100644 index ff3fbbf2df..0000000000 --- a/.changeset/grumpy-toes-tap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-devtools-backend': patch ---- - -Added discovery property to the readme documentation to ensure that it will build when setting it up as new to a Backstage instance diff --git a/.changeset/happy-radios-kiss.md b/.changeset/happy-radios-kiss.md deleted file mode 100644 index 1097c832d8..0000000000 --- a/.changeset/happy-radios-kiss.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -The `/alpha` plugin export has had its implementation of the `catalogAnalysisExtensionPoint` updated to reflect the new API. diff --git a/.changeset/healthy-dots-ring.md b/.changeset/healthy-dots-ring.md deleted file mode 100644 index 005e7e6616..0000000000 --- a/.changeset/healthy-dots-ring.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder-node': patch ---- - -Scaffolder workspace serialization diff --git a/.changeset/healthy-shirts-roll.md b/.changeset/healthy-shirts-roll.md deleted file mode 100644 index aec74a1181..0000000000 --- a/.changeset/healthy-shirts-roll.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-signals-backend': patch ---- - -Improved signal lifecycle management and added server side pinging of connections diff --git a/.changeset/heavy-trainers-fly.md b/.changeset/heavy-trainers-fly.md deleted file mode 100644 index 48560b7ddd..0000000000 --- a/.changeset/heavy-trainers-fly.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Added config prop `ensureSchemaExists` to support postgres instances where user can create schemas but not databases. diff --git a/.changeset/hip-carrots-drive.md b/.changeset/hip-carrots-drive.md deleted file mode 100644 index 5852916b74..0000000000 --- a/.changeset/hip-carrots-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. diff --git a/.changeset/hot-forks-train.md b/.changeset/hot-forks-train.md deleted file mode 100644 index a5300085b6..0000000000 --- a/.changeset/hot-forks-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Allow showing notifications as snackbars in the UI diff --git a/.changeset/itchy-gorillas-hope.md b/.changeset/itchy-gorillas-hope.md deleted file mode 100644 index cd285161ff..0000000000 --- a/.changeset/itchy-gorillas-hope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. diff --git a/.changeset/itchy-keys-wonder.md b/.changeset/itchy-keys-wonder.md deleted file mode 100644 index 879dc096a4..0000000000 --- a/.changeset/itchy-keys-wonder.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch -'@backstage/backend-app-api': patch ---- - -Redact `meta` fields too with the logger diff --git a/.changeset/kind-toes-scream.md b/.changeset/kind-toes-scream.md deleted file mode 100644 index d634f17ce4..0000000000 --- a/.changeset/kind-toes-scream.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The `versions:bump` command will no longer exit with a non-zero status if the version bump fails due to forbidden duplicate package installations. It will now also provide more information about how to troubleshoot such an error. The set of forbidden duplicates has also been expanded to include all `@backstage/*-app-api` packages. diff --git a/.changeset/late-planes-fix.md b/.changeset/late-planes-fix.md deleted file mode 100644 index a57d7ec1d4..0000000000 --- a/.changeset/late-planes-fix.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch -'@backstage/plugin-search-backend': patch ---- - -Add lifecycle monitoring for the search index registry diff --git a/.changeset/lazy-phones-worry.md b/.changeset/lazy-phones-worry.md deleted file mode 100644 index 2c64f81f2c..0000000000 --- a/.changeset/lazy-phones-worry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/frontend-app-api': minor ---- - -Extensions in app-config now always affect ordering. Previously, only when enabling disabled extensions did they rise to the top. diff --git a/.changeset/little-rockets-live.md b/.changeset/little-rockets-live.md deleted file mode 100644 index 767fda917e..0000000000 --- a/.changeset/little-rockets-live.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-aws-alb-provider': patch -'@backstage/plugin-auth-backend-module-github-provider': patch -'@backstage/plugin-auth-backend': patch ---- - -fix: Move config declarations to appropriate auth backend modules diff --git a/.changeset/loud-frogs-eat.md b/.changeset/loud-frogs-eat.md deleted file mode 100644 index dd1ab978f1..0000000000 --- a/.changeset/loud-frogs-eat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitlab': patch ---- - -Add examples for `gitlab:repo:push` scaffolder action & improve related tests diff --git a/.changeset/loud-timers-flow.md b/.changeset/loud-timers-flow.md deleted file mode 100644 index d7d0d96970..0000000000 --- a/.changeset/loud-timers-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Remove explicit `alg` check for user tokens in `verifyToken` diff --git a/.changeset/loud-vans-greet.md b/.changeset/loud-vans-greet.md deleted file mode 100644 index 732413174b..0000000000 --- a/.changeset/loud-vans-greet.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Internal refactor to only create one external token handler diff --git a/.changeset/lovely-games-cry.md b/.changeset/lovely-games-cry.md deleted file mode 100644 index 5209b93496..0000000000 --- a/.changeset/lovely-games-cry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-react': patch ---- - -When using `CookieAuthRefreshProvider` or `useCookieAuthRefresh`, a 404 response from the cookie endpoint will now be treated as if cookie auth is disabled and is not needed. diff --git a/.changeset/lucky-news-guess.md b/.changeset/lucky-news-guess.md deleted file mode 100644 index 9c2cc4e8b0..0000000000 --- a/.changeset/lucky-news-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch ---- - -Add examples for `publish:bitbucketServer:pull-request` scaffolder action & improve related tests diff --git a/.changeset/mean-ravens-dance.md b/.changeset/mean-ravens-dance.md deleted file mode 100644 index 061e12cd9e..0000000000 --- a/.changeset/mean-ravens-dance.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/backend-common': minor ---- - -Internal refactor of the database code. - -**BREAKING**: The helper functions `createDatabaseClient` and `ensureDatabaseExists` have been removed from the public interface, since they have no usage within the repository and never were suitable for calling from the outside. Please consider using `coreServices.database` or `DatabaseManager` directly wherever possible instead. diff --git a/.changeset/metal-years-rhyme.md b/.changeset/metal-years-rhyme.md deleted file mode 100644 index 9c6daebdac..0000000000 --- a/.changeset/metal-years-rhyme.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs-backend': patch -'@backstage/plugin-techdocs': patch ---- - -The `techdocs.builder` config is now optional and it will default to `local`. diff --git a/.changeset/modern-radios-guess.md b/.changeset/modern-radios-guess.md deleted file mode 100644 index 8b68ebcdf4..0000000000 --- a/.changeset/modern-radios-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/eslint-plugin': patch ---- - -add some `pickers` fixes diff --git a/.changeset/nasty-papayas-heal.md b/.changeset/nasty-papayas-heal.md deleted file mode 100644 index 0e8e3f7ccc..0000000000 --- a/.changeset/nasty-papayas-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-github': patch ---- - -Adding support to change the default commit author for `publish:github:pull-request` diff --git a/.changeset/nervous-mayflies-float.md b/.changeset/nervous-mayflies-float.md deleted file mode 100644 index e8d29be280..0000000000 --- a/.changeset/nervous-mayflies-float.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Only create a single actual connection to memcache/redis, even in cases where many `CacheService` instances are made diff --git a/.changeset/new-poets-promise.md b/.changeset/new-poets-promise.md deleted file mode 100644 index 206bf3e0d8..0000000000 --- a/.changeset/new-poets-promise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-notifications': patch ---- - -Add a new scaffolder action to allow sending notifications from templates diff --git a/.changeset/nice-scissors-jog.md b/.changeset/nice-scissors-jog.md deleted file mode 100644 index 7065a9e63f..0000000000 --- a/.changeset/nice-scissors-jog.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Show all notifications by default to match the sidebar item status diff --git a/.changeset/olive-pants-leave.md b/.changeset/olive-pants-leave.md deleted file mode 100644 index e14cc69912..0000000000 --- a/.changeset/olive-pants-leave.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Added support for camel case CSP directives in app-config. For example: - -```yaml -backend: - csp: - upgradeInsecureRequests: false -``` diff --git a/.changeset/olive-rockets-drum.md b/.changeset/olive-rockets-drum.md deleted file mode 100644 index e28ba6101a..0000000000 --- a/.changeset/olive-rockets-drum.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -`MultiEntityPicker` uses `EntityDisplayName` instead of `humanizeEntityRef` to display entity. diff --git a/.changeset/orange-numbers-think.md b/.changeset/orange-numbers-think.md deleted file mode 100644 index 21dc7ce76b..0000000000 --- a/.changeset/orange-numbers-think.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-catalog': patch ---- - -Fix wiring of the module exported at the `/alpha` path, which was causing authentication failures. diff --git a/.changeset/perfect-beers-explode.md b/.changeset/perfect-beers-explode.md deleted file mode 100644 index 3045ca7f12..0000000000 --- a/.changeset/perfect-beers-explode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Increase default and allow modifying notification snackbar auto hide duration diff --git a/.changeset/perfect-points-hope.md b/.changeset/perfect-points-hope.md deleted file mode 100644 index cfc42f77a3..0000000000 --- a/.changeset/perfect-points-hope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-oidc-provider': patch ---- - -Add nonce to authorize request to be added in ID token diff --git a/.changeset/pink-nails-warn.md b/.changeset/pink-nails-warn.md deleted file mode 100644 index 6bdbf465b0..0000000000 --- a/.changeset/pink-nails-warn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Added logging of all plugins being initialized, periodic status, and completion. diff --git a/.changeset/pink-years-peel.md b/.changeset/pink-years-peel.md deleted file mode 100644 index 339889f27e..0000000000 --- a/.changeset/pink-years-peel.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -GitHub push events now schedule a refresh on entities that have a `refresh_key` matching the `catalogPath` config itself. -This allows to support a `catalogPath` configuration that uses glob patterns. diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 8c72a9d481..0000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,395 +0,0 @@ -{ - "mode": "exit", - "tag": "next", - "initialVersions": { - "example-app": "0.2.96", - "@backstage/app-defaults": "1.5.4", - "example-app-next": "0.0.10", - "app-next-example-plugin": "0.0.10", - "example-backend": "0.2.97", - "@backstage/backend-app-api": "0.7.0", - "@backstage/backend-common": "0.21.7", - "@backstage/backend-defaults": "0.2.17", - "@backstage/backend-dev-utils": "0.1.4", - "@backstage/backend-dynamic-feature-service": "0.2.9", - "example-backend-next": "0.0.25", - "@backstage/backend-openapi-utils": "0.1.10", - "@backstage/backend-plugin-api": "0.6.17", - "@backstage/backend-tasks": "0.5.22", - "@backstage/backend-test-utils": "0.3.7", - "@backstage/catalog-client": "1.6.4", - "@backstage/catalog-model": "1.4.5", - "@backstage/cli": "0.26.3", - "@backstage/cli-common": "0.1.13", - "@backstage/cli-node": "0.2.5", - "@backstage/codemods": "0.1.48", - "@backstage/config": "1.2.0", - "@backstage/config-loader": "1.8.0", - "@backstage/core-app-api": "1.12.4", - "@backstage/core-compat-api": "0.2.4", - "@backstage/core-components": "0.14.4", - "@backstage/core-plugin-api": "1.9.2", - "@backstage/create-app": "0.5.14", - "@backstage/dev-utils": "1.0.31", - "e2e-test": "0.2.15", - "@backstage/e2e-test-utils": "0.1.1", - "@backstage/errors": "1.2.4", - "@backstage/eslint-plugin": "0.1.7", - "@backstage/frontend-app-api": "0.6.4", - "@backstage/frontend-plugin-api": "0.6.4", - "@backstage/frontend-test-utils": "0.1.6", - "@backstage/integration": "1.10.0", - "@backstage/integration-aws-node": "0.1.12", - "@backstage/integration-react": "1.1.26", - "@backstage/release-manifests": "0.0.11", - "@backstage/repo-tools": "0.8.0", - "@techdocs/cli": "1.8.9", - "techdocs-cli-embedded-app": "0.2.95", - "@backstage/test-utils": "1.5.4", - "@backstage/theme": "0.5.3", - "@backstage/types": "1.1.1", - "@backstage/version-bridge": "1.0.8", - "@backstage/plugin-adr": "0.6.17", - "@backstage/plugin-adr-backend": "0.4.14", - "@backstage/plugin-adr-common": "0.2.22", - "@backstage/plugin-airbrake": "0.3.34", - "@backstage/plugin-airbrake-backend": "0.3.14", - "@backstage/plugin-allure": "0.1.50", - "@backstage/plugin-analytics-module-ga": "0.2.4", - "@backstage/plugin-analytics-module-ga4": "0.2.4", - "@backstage/plugin-analytics-module-newrelic-browser": "0.1.4", - "@backstage/plugin-apache-airflow": "0.2.24", - "@backstage/plugin-api-docs": "0.11.4", - "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.6", - "@backstage/plugin-apollo-explorer": "0.2.0", - "@backstage/plugin-app-backend": "0.3.65", - "@backstage/plugin-app-node": "0.1.17", - "@backstage/plugin-app-visualizer": "0.1.5", - "@backstage/plugin-auth-backend": "0.22.4", - "@backstage/plugin-auth-backend-module-atlassian-provider": "0.1.9", - "@backstage/plugin-auth-backend-module-aws-alb-provider": "0.1.9", - "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-bitbucket-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.2.12", - "@backstage/plugin-auth-backend-module-github-provider": "0.1.14", - "@backstage/plugin-auth-backend-module-gitlab-provider": "0.1.14", - "@backstage/plugin-auth-backend-module-google-provider": "0.1.14", - "@backstage/plugin-auth-backend-module-guest-provider": "0.1.3", - "@backstage/plugin-auth-backend-module-microsoft-provider": "0.1.12", - "@backstage/plugin-auth-backend-module-oauth2-provider": "0.1.14", - "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.1.10", - "@backstage/plugin-auth-backend-module-oidc-provider": "0.1.8", - "@backstage/plugin-auth-backend-module-okta-provider": "0.0.10", - "@backstage/plugin-auth-backend-module-pinniped-provider": "0.1.11", - "@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.1.9", - "@backstage/plugin-auth-node": "0.4.12", - "@backstage/plugin-auth-react": "0.1.0", - "@backstage/plugin-azure-devops": "0.4.3", - "@backstage/plugin-azure-devops-backend": "0.6.4", - "@backstage/plugin-azure-devops-common": "0.4.1", - "@backstage/plugin-azure-sites": "0.1.23", - "@backstage/plugin-azure-sites-backend": "0.3.4", - "@backstage/plugin-azure-sites-common": "0.1.3", - "@backstage/plugin-badges": "0.2.58", - "@backstage/plugin-badges-backend": "0.4.0", - "@backstage/plugin-bazaar": "0.2.26", - "@backstage/plugin-bazaar-backend": "0.3.15", - "@backstage/plugin-bitbucket-cloud-common": "0.2.18", - "@backstage/plugin-bitrise": "0.1.61", - "@backstage/plugin-catalog": "1.19.0", - "@backstage/plugin-catalog-backend": "1.21.1", - "@backstage/plugin-catalog-backend-module-aws": "0.3.12", - "@backstage/plugin-catalog-backend-module-azure": "0.1.37", - "@backstage/plugin-catalog-backend-module-backstage-openapi": "0.2.0", - "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.2.4", - "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.31", - "@backstage/plugin-catalog-backend-module-gcp": "0.1.18", - "@backstage/plugin-catalog-backend-module-gerrit": "0.1.34", - "@backstage/plugin-catalog-backend-module-github": "0.6.0", - "@backstage/plugin-catalog-backend-module-github-org": "0.1.12", - "@backstage/plugin-catalog-backend-module-gitlab": "0.3.15", - "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.22", - "@backstage/plugin-catalog-backend-module-ldap": "0.5.33", - "@backstage/plugin-catalog-backend-module-msgraph": "0.5.25", - "@backstage/plugin-catalog-backend-module-openapi": "0.1.35", - "@backstage/plugin-catalog-backend-module-puppetdb": "0.1.23", - "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.1.15", - "@backstage/plugin-catalog-backend-module-unprocessed": "0.4.4", - "@backstage/plugin-catalog-common": "1.0.22", - "@backstage/plugin-catalog-graph": "0.4.4", - "@backstage/plugin-catalog-import": "0.10.10", - "@backstage/plugin-catalog-node": "1.11.1", - "@backstage/plugin-catalog-react": "1.11.3", - "@backstage/plugin-catalog-unprocessed-entities": "0.2.3", - "@backstage/plugin-catalog-unprocessed-entities-common": "0.0.1", - "@backstage/plugin-cicd-statistics": "0.1.36", - "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.30", - "@backstage/plugin-circleci": "0.3.34", - "@backstage/plugin-cloudbuild": "0.5.1", - "@backstage/plugin-code-climate": "0.1.34", - "@backstage/plugin-code-coverage": "0.2.27", - "@backstage/plugin-code-coverage-backend": "0.2.31", - "@backstage/plugin-codescene": "0.1.26", - "@backstage/plugin-config-schema": "0.1.54", - "@backstage/plugin-cost-insights": "0.12.23", - "@backstage/plugin-cost-insights-common": "0.1.2", - "@backstage/plugin-devtools": "0.1.13", - "@backstage/plugin-devtools-backend": "0.3.3", - "@backstage/plugin-devtools-common": "0.1.9", - "@backstage/plugin-dynatrace": "10.0.3", - "@backstage/plugin-entity-feedback": "0.2.17", - "@backstage/plugin-entity-feedback-backend": "0.2.14", - "@backstage/plugin-entity-feedback-common": "0.1.3", - "@backstage/plugin-entity-validation": "0.1.19", - "@backstage/plugin-events-backend": "0.3.4", - "@backstage/plugin-events-backend-module-aws-sqs": "0.3.3", - "@backstage/plugin-events-backend-module-azure": "0.2.3", - "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.3", - "@backstage/plugin-events-backend-module-gerrit": "0.2.3", - "@backstage/plugin-events-backend-module-github": "0.2.3", - "@backstage/plugin-events-backend-module-gitlab": "0.2.3", - "@backstage/plugin-events-backend-test-utils": "0.1.27", - "@backstage/plugin-events-node": "0.3.3", - "@internal/plugin-todo-list": "1.0.26", - "@internal/plugin-todo-list-backend": "1.0.26", - "@internal/plugin-todo-list-common": "1.0.18", - "@backstage/plugin-explore": "0.4.20", - "@backstage/plugin-explore-backend": "0.0.27", - "@backstage/plugin-explore-common": "0.0.2", - "@backstage/plugin-explore-react": "0.0.38", - "@backstage/plugin-firehydrant": "0.2.18", - "@backstage/plugin-fossa": "0.2.66", - "@backstage/plugin-gcalendar": "0.3.27", - "@backstage/plugin-gcp-projects": "0.3.50", - "@backstage/plugin-git-release-manager": "0.3.46", - "@backstage/plugin-github-actions": "0.6.15", - "@backstage/plugin-github-deployments": "0.1.65", - "@backstage/plugin-github-issues": "0.4.1", - "@backstage/plugin-github-pull-requests-board": "0.2.0", - "@backstage/plugin-gitops-profiles": "0.3.49", - "@backstage/plugin-gocd": "0.1.40", - "@backstage/plugin-graphiql": "0.3.7", - "@backstage/plugin-graphql-voyager": "0.1.16", - "@backstage/plugin-home": "0.7.3", - "@backstage/plugin-home-react": "0.1.12", - "@backstage/plugin-ilert": "0.2.23", - "@backstage/plugin-jenkins": "0.9.9", - "@backstage/plugin-jenkins-backend": "0.4.4", - "@backstage/plugin-jenkins-common": "0.1.25", - "@backstage/plugin-kafka": "0.3.34", - "@backstage/plugin-kafka-backend": "0.3.15", - "@backstage/plugin-kubernetes": "0.11.9", - "@backstage/plugin-kubernetes-backend": "0.17.0", - "@backstage/plugin-kubernetes-cluster": "0.0.10", - "@backstage/plugin-kubernetes-common": "0.7.5", - "@backstage/plugin-kubernetes-node": "0.1.11", - "@backstage/plugin-kubernetes-react": "0.3.4", - "@backstage/plugin-lighthouse": "0.4.19", - "@backstage/plugin-lighthouse-backend": "0.4.10", - "@backstage/plugin-lighthouse-common": "0.1.5", - "@backstage/plugin-linguist": "0.1.19", - "@backstage/plugin-linguist-backend": "0.5.15", - "@backstage/plugin-linguist-common": "0.1.2", - "@backstage/plugin-microsoft-calendar": "0.1.16", - "@backstage/plugin-newrelic": "0.3.49", - "@backstage/plugin-newrelic-dashboard": "0.3.9", - "@backstage/plugin-nomad": "0.1.15", - "@backstage/plugin-nomad-backend": "0.1.19", - "@backstage/plugin-notifications": "0.2.0", - "@backstage/plugin-notifications-backend": "0.2.0", - "@backstage/plugin-notifications-common": "0.0.3", - "@backstage/plugin-notifications-node": "0.1.3", - "@backstage/plugin-octopus-deploy": "0.2.16", - "@backstage/plugin-opencost": "0.2.9", - "@backstage/plugin-org": "0.6.24", - "@backstage/plugin-org-react": "0.1.23", - "@backstage/plugin-pagerduty": "0.7.6", - "@backstage/plugin-periskop": "0.1.32", - "@backstage/plugin-periskop-backend": "0.2.15", - "@backstage/plugin-permission-backend": "0.5.41", - "@backstage/plugin-permission-backend-module-allow-all-policy": "0.1.14", - "@backstage/plugin-permission-common": "0.7.13", - "@backstage/plugin-permission-node": "0.7.28", - "@backstage/plugin-permission-react": "0.4.22", - "@backstage/plugin-playlist": "0.2.8", - "@backstage/plugin-playlist-backend": "0.3.21", - "@backstage/plugin-playlist-common": "0.1.15", - "@backstage/plugin-proxy-backend": "0.4.15", - "@backstage/plugin-puppetdb": "0.1.17", - "@backstage/plugin-rollbar": "0.4.34", - "@backstage/plugin-rollbar-backend": "0.1.62", - "@backstage/plugin-scaffolder": "1.19.3", - "@backstage/plugin-scaffolder-backend": "1.22.4", - "@backstage/plugin-scaffolder-backend-module-azure": "0.1.9", - "@backstage/plugin-scaffolder-backend-module-bitbucket": "0.2.7", - "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.1.7", - "@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.1.7", - "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.18", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.41", - "@backstage/plugin-scaffolder-backend-module-gerrit": "0.1.9", - "@backstage/plugin-scaffolder-backend-module-gitea": "0.1.7", - "@backstage/plugin-scaffolder-backend-module-github": "0.2.7", - "@backstage/plugin-scaffolder-backend-module-gitlab": "0.3.3", - "@backstage/plugin-scaffolder-backend-module-rails": "0.4.34", - "@backstage/plugin-scaffolder-backend-module-sentry": "0.1.25", - "@backstage/plugin-scaffolder-backend-module-yeoman": "0.3.0", - "@backstage/plugin-scaffolder-common": "1.5.1", - "@backstage/plugin-scaffolder-node": "0.4.3", - "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", - "@backstage/plugin-scaffolder-react": "1.8.4", - "@backstage/plugin-search": "1.4.10", - "@backstage/plugin-search-backend": "1.5.7", - "@backstage/plugin-search-backend-module-catalog": "0.1.22", - "@backstage/plugin-search-backend-module-elasticsearch": "1.4.0", - "@backstage/plugin-search-backend-module-explore": "0.1.21", - "@backstage/plugin-search-backend-module-pg": "0.5.26", - "@backstage/plugin-search-backend-module-stack-overflow-collator": "0.1.10", - "@backstage/plugin-search-backend-module-techdocs": "0.1.22", - "@backstage/plugin-search-backend-node": "1.2.21", - "@backstage/plugin-search-common": "1.2.11", - "@backstage/plugin-search-react": "1.7.10", - "@backstage/plugin-sentry": "0.5.19", - "@backstage/plugin-shortcuts": "0.3.23", - "@backstage/plugin-signals": "0.0.5", - "@backstage/plugin-signals-backend": "0.1.3", - "@backstage/plugin-signals-node": "0.1.3", - "@backstage/plugin-signals-react": "0.0.3", - "@backstage/plugin-sonarqube": "0.7.16", - "@backstage/plugin-sonarqube-backend": "0.2.19", - "@backstage/plugin-sonarqube-react": "0.1.15", - "@backstage/plugin-splunk-on-call": "0.4.23", - "@backstage/plugin-stack-overflow": "0.1.29", - "@backstage/plugin-stack-overflow-backend": "0.2.21", - "@backstage/plugin-stackstorm": "0.1.15", - "@backstage/plugin-tech-insights": "0.3.26", - "@backstage/plugin-tech-insights-backend": "0.5.31", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.49", - "@backstage/plugin-tech-insights-common": "0.2.12", - "@backstage/plugin-tech-insights-node": "0.6.0", - "@backstage/plugin-tech-radar": "0.7.3", - "@backstage/plugin-techdocs": "1.10.4", - "@backstage/plugin-techdocs-addons-test-utils": "1.0.31", - "@backstage/plugin-techdocs-backend": "1.10.4", - "@backstage/plugin-techdocs-module-addons-contrib": "1.1.9", - "@backstage/plugin-techdocs-node": "1.12.3", - "@backstage/plugin-techdocs-react": "1.2.3", - "@backstage/plugin-todo": "0.2.38", - "@backstage/plugin-todo-backend": "0.3.16", - "@backstage/plugin-user-settings": "0.8.5", - "@backstage/plugin-user-settings-backend": "0.2.16", - "@backstage/plugin-vault": "0.1.29", - "@backstage/plugin-vault-backend": "0.4.10", - "@backstage/plugin-vault-node": "0.1.10", - "@backstage/plugin-xcmetrics": "0.2.52", - "@backstage/plugin-catalog-backend-module-gitlab-org": "0.0.0", - "@backstage/plugin-notifications-backend-module-email": "0.0.0", - "example-backend-legacy": "0.2.98-next.1", - "@backstage/plugin-scaffolder-backend-module-notifications": "0.0.0" - }, - "changesets": [ - "afraid-needles-divide", - "blue-hotels-shake", - "brave-carrots-glow", - "bright-pumpkins-rule", - "chatty-cycles-unite", - "chilly-adults-sing", - "chilly-fireants-roll", - "chilly-shoes-doubt", - "cold-cougars-float", - "cold-rats-leave", - "cool-elephants-march", - "create-app-1714476054", - "create-app-1715088359", - "cuddly-chairs-kick", - "curly-shirts-flow", - "curvy-planes-flash", - "cyan-eagles-hammer", - "cyan-suns-shave", - "dirty-chairs-march", - "dry-sloths-impress", - "early-starfishes-hammer", - "eighty-apricots-kneel", - "eighty-bats-stare", - "eleven-pandas-divide", - "empty-beers-relax", - "fix-stackoverflow", - "flat-countries-clap", - "fluffy-hotels-wait", - "four-cooks-serve", - "fresh-crews-impress", - "funny-bees-taste", - "fuzzy-seahorses-tell", - "giant-donkeys-talk", - "gold-waves-bake", - "gorgeous-cameras-cross", - "green-adults-push", - "green-boxes-rescue", - "grumpy-toes-tap", - "happy-radios-kiss", - "healthy-dots-ring", - "healthy-shirts-roll", - "heavy-trainers-fly", - "hip-carrots-drive", - "hot-forks-train", - "itchy-gorillas-hope", - "itchy-keys-wonder", - "kind-toes-scream", - "late-planes-fix", - "lazy-phones-worry", - "little-rockets-live", - "loud-frogs-eat", - "loud-timers-flow", - "loud-vans-greet", - "lovely-games-cry", - "lucky-news-guess", - "mean-ravens-dance", - "metal-years-rhyme", - "new-poets-promise", - "orange-numbers-think", - "perfect-beers-explode", - "perfect-points-hope", - "pink-years-peel", - "proud-comics-love", - "proud-doors-cheat", - "purple-parents-sin", - "purple-waves-smile", - "quick-cats-argue", - "quiet-boxes-build", - "rare-fireants-tickle", - "real-crabs-obey", - "renovate-0d0bd5c", - "rich-adults-float", - "selfish-pigs-glow", - "selfish-walls-visit", - "sharp-glasses-live", - "shy-students-clap", - "silent-wombats-hang", - "six-scissors-smile", - "sixty-bears-camp", - "slimy-kids-behave", - "smart-avocados-invent", - "smooth-garlics-behave", - "sour-socks-approve", - "stupid-onions-know", - "sweet-zoos-clap", - "swift-humans-hunt", - "tall-ads-shave", - "tame-jars-double", - "tasty-apes-learn", - "tasty-moles-jog", - "tasty-rats-explain", - "thick-llamas-itch", - "thick-terms-rush", - "thirty-mangos-travel", - "tough-eggs-wink", - "tricky-cougars-shout", - "unlucky-days-play", - "unlucky-rivers-collect", - "warm-fans-promise", - "wet-files-pretend", - "wild-seahorses-grin", - "young-guests-reflect", - "young-olives-drop" - ] -} diff --git a/.changeset/proud-comics-love.md b/.changeset/proud-comics-love.md deleted file mode 100644 index 6891bf937b..0000000000 --- a/.changeset/proud-comics-love.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-catalog-react': minor -'@backstage/plugin-catalog': minor ---- - -Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context. diff --git a/.changeset/proud-doors-cheat.md b/.changeset/proud-doors-cheat.md deleted file mode 100644 index 55ab7878d4..0000000000 --- a/.changeset/proud-doors-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/theme': patch ---- - -Fixed bug where scrollbars don't pick up the theme when in dark mode diff --git a/.changeset/purple-parents-sin.md b/.changeset/purple-parents-sin.md deleted file mode 100644 index 4de90893ef..0000000000 --- a/.changeset/purple-parents-sin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-backstage-openapi': patch ---- - -Fix incorrect dependency import. diff --git a/.changeset/purple-waves-smile.md b/.changeset/purple-waves-smile.md deleted file mode 100644 index 44da72ea70..0000000000 --- a/.changeset/purple-waves-smile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-guest-provider': patch ---- - -Error if used outside of a development environment without explicit allowance diff --git a/.changeset/quick-cats-argue.md b/.changeset/quick-cats-argue.md deleted file mode 100644 index 956f038f34..0000000000 --- a/.changeset/quick-cats-argue.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/backend-test-utils': patch -'@backstage/backend-defaults': patch -'@backstage/plugin-events-node': patch ---- - -added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used diff --git a/.changeset/quiet-boxes-build.md b/.changeset/quiet-boxes-build.md deleted file mode 100644 index c6f802d5b0..0000000000 --- a/.changeset/quiet-boxes-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-api-docs': patch ---- - -Fix dark mode text color inside tables in `description:` from OpenAPI definitions diff --git a/.changeset/rare-fireants-tickle.md b/.changeset/rare-fireants-tickle.md deleted file mode 100644 index 8668d4c287..0000000000 --- a/.changeset/rare-fireants-tickle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. diff --git a/.changeset/real-crabs-obey.md b/.changeset/real-crabs-obey.md deleted file mode 100644 index 9a52f0e5a6..0000000000 --- a/.changeset/real-crabs-obey.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-explore': patch ---- - -Migrate search collator to use the new auth services. diff --git a/.changeset/red-mangos-fly.md b/.changeset/red-mangos-fly.md deleted file mode 100644 index 73af978be2..0000000000 --- a/.changeset/red-mangos-fly.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github-org': patch ---- - -Fixed an issue where the `catalog-backend-module-github-org` would not correctly create groups using `default` as namespace in case a single organization was configured. diff --git a/.changeset/renovate-0d0bd5c.md b/.changeset/renovate-0d0bd5c.md deleted file mode 100644 index ac3fe697f9..0000000000 --- a/.changeset/renovate-0d0bd5c.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/plugin-home-react': patch -'@backstage/plugin-home': patch -'@backstage/plugin-scaffolder-react': patch -'@backstage/plugin-scaffolder': patch ---- - -Updated dependency `@rjsf/utils` to `5.18.2`. -Updated dependency `@rjsf/core` to `5.18.2`. -Updated dependency `@rjsf/material-ui` to `5.18.2`. -Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. diff --git a/.changeset/renovate-228c530.md b/.changeset/renovate-228c530.md deleted file mode 100644 index e1838b3481..0000000000 --- a/.changeset/renovate-228c530.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-bitbucket-cloud-common': patch ---- - -Updated dependency `ts-morph` to `^22.0.0`. diff --git a/.changeset/rich-adults-float.md b/.changeset/rich-adults-float.md deleted file mode 100644 index 5a9746b8f5..0000000000 --- a/.changeset/rich-adults-float.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Updated to use the new `catalogAnalysisExtensionPoint` API. diff --git a/.changeset/selfish-pigs-glow.md b/.changeset/selfish-pigs-glow.md deleted file mode 100644 index c7808c0283..0000000000 --- a/.changeset/selfish-pigs-glow.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch -'@backstage/plugin-auth-node': patch ---- - -Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` diff --git a/.changeset/selfish-walls-visit.md b/.changeset/selfish-walls-visit.md deleted file mode 100644 index 64c87a64f5..0000000000 --- a/.changeset/selfish-walls-visit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Add `alignGauge` prop to the `GaugeCard`, and a small size version. When `alignGauge` is `'bottom'` the gauge will vertically align the gauge in the cards, even when the card titles span across multiple lines. -Add `alignContent` prop to the `InfoCard`, defaulting to `'normal'` with the option of `'bottom'` which vertically aligns the content to the bottom of the card. diff --git a/.changeset/sharp-glasses-live.md b/.changeset/sharp-glasses-live.md deleted file mode 100644 index 000f49fc47..0000000000 --- a/.changeset/sharp-glasses-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Allow passing a `--require` argument through to the Node process during `package start` diff --git a/.changeset/shy-students-clap.md b/.changeset/shy-students-clap.md deleted file mode 100644 index 0e6244f21d..0000000000 --- a/.changeset/shy-students-clap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gitlab-org': patch ---- - -Added a new `catalog-backend-module-gitlab-org` module which adds the `GitlabOrgDiscoveryEntityProvider` to the catalog's providers using the new backend system. diff --git a/.changeset/silent-wombats-hang.md b/.changeset/silent-wombats-hang.md deleted file mode 100644 index 85bda32007..0000000000 --- a/.changeset/silent-wombats-hang.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-msgraph': patch ---- - -Handle fetching huge amounts of users from Azure without crashing diff --git a/.changeset/six-scissors-smile.md b/.changeset/six-scissors-smile.md deleted file mode 100644 index 7680edbba6..0000000000 --- a/.changeset/six-scissors-smile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -The `SignInPage` guest provider will now fall back to legacy guest auth if the backend request fails, allowing guest auth without a running backend. diff --git a/.changeset/sixty-bears-camp.md b/.changeset/sixty-bears-camp.md deleted file mode 100644 index f7a11482a7..0000000000 --- a/.changeset/sixty-bears-camp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Fixed a bug where the `MultiEntityPicker` was not able to be set as required diff --git a/.changeset/slimy-donkeys-laugh.md b/.changeset/slimy-donkeys-laugh.md deleted file mode 100644 index c18102e68c..0000000000 --- a/.changeset/slimy-donkeys-laugh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -The Backstage identity session expiration check will no longer fall back to using the provider expiration. This was introduced to smooth out the rollout of Backstage release 1.18, and is no longer needed. diff --git a/.changeset/slimy-kids-behave.md b/.changeset/slimy-kids-behave.md deleted file mode 100644 index 5e635878ff..0000000000 --- a/.changeset/slimy-kids-behave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Fixed an issue causing the `repo fix` command to set an incorrect `workspace` property using Windows diff --git a/.changeset/smart-avocados-invent.md b/.changeset/smart-avocados-invent.md deleted file mode 100644 index c71b6fef37..0000000000 --- a/.changeset/smart-avocados-invent.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-dynamic-feature-service': patch ---- - -Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. diff --git a/.changeset/smooth-garlics-behave.md b/.changeset/smooth-garlics-behave.md deleted file mode 100644 index ed972ae164..0000000000 --- a/.changeset/smooth-garlics-behave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. diff --git a/.changeset/sour-socks-approve.md b/.changeset/sour-socks-approve.md deleted file mode 100644 index db40806280..0000000000 --- a/.changeset/sour-socks-approve.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -Emit well known relationships for the Domain entity kind. diff --git a/.changeset/strange-rocks-study.md b/.changeset/strange-rocks-study.md deleted file mode 100644 index 75ceb745fb..0000000000 --- a/.changeset/strange-rocks-study.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-node': patch ---- - -To remove the dependency on the soon-to-be-deprecated `backend-common` package, this package now maintains its own isomorphic Git class implementation. diff --git a/.changeset/stupid-onions-know.md b/.changeset/stupid-onions-know.md deleted file mode 100644 index 3d028557be..0000000000 --- a/.changeset/stupid-onions-know.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Empty descriptions are not rendered to improve the look&feel. diff --git a/.changeset/sweet-spiders-rhyme.md b/.changeset/sweet-spiders-rhyme.md deleted file mode 100644 index 71dcc375c0..0000000000 --- a/.changeset/sweet-spiders-rhyme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Removing react-text-truncate with css styles. diff --git a/.changeset/sweet-zoos-clap.md b/.changeset/sweet-zoos-clap.md deleted file mode 100644 index 8c76f4abd7..0000000000 --- a/.changeset/sweet-zoos-clap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Fixed bug in stitching queue gauge that included entities that are scheduled in the future. diff --git a/.changeset/swift-humans-hunt.md b/.changeset/swift-humans-hunt.md deleted file mode 100644 index b96b3e41bc..0000000000 --- a/.changeset/swift-humans-hunt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': patch ---- - -Avoiding pre-loading display total count undefined for table counts diff --git a/.changeset/tall-ads-shave.md b/.changeset/tall-ads-shave.md deleted file mode 100644 index 17d58452eb..0000000000 --- a/.changeset/tall-ads-shave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications-backend': patch ---- - -Add possibility to generate random notifications on the fly in local development diff --git a/.changeset/tame-jars-double.md b/.changeset/tame-jars-double.md deleted file mode 100644 index 8af92a2d72..0000000000 --- a/.changeset/tame-jars-double.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitlab': minor ---- - -Add examples for `gitlab:projectVariable:create` scaffolder action & improve related tests diff --git a/.changeset/tame-jokes-bow.md b/.changeset/tame-jokes-bow.md deleted file mode 100644 index e08cf9ca0c..0000000000 --- a/.changeset/tame-jokes-bow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch ---- - -Allow multiple edges with different type (e.g. `ownedBy` and `applicationOwnerBy`) to have the same source and target node. diff --git a/.changeset/tasty-apes-learn.md b/.changeset/tasty-apes-learn.md deleted file mode 100644 index 7a4545cf10..0000000000 --- a/.changeset/tasty-apes-learn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Fix to show web notifications even when browser is on foreground. Fix duplicate notifications with multiple tabs. diff --git a/.changeset/tasty-moles-jog.md b/.changeset/tasty-moles-jog.md deleted file mode 100644 index f28b77337e..0000000000 --- a/.changeset/tasty-moles-jog.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Add previously-missing semicolon in file templated by `backstage-cli new --select plugin`. diff --git a/.changeset/tasty-rats-explain.md b/.changeset/tasty-rats-explain.md deleted file mode 100644 index b97ee28fef..0000000000 --- a/.changeset/tasty-rats-explain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration': minor ---- - -Added `HarnessIntegration` via the `ScmIntegrations` interface. diff --git a/.changeset/tender-falcons-add.md b/.changeset/tender-falcons-add.md deleted file mode 100644 index 60a947bcc3..0000000000 --- a/.changeset/tender-falcons-add.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Fixed the dynamic import of vite. diff --git a/.changeset/thick-llamas-itch.md b/.changeset/thick-llamas-itch.md deleted file mode 100644 index 17d4fb23b6..0000000000 --- a/.changeset/thick-llamas-itch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Allow defining `className` and additional properties for `NotificationsSideBarItem` diff --git a/.changeset/thick-terms-rush.md b/.changeset/thick-terms-rush.md deleted file mode 100644 index fb12f11f7e..0000000000 --- a/.changeset/thick-terms-rush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes-react': patch ---- - -add the namespace label to CronJobDrawer & IngressDrawer. diff --git a/.changeset/thirty-mangos-travel.md b/.changeset/thirty-mangos-travel.md deleted file mode 100644 index 2281cc06b6..0000000000 --- a/.changeset/thirty-mangos-travel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search': patch ---- - -Added `aria-label` attribute to DialogTitle element and set `aria-modal` attribute to `true` for improved accessibility in the search modal. diff --git a/.changeset/tough-eggs-wink.md b/.changeset/tough-eggs-wink.md deleted file mode 100644 index 52644e3620..0000000000 --- a/.changeset/tough-eggs-wink.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-node': minor ---- - -Breaking change to `/alpha` API where the `catalogAnalysisExtensionPoint` has been reworked. The `addLocationAnalyzer` method has been renamed to `addScmLocationAnalyzer`, and a new `setLocationAnalyzer` method has been added which allows the full `LocationAnalyzer` implementation to be overridden. diff --git a/.changeset/tricky-cougars-shout.md b/.changeset/tricky-cougars-shout.md deleted file mode 100644 index eed14c9eb8..0000000000 --- a/.changeset/tricky-cougars-shout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-explore': patch ---- - -Update README.md to point to explore plugin in community-plugins repository. diff --git a/.changeset/unlucky-days-play.md b/.changeset/unlucky-days-play.md deleted file mode 100644 index b847ebd2fc..0000000000 --- a/.changeset/unlucky-days-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Fix infinite loop in the notification title counter diff --git a/.changeset/unlucky-rivers-collect.md b/.changeset/unlucky-rivers-collect.md deleted file mode 100644 index c5ec865658..0000000000 --- a/.changeset/unlucky-rivers-collect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications-backend': patch ---- - -Updated documentation for sending messages by external services. diff --git a/.changeset/warm-fans-promise.md b/.changeset/warm-fans-promise.md deleted file mode 100644 index a8a8f8a2c7..0000000000 --- a/.changeset/warm-fans-promise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -The rendered size of a notification is limited for very long descriptions. diff --git a/.changeset/wet-files-pretend.md b/.changeset/wet-files-pretend.md deleted file mode 100644 index 8f77a5bc0b..0000000000 --- a/.changeset/wet-files-pretend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-org': patch ---- - -Fix ownership card sometimes locking up for complex org structures diff --git a/.changeset/wild-cats-hug.md b/.changeset/wild-cats-hug.md deleted file mode 100644 index e33d399dab..0000000000 --- a/.changeset/wild-cats-hug.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Added `alwaysUseDefaultNamespace` option to `GithubMultiOrgEntityProvider`. - -If set to true, the provider will use `default` as the namespace for all group entities. Groups with the same name across different orgs will be considered the same group. diff --git a/.changeset/wild-seahorses-grin.md b/.changeset/wild-seahorses-grin.md deleted file mode 100644 index 94b30a6839..0000000000 --- a/.changeset/wild-seahorses-grin.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-search-backend-module-catalog': patch ---- - -Allow the `tokenManager` parameter to be optional when instantiating collator diff --git a/.changeset/young-guests-reflect.md b/.changeset/young-guests-reflect.md deleted file mode 100644 index 355c38bc21..0000000000 --- a/.changeset/young-guests-reflect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-notifications': patch ---- - -Add option to set the notification as read automatically when the notification link is opened diff --git a/.changeset/young-olives-drop.md b/.changeset/young-olives-drop.md deleted file mode 100644 index 4058293be8..0000000000 --- a/.changeset/young-olives-drop.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch ---- - -Removed explicit `toString()` method from `ServiceRef` type. diff --git a/docs/releases/v1.27.0-changelog.md b/docs/releases/v1.27.0-changelog.md new file mode 100644 index 0000000000..28e52caa7b --- /dev/null +++ b/docs/releases/v1.27.0-changelog.md @@ -0,0 +1,1949 @@ +# Release v1.27.0 + +Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.27.0](https://backstage.github.io/upgrade-helper/?to=1.27.0) + +## @backstage/backend-common@0.22.0 + +### Minor Changes + +- ed83f85: Internal refactor of the database code. + + **BREAKING**: The helper functions `createDatabaseClient` and `ensureDatabaseExists` have been removed from the public interface, since they have no usage within the repository and never were suitable for calling from the outside. Please consider using `coreServices.database` or `DatabaseManager` directly wherever possible instead. + +### Patch Changes + +- 2cc750d: Added `HarnessURLReader` with `readUrl` support. +- 57f692e: Preparing for a stable new backend system release, we are deprecating utilities in the `backend-common` that are not used by the core framework, such as the isomorphic `Git` class. As we will no longer support the isomorphic `Git` utility in the framework packages, we recommend plugins that start maintaining their own implementation of this class. +- 0ec0796: Plugins created through the `legacyPlugin` helper are now able to authenticate requests from plugins that are fully implemented using the new backend system. This fixes the `Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array` error. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- ccc8851: Added config prop `ensureSchemaExists` to support postgres instances where user can create schemas but not databases. +- f66bbb4: Only create a single actual connection to memcache/redis, even in cases where many `CacheService` instances are made +- ba0b8b4: Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + +## @backstage/catalog-model@1.5.0 + +### Minor Changes + +- 79025f3: Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. + +## @backstage/frontend-app-api@0.7.0 + +### Minor Changes + +- ddddecb: Extensions in app-config now always affect ordering. Previously, only when enabling disabled extensions did they rise to the top. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/integration@1.11.0 + +### Minor Changes + +- 2cc750d: Added `HarnessIntegration` via the `ScmIntegrations` interface. + +## @backstage/repo-tools@0.9.0 + +### Minor Changes + +- 683870a: Adds 2 new commands `repo schema openapi diff` and `package schema openapi diff`. `repo schema openapi diff` is intended to power a new breaking changes check on pull requests and the package level command allows plugin developers to quickly see new API breaking changes. They're intended to be used in complement with the existing `repo schema openapi verify` command to validate your OpenAPI spec against a variety of things. + +### Patch Changes + +- 9ae9bb2: Update the paths logic in the api reports command to support complex subpaths +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/plugin-catalog@1.20.0 + +### Minor Changes + +- 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context. + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- 5d99272: Update local development dependencies. +- 4118530: Avoiding pre-loading display total count undefined for table counts +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-search-react@1.7.11 + +## @backstage/plugin-catalog-backend@1.22.0 + +### Minor Changes + +- f2a2a83: Deprecated the `LocationAnalyzer` type, which has been moved to `@backstage/plugin-catalog-node`. +- f2a2a83: The `/alpha` plugin export has had its implementation of the `catalogAnalysisExtensionPoint` updated to reflect the new API. +- 8d14475: Emit well known relationships for the Domain entity kind. + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- c6cb568: Add lifecycle monitoring for the catalog processing +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 8479a0b: Fixed bug in stitching queue gauge that included entities that are scheduled in the future. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/backend-openapi-utils@0.1.11 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-catalog-import@0.11.0 + +### Minor Changes + +- e1174b0: `EntityListComponent` uses `entityPresentationApi` instead of `humanizeEntityRef` to display Entity + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-node@1.12.0 + +### Minor Changes + +- f2a2a83: Added `LocationAnalyzer` type, moved from `@backstage/plugin-catalog-backend`. +- f2a2a83: Breaking change to `/alpha` API where the `catalogAnalysisExtensionPoint` has been reworked. The `addLocationAnalyzer` method has been renamed to `addScmLocationAnalyzer`, and a new `setLocationAnalyzer` method has been added which allows the full `LocationAnalyzer` implementation to be overridden. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-catalog-react@1.12.0 + +### Minor Changes + +- 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-scaffolder@1.20.0 + +### Minor Changes + +- 4268696: `MultiEntityPicker` uses `EntityDisplayName` instead of `humanizeEntityRef` to display entity. + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- 131e5cb: Fix broken links in README. +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- 762141c: Fixed a bug where the `MultiEntityPicker` was not able to be set as required +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.4.0 + +### Minor Changes + +- 18f736f: Add examples for `gitlab:projectVariable:create` scaffolder action & improve related tests + +### Patch Changes + +- 8fa8a00: Add merge method and squash option for project creation +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- ffc73ec: Add examples for `gitlab:repo:push` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/app-defaults@1.5.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + +## @backstage/backend-app-api@0.7.3 + +### Patch Changes + +- 4cd5ff0: Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service + +- e8199b1: Move the JWKS registration outside of the lifecycle middleware + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. + +- dc8c5dd: The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. + +- 025641b: Redact `meta` fields too with the logger + +- 09f8988: Remove explicit `alg` check for user tokens in `verifyToken` + +- 5863e02: Internal refactor to only create one external token handler + +- a1dc547: Added support for camel case CSP directives in app-config. For example: + + ```yaml + backend: + csp: + upgradeInsecureRequests: false + ``` + +- 329cc34: Added logging of all plugins being initialized, periodic status, and completion. + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/backend-defaults@0.2.18 + +### Patch Changes + +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/backend-dynamic-feature-service@0.2.10 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- b611fd0: Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-app-node@0.1.18 + - @backstage/plugin-events-backend@0.3.5 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/backend-openapi-utils@0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/backend-plugin-api@0.6.18 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 1fedf0c: Removed explicit `toString()` method from `ServiceRef` type. +- Updated dependencies + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/backend-tasks@0.5.23 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/backend-test-utils@0.3.8 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/catalog-client@1.6.5 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + +## @backstage/cli@0.26.5 + +### Patch Changes + +- b8f1fc2: The `build-workspace` command no longer manually runs `yarn postpack`, relying instead on the fact that running `yarn pack` will automatically invoke the `postpack` script. No action is necessary if you are running the latest version of yarn 1, 3, or 4. +- fcd3462: Both the target and types library have been bumped from ES2021 to ES2022 in `@backstage/cli/config/tsconfig.json`. +- 0cc5ed3: Add support for `versions:migrate` to do code changes. Can be skipped with `--no-code-changes` +- f97ad04: Add preserveModules to rollup, which allows better async loading and tree-shaking in webpack +- 2a6f10d: The `versions:bump` command will no longer exit with a non-zero status if the version bump fails due to forbidden duplicate package installations. It will now also provide more information about how to troubleshoot such an error. The set of forbidden duplicates has also been expanded to include all `@backstage/*-app-api` packages. +- c5d7b40: Allow passing a `--require` argument through to the Node process during `package start` +- cc3c518: Fixed an issue causing the `repo fix` command to set an incorrect `workspace` property using Windows +- 812dff0: Add previously-missing semicolon in file templated by `backstage-cli new --select plugin`. +- f185603: Fixed the dynamic import of vite. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/eslint-plugin@0.1.8 + - @backstage/integration@1.11.0 + +## @backstage/core-app-api@1.12.5 + +### Patch Changes + +- 1bed9a3: The Backstage identity session expiration check will no longer fall back to using the provider expiration. This was introduced to smooth out the rollout of Backstage release 1.18, and is no longer needed. + +## @backstage/core-compat-api@0.2.5 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/core-components@0.14.7 + +### Patch Changes + +- e42779e: Properly log the `errorInfo` in `ErrorBoundary` +- 5223c4c: Fixed an internal circular import that broke Jest mocks. +- 71e4229: Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. +- a2ee4df: Add `alignGauge` prop to the `GaugeCard`, and a small size version. When `alignGauge` is `'bottom'` the gauge will vertically align the gauge in the cards, even when the card titles span across multiple lines. + Add `alignContent` prop to the `InfoCard`, defaulting to `'normal'` with the option of `'bottom'` which vertically aligns the content to the bottom of the card. +- 5b7b49b: The `SignInPage` guest provider will now fall back to legacy guest auth if the backend request fails, allowing guest auth without a running backend. +- 359376a: Removing react-text-truncate with css styles. +- Updated dependencies + - @backstage/theme@0.5.4 + +## @backstage/create-app@0.5.15 + +### Patch Changes + +- c066c88: Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. +- 5d99272: Update local development dependencies. +- 0478509: Bumped create-app version. +- d85dd88: Bumped create-app version. +- 8105aad: Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. + +## @backstage/dev-utils@1.0.32 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + +## @backstage/eslint-plugin@0.1.8 + +### Patch Changes + +- 65ec043: add some `pickers` fixes + +## @backstage/frontend-plugin-api@0.6.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + +## @backstage/frontend-test-utils@0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.7.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/test-utils@1.5.5 + +## @backstage/integration-react@1.1.27 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.11.0 + +## @techdocs/cli@1.8.11 + +### Patch Changes + +- 1a0e009: Fix cookie endpoint mock for `serve` +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-techdocs-node@1.12.4 + +## @backstage/test-utils@1.5.5 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + +## @backstage/theme@0.5.4 + +### Patch Changes + +- f1462df: Fixed bug where scrollbars don't pick up the theme when in dark mode + +## @backstage/plugin-api-docs@0.11.5 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- 725ff0b: Fix dark mode text color inside tables in `description:` from OpenAPI definitions +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-app-backend@0.3.66 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-app-node@0.1.18 + +## @backstage/plugin-app-node@0.1.18 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/plugin-app-visualizer@0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-auth-backend@0.22.5 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.10 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15 + - @backstage/plugin-auth-backend-module-oidc-provider@0.1.9 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.10 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.1 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.1 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.1 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.13 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.15 + - @backstage/plugin-auth-backend-module-google-provider@0.1.15 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.13 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.15 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.11 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.11 + +## @backstage/plugin-auth-backend-module-atlassian-provider@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.10 + +### Patch Changes + +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.13 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.15 + +### Patch Changes + +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-guest-provider@0.1.4 + +### Patch Changes + +- 07d8cca: Error if used outside of a development environment without explicit allowance +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.13 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-oidc-provider@0.1.9 + +### Patch Changes + +- dd53bf3: Add nonce to authorize request to be added in ID token +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-okta-provider@0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.12 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-auth-node@0.4.13 + +### Patch Changes + +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + +## @backstage/plugin-auth-react@0.1.2 + +### Patch Changes + +- c297afd: When using `CookieAuthRefreshProvider` or `useCookieAuthRefresh`, a 404 response from the cookie endpoint will now be treated as if cookie auth is disabled and is not needed. +- Updated dependencies + - @backstage/core-components@0.14.7 + +## @backstage/plugin-bitbucket-cloud-common@0.2.19 + +### Patch Changes + +- d76cb29: Updated dependency `ts-morph` to `^22.0.0`. +- Updated dependencies + - @backstage/integration@1.11.0 + +## @backstage/plugin-catalog-backend-module-aws@0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-catalog-backend-module-azure@0.1.38 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1 + +### Patch Changes + +- f3f0281: Fix incorrect dependency import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/backend-openapi-utils@0.1.11 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.2.5 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-bitbucket-cloud-common@0.2.19 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.32 + +### Patch Changes + +- 062ffb1: Allow skipping archived repositories (`skipArchivedRepos` flag) on Bitbucket. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.35 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + +## @backstage/plugin-catalog-backend-module-github@0.6.1 + +### Patch Changes + +- 0b50143: GitHub push events now schedule a refresh on entities that have a `refresh_key` matching the `catalogPath` config itself. + This allows to support a `catalogPath` configuration that uses glob patterns. + +- f2a2a83: Updated to use the new `catalogAnalysisExtensionPoint` API. + +- 5bdeaa7: Added `alwaysUseDefaultNamespace` option to `GithubMultiOrgEntityProvider`. + + If set to true, the provider will use `default` as the namespace for all group entities. Groups with the same name across different orgs will be considered the same group. + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-github-org@0.1.13 + +### Patch Changes + +- 5bdeaa7: Fixed an issue where the `catalog-backend-module-github-org` would not correctly create groups using `default` as namespace in case a single organization was configured. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-backend-module-github@0.6.1 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.15 + +### Patch Changes + +- a70377d: Added events support for `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider`. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-gitlab-org@0.0.1 + +### Patch Changes + +- a70377d: Added a new `catalog-backend-module-gitlab-org` module which adds the `GitlabOrgDiscoveryEntityProvider` to the catalog's providers using the new backend system. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend-module-gitlab@0.3.15 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.23 + +### Patch Changes + +- 8c1ab9e: Fix plugin/incremental-ingestion 'Maximum call stack size exceeded' error when ingest large entities. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.34 + +### Patch Changes + +- 7699967: Remove dependency to Winston Logger and use Backstage LoggerService instead +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.26 + +### Patch Changes + +- 49eab29: Fixed disabling of user photo fetching. Previously, the config value wasn't propagated properly, so user photos was still being fetched despite disabled by config. +- 6e370e6: Handle fetching huge amounts of users from Azure without crashing +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.36 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.4.5 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- 6f5a3a3: Correctly convert owner to string in case owner has not been provided +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-catalog-common@1.0.23 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-catalog-graph@0.4.5 + +### Patch Changes + +- 39564b3: Allow multiple edges with different type (e.g. `ownedBy` and `applicationOwnerBy`) to have the same source and target node. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-catalog-unprocessed-entities@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-config-schema@0.1.55 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + +## @backstage/plugin-devtools@0.1.14 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-devtools-backend@0.3.4 + +### Patch Changes + +- 036feca: Added discovery property to the readme documentation to ensure that it will build when setting it up as new to a Backstage instance +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-events-backend@0.3.5 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-aws-sqs@0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-azure@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-gerrit@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-github@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-module-gitlab@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-backend-test-utils@0.1.28 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.3.4 + +## @backstage/plugin-events-node@0.3.4 + +### Patch Changes + +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/plugin-home@0.7.4 + +### Patch Changes + +- 2196d3e: Use relative time when displaying visits from the same day +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/plugin-home-react@0.1.13 + - @backstage/core-app-api@1.12.5 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-home-react@0.1.13 + +### Patch Changes + +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-components@0.14.7 + +## @backstage/plugin-kubernetes@0.11.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/plugin-kubernetes-react@0.3.5 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-kubernetes-backend@0.17.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-kubernetes-common@0.7.6 + - @backstage/plugin-kubernetes-node@0.1.12 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-kubernetes-cluster@0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/plugin-kubernetes-react@0.3.5 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-kubernetes-common@0.7.6 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-kubernetes-node@0.1.12 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-kubernetes-react@0.3.5 + +### Patch Changes + +- 3102a99: add the namespace label to CronJobDrawer & IngressDrawer. +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-kubernetes-common@0.7.6 + +## @backstage/plugin-notifications@0.2.1 + +### Patch Changes + +- e6bf85f: Allow overriding `NotificationsPage` page properties +- f730c0b: The user can newly mark all unread messages as read at one click. +- bfcb2f1: Allow showing notifications as snackbars in the UI +- e49a810: Show all notifications by default to match the sidebar item status +- 42eaf63: Increase default and allow modifying notification snackbar auto hide duration +- a42a19b: Empty descriptions are not rendered to improve the look&feel. +- 1bc3b86: Fix to show web notifications even when browser is on foreground. Fix duplicate notifications with multiple tabs. +- f793112: Allow defining `className` and additional properties for `NotificationsSideBarItem` +- e1c7d6e: Fix infinite loop in the notification title counter +- fcda449: The rendered size of a notification is limited for very long descriptions. +- f6633ca: Add option to set the notification as read automatically when the notification link is opened +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + +## @backstage/plugin-notifications-backend@0.2.1 + +### Patch Changes + +- d541ff6: Fixed email processor `esm` issue and config reading +- 295c05d: Support for filtering entities from notification recipients after resolving them from the recipients +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- cba628a: Add possibility to generate random notifications on the fly in local development +- ee09dfc: Updated documentation for sending messages by external services. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-signals-node@0.1.4 + +## @backstage/plugin-notifications-backend-module-email@0.0.1 + +### Patch Changes + +- d541ff6: Fixed email processor `esm` issue and config reading +- e538b10: Support relative links in notifications sent via email +- dbf2696: Allow sending notifications by email with the new notifications module +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + +## @backstage/plugin-notifications-node@0.1.4 + +### Patch Changes + +- 295c05d: Support for filtering entities from notification recipients after resolving them from the recipients +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-signals-node@0.1.4 + +## @backstage/plugin-org@0.6.25 + +### Patch Changes + +- 99e6105: Fix ownership card sometimes locking up for complex org structures +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-org-react@0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + +## @backstage/plugin-permission-backend@0.5.42 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-permission-node@0.7.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-proxy-backend@0.4.16 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + +## @backstage/plugin-scaffolder-backend@1.22.6 + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- 025641b: Fix issue with the log format not being respected when logging from actions +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- e4b50ab: Scaffolder workspace serialization +- 025641b: Redact `meta` fields too with the logger +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-scaffolder-backend-module-github@0.2.8 + - @backstage/plugin-scaffolder-backend-module-gitea@0.1.8 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.10 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.8 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.10 + +## @backstage/plugin-scaffolder-backend-module-azure@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8 + - @backstage/integration@1.11.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8 + +### Patch Changes + +- 24dd655: Add examples for `publish:bitbucketServer:pull-request` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.42 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-gitea@0.1.8 + +### Patch Changes + +- 554af73: Allow defining `repoVisibility` field for the action `publish:gitea` +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-github@0.2.8 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 52ab241: Adding support to change the default commit author for `publish:github:pull-request` +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-notifications@0.0.1 + +### Patch Changes + +- 503d769: Add a new scaffolder action to allow sending notifications from templates +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.35 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.26 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.3.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/plugin-scaffolder-node-test-utils@0.1.4 + +## @backstage/plugin-scaffolder-common@1.5.2 + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- Updated dependencies + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-scaffolder-node@0.4.4 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- e4b50ab: Scaffolder workspace serialization +- f633efa: To remove the dependency on the soon-to-be-deprecated `backend-common` package, this package now maintains its own isomorphic Git class implementation. +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + +## @backstage/plugin-scaffolder-node-test-utils@0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-test-utils@0.3.8 + - @backstage/plugin-scaffolder-node@0.4.4 + +## @backstage/plugin-scaffolder-react@1.8.5 + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/catalog-client@1.6.5 + +## @backstage/plugin-search@1.4.11 + +### Patch Changes + +- 0501243: Added `aria-label` attribute to DialogTitle element and set `aria-modal` attribute to `true` for improved accessibility in the search modal. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-search-react@1.7.11 + +## @backstage/plugin-search-backend@1.5.8 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/repo-tools@0.9.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/backend-openapi-utils@0.1.11 + - @backstage/plugin-permission-node@0.7.29 + +## @backstage/plugin-search-backend-module-catalog@0.1.24 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- d5fff66: Fix wiring of the module exported at the `/alpha` path, which was causing authentication failures. +- 5dc5f4f: Allow the `tokenManager` parameter to be optional when instantiating collator +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-search-backend-module-elasticsearch@1.4.1 + +### Patch Changes + +- 5252ee1: Fix never resolved indexer promise. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + +## @backstage/plugin-search-backend-module-explore@0.1.24 + +### Patch Changes + +- ca6e2e0: Migrate search collator to use the new auth services. +- 5d99272: Update README.md to point to explore plugin in community-plugins repository. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + +## @backstage/plugin-search-backend-module-pg@0.5.27 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + +## @backstage/plugin-search-backend-module-techdocs@0.1.23 + +### Patch Changes + +- 5dc5f4f: Allow the `tokenManager` parameter to be optional when instantiating collator +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-techdocs-node@1.12.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-search-backend-node@1.2.22 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + +## @backstage/plugin-search-react@1.7.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-signals@0.0.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + +## @backstage/plugin-signals-backend@0.1.4 + +### Patch Changes + +- 845d56a: Improved signal lifecycle management and added server side pinging of connections +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-signals-node@0.1.4 + +## @backstage/plugin-signals-node@0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + +## @backstage/plugin-techdocs@1.10.5 + +### Patch Changes + +- d2cc139: Update path in Readme for Plugin Techdocs to show the correct setup information. +- 5863cf7: The `techdocs.builder` config is now optional and it will default to `local`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/integration@1.11.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-techdocs-react@1.2.4 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.32 + +### Patch Changes + +- 2f13862: Fix bug in TechDocsAddonTester when jest.resetAllMocks is called between tests +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/core-app-api@1.12.5 + - @backstage/integration-react@1.1.27 + - @backstage/test-utils@1.5.5 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-techdocs-react@1.2.4 + +## @backstage/plugin-techdocs-backend@1.10.5 + +### Patch Changes + +- 5863cf7: The `techdocs.builder` config is now optional and it will default to `local`. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-techdocs-node@1.12.4 + - @backstage/integration@1.11.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/integration@1.11.0 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-techdocs-react@1.2.4 + +## @backstage/plugin-techdocs-node@1.12.4 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + +## @backstage/plugin-techdocs-react@1.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-user-settings@0.8.6 + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/frontend-plugin-api@0.6.5 + +## @backstage/plugin-user-settings-backend@0.2.17 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + +## example-app@0.2.97 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/plugin-scaffolder@1.20.0 + - @backstage/plugin-user-settings@0.8.6 + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-notifications@0.2.1 + - @backstage/plugin-api-docs@0.11.5 + - @backstage/plugin-home@0.7.4 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-import@0.11.0 + - @backstage/frontend-app-api@0.7.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/plugin-catalog-graph@0.4.5 + - @backstage/plugin-search@1.4.11 + - @backstage/plugin-org@0.6.25 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4 + - @backstage/plugin-devtools@0.1.14 + - @backstage/plugin-kubernetes@0.11.10 + - @backstage/plugin-kubernetes-cluster@0.0.11 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-signals@0.0.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10 + - @backstage/plugin-techdocs-react@1.2.4 + +## example-app-next@0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/plugin-scaffolder@1.20.0 + - @backstage/plugin-user-settings@0.8.6 + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-notifications@0.2.1 + - @backstage/core-compat-api@0.2.5 + - @backstage/plugin-api-docs@0.11.5 + - @backstage/plugin-home@0.7.4 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-import@0.11.0 + - @backstage/frontend-app-api@0.7.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/plugin-catalog-graph@0.4.5 + - @backstage/plugin-search@1.4.11 + - @backstage/plugin-org@0.6.25 + - @backstage/app-defaults@1.5.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-app-visualizer@0.1.6 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4 + - @backstage/plugin-kubernetes@0.11.10 + - @backstage/plugin-kubernetes-cluster@0.0.11 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-signals@0.0.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10 + - @backstage/plugin-techdocs-react@1.2.4 + +## app-next-example-plugin@0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + +## example-backend@0.0.26 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.22.6 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/plugin-scaffolder-backend-module-github@0.2.8 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/plugin-notifications-backend@0.2.1 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-app-backend@0.3.66 + - @backstage/plugin-devtools-backend@0.3.4 + - @backstage/plugin-signals-backend@0.1.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-search-backend@1.5.8 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15 + - @backstage/plugin-techdocs-backend@1.10.5 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.4 + - @backstage/backend-defaults@0.2.18 + - @backstage/plugin-search-backend-module-explore@0.1.24 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - @backstage/plugin-catalog-backend-module-openapi@0.1.36 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-kubernetes-backend@0.17.1 + - @backstage/plugin-permission-backend@0.5.42 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-proxy-backend@0.4.16 + +## example-backend-legacy@0.2.98 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-elasticsearch@1.4.1 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-scaffolder-backend@1.22.6 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-search-backend-module-pg@0.5.27 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-app-backend@0.3.66 + - @backstage/plugin-devtools-backend@0.3.4 + - @backstage/plugin-signals-backend@0.1.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-search-backend@1.5.8 + - @backstage/plugin-techdocs-backend@1.10.5 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-search-backend-module-explore@0.1.24 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - example-app@0.2.97 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-events-backend@0.3.5 + - @backstage/plugin-kubernetes-backend@0.17.1 + - @backstage/plugin-permission-backend@0.5.42 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-proxy-backend@0.4.16 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.35 + - @backstage/plugin-signals-node@0.1.4 + +## e2e-test@0.2.16 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.15 + +## techdocs-cli-embedded-app@0.2.96 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + - @backstage/test-utils@1.5.5 + - @backstage/plugin-techdocs-react@1.2.4 + +## @internal/plugin-todo-list@1.0.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + +## @internal/plugin-todo-list-backend@1.0.27 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 diff --git a/package.json b/package.json index 8611c9d59b..53c87544af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "1.27.0-next.2", + "version": "1.27.0", "private": true, "repository": { "type": "git", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 15f1c5bd67..5ab386f512 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/app-defaults +## 1.5.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + ## 1.5.5-next.1 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index d5955d863e..27533f2b9f 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/app-defaults", - "version": "1.5.5-next.1", + "version": "1.5.5", "description": "Provides the default wiring of a Backstage App", "backstage": { "role": "web-library" diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md index fa7d0f3107..356ed1f378 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.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.0.11-next.1 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 55dd01aea5..e601961ef6 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,6 +1,6 @@ { "name": "app-next-example-plugin", - "version": "0.0.11-next.1", + "version": "0.0.11", "description": "Backstage internal example plugin", "backstage": { "role": "frontend-plugin" diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 890f1ca20b..3f03cac54f 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,44 @@ # example-app-next +## 0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/plugin-scaffolder@1.20.0 + - @backstage/plugin-user-settings@0.8.6 + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-notifications@0.2.1 + - @backstage/core-compat-api@0.2.5 + - @backstage/plugin-api-docs@0.11.5 + - @backstage/plugin-home@0.7.4 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-import@0.11.0 + - @backstage/frontend-app-api@0.7.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/plugin-catalog-graph@0.4.5 + - @backstage/plugin-search@1.4.11 + - @backstage/plugin-org@0.6.25 + - @backstage/app-defaults@1.5.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-app-visualizer@0.1.6 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4 + - @backstage/plugin-kubernetes@0.11.10 + - @backstage/plugin-kubernetes-cluster@0.0.11 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-signals@0.0.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10 + - @backstage/plugin-techdocs-react@1.2.4 + ## 0.0.11-next.2 ### Patch Changes diff --git a/packages/app-next/package.json b/packages/app-next/package.json index d7b286e0fa..d5f69915a9 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.11-next.2", + "version": "0.0.11", "private": true, "repository": { "type": "git", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 3b8d6ca936..fa01c31fd6 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,42 @@ # example-app +## 0.2.97 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/plugin-scaffolder@1.20.0 + - @backstage/plugin-user-settings@0.8.6 + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-notifications@0.2.1 + - @backstage/plugin-api-docs@0.11.5 + - @backstage/plugin-home@0.7.4 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-import@0.11.0 + - @backstage/frontend-app-api@0.7.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/plugin-catalog-graph@0.4.5 + - @backstage/plugin-search@1.4.11 + - @backstage/plugin-org@0.6.25 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4 + - @backstage/plugin-devtools@0.1.14 + - @backstage/plugin-kubernetes@0.11.10 + - @backstage/plugin-kubernetes-cluster@0.0.11 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-signals@0.0.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10 + - @backstage/plugin-techdocs-react@1.2.4 + ## 0.2.97-next.2 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 13466e1b41..9978c6fcb4 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.97-next.2", + "version": "0.2.97", "backstage": { "role": "frontend" }, diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 733a19d81e..96259c80da 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/backend-app-api +## 0.7.3 + +### Patch Changes + +- 4cd5ff0: Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service +- e8199b1: Move the JWKS registration outside of the lifecycle middleware +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- dc8c5dd: The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. +- 025641b: Redact `meta` fields too with the logger +- 09f8988: Remove explicit `alg` check for user tokens in `verifyToken` +- 5863e02: Internal refactor to only create one external token handler +- a1dc547: Added support for camel case CSP directives in app-config. For example: + + ```yaml + backend: + csp: + upgradeInsecureRequests: false + ``` + +- 329cc34: Added logging of all plugins being initialized, periodic status, and completion. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + ## 0.7.2-next.1 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index f188b4aa51..0634c30de1 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-app-api", - "version": "0.7.3-next.1", + "version": "0.7.3", "description": "Core API used by Backstage backend apps", "backstage": { "role": "node-library" diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 3ab27aa3bf..70136051d0 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/backend-common +## 0.22.0 + +### Minor Changes + +- ed83f85: Internal refactor of the database code. + + **BREAKING**: The helper functions `createDatabaseClient` and `ensureDatabaseExists` have been removed from the public interface, since they have no usage within the repository and never were suitable for calling from the outside. Please consider using `coreServices.database` or `DatabaseManager` directly wherever possible instead. + +### Patch Changes + +- 2cc750d: Added `HarnessURLReader` with `readUrl` support. +- 57f692e: Preparing for a stable new backend system release, we are deprecating utilities in the `backend-common` that are not used by the core framework, such as the isomorphic `Git` class. As we will no longer support the isomorphic `Git` utility in the framework packages, we recommend plugins that start maintaining their own implementation of this class. +- 0ec0796: Plugins created through the `legacyPlugin` helper are now able to authenticate requests from plugins that are fully implemented using the new backend system. This fixes the `Key for the ES256 algorithm must be one of type KeyObject or CryptoKey. Received an instance of Uint8Array` error. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- ccc8851: Added config prop `ensureSchemaExists` to support postgres instances where user can create schemas but not databases. +- f66bbb4: Only create a single actual connection to memcache/redis, even in cases where many `CacheService` instances are made +- ba0b8b4: Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + ## 0.22.0-next.2 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 52ae56cff4..8e0d388352 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-common", - "version": "0.22.0-next.2", + "version": "0.22.0", "description": "Common functionality library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 11a9e78a18..b43a592ba3 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-defaults +## 0.2.18 + +### Patch Changes + +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.18-next.2 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index ec26ec6471..b5da7abbcf 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.18-next.2", + "version": "0.2.18", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-dynamic-feature-service/CHANGELOG.md b/packages/backend-dynamic-feature-service/CHANGELOG.md index a0f08195b1..ad620ee060 100644 --- a/packages/backend-dynamic-feature-service/CHANGELOG.md +++ b/packages/backend-dynamic-feature-service/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/backend-dynamic-feature-service +## 0.2.10 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- b611fd0: Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-app-node@0.1.18 + - @backstage/plugin-events-backend@0.3.5 + - @backstage/plugin-permission-node@0.7.29 + ## 0.2.10-next.2 ### Patch Changes diff --git a/packages/backend-dynamic-feature-service/package.json b/packages/backend-dynamic-feature-service/package.json index 715ca5f44d..4c7a7bbaf5 100644 --- a/packages/backend-dynamic-feature-service/package.json +++ b/packages/backend-dynamic-feature-service/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-dynamic-feature-service", "description": "Backstage dynamic feature service", - "version": "0.2.10-next.2", + "version": "0.2.10", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-legacy/CHANGELOG.md b/packages/backend-legacy/CHANGELOG.md index c4a59512e5..9a5a720491 100644 --- a/packages/backend-legacy/CHANGELOG.md +++ b/packages/backend-legacy/CHANGELOG.md @@ -1,5 +1,45 @@ # example-backend-legacy +## 0.2.98 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-elasticsearch@1.4.1 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-scaffolder-backend@1.22.6 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-search-backend-module-pg@0.5.27 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-app-backend@0.3.66 + - @backstage/plugin-devtools-backend@0.3.4 + - @backstage/plugin-signals-backend@0.1.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-search-backend@1.5.8 + - @backstage/plugin-techdocs-backend@1.10.5 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-search-backend-module-explore@0.1.24 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - example-app@0.2.97 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-events-backend@0.3.5 + - @backstage/plugin-kubernetes-backend@0.17.1 + - @backstage/plugin-permission-backend@0.5.42 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-proxy-backend@0.4.16 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.35 + - @backstage/plugin-signals-node@0.1.4 + ## 0.2.98-next.2 ### Patch Changes diff --git a/packages/backend-legacy/package.json b/packages/backend-legacy/package.json index 799387f5d2..d5a3065df5 100644 --- a/packages/backend-legacy/package.json +++ b/packages/backend-legacy/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-legacy", - "version": "0.2.98-next.2", + "version": "0.2.98", "backstage": { "role": "backend" }, diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index 3978b5dfd0..d3d8e4bdf8 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-openapi-utils +## 0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + ## 0.1.11-next.1 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index f77626001d..badda72b04 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.11-next.1", + "version": "0.1.11", "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 e6a0d5c278..494634a9de 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-plugin-api +## 0.6.18 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 1fedf0c: Removed explicit `toString()` method from `ServiceRef` type. +- Updated dependencies + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-node@0.4.13 + ## 0.6.18-next.1 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index ca954e4c56..3199c97bda 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-plugin-api", - "version": "0.6.18-next.1", + "version": "0.6.18", "description": "Core API used by Backstage backend plugins", "backstage": { "role": "node-library" diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index f90d8ff7ef..629f3e7853 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-tasks +## 0.5.23 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + ## 0.5.23-next.1 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index a7f64b9db1..c0331c5e4c 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.23-next.1", + "version": "0.5.23", "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 aafed2071e..d20d983fab 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/backend-test-utils +## 0.3.8 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-app-api@0.7.3 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + ## 0.3.8-next.2 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index f9d591e470..cb7711adfd 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-test-utils", - "version": "0.3.8-next.2", + "version": "0.3.8", "description": "Test helpers library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 29e3aecc7c..a0e705f22f 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,41 @@ # example-backend +## 0.0.26 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.22.6 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/plugin-scaffolder-backend-module-github@0.2.8 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/plugin-notifications-backend@0.2.1 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-app-backend@0.3.66 + - @backstage/plugin-devtools-backend@0.3.4 + - @backstage/plugin-signals-backend@0.1.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/plugin-search-backend@1.5.8 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15 + - @backstage/plugin-techdocs-backend@1.10.5 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.4 + - @backstage/backend-defaults@0.2.18 + - @backstage/plugin-search-backend-module-explore@0.1.24 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - @backstage/plugin-catalog-backend-module-openapi@0.1.36 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-kubernetes-backend@0.17.1 + - @backstage/plugin-permission-backend@0.5.42 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-proxy-backend@0.4.16 + ## 0.0.26-next.1 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 8d59d52ea8..a373a142a0 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.0.26-next.1", + "version": "0.0.26", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index ef3ca6588e..da7b16dce1 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/catalog-client +## 1.6.5 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + ## 1.6.5-next.0 ### Patch Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 39d8227fa5..c9e7f25723 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-client", - "version": "1.6.5-next.0", + "version": "1.6.5", "description": "An isomorphic client for the catalog backend", "backstage": { "role": "common-library" diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index c04ac72136..f47465a03e 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/catalog-model +## 1.5.0 + +### Minor Changes + +- 79025f3: Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. + ## 1.5.0-next.0 ### Minor Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 5622a20941..5a60531cb2 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "1.5.0-next.0", + "version": "1.5.0", "description": "Types and validators that help describe the model of a Backstage Catalog", "backstage": { "role": "common-library" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 2b784d7093..7f59e4ef73 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/cli +## 0.26.5 + +### Patch Changes + +- b8f1fc2: The `build-workspace` command no longer manually runs `yarn postpack`, relying instead on the fact that running `yarn pack` will automatically invoke the `postpack` script. No action is necessary if you are running the latest version of yarn 1, 3, or 4. +- fcd3462: Both the target and types library have been bumped from ES2021 to ES2022 in `@backstage/cli/config/tsconfig.json`. +- 0cc5ed3: Add support for `versions:migrate` to do code changes. Can be skipped with `--no-code-changes` +- f97ad04: Add preserveModules to rollup, which allows better async loading and tree-shaking in webpack +- 2a6f10d: The `versions:bump` command will no longer exit with a non-zero status if the version bump fails due to forbidden duplicate package installations. It will now also provide more information about how to troubleshoot such an error. The set of forbidden duplicates has also been expanded to include all `@backstage/*-app-api` packages. +- c5d7b40: Allow passing a `--require` argument through to the Node process during `package start` +- cc3c518: Fixed an issue causing the `repo fix` command to set an incorrect `workspace` property using Windows +- 812dff0: Add previously-missing semicolon in file templated by `backstage-cli new --select plugin`. +- f185603: Fixed the dynamic import of vite. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/eslint-plugin@0.1.8 + - @backstage/integration@1.11.0 + ## 0.26.5-next.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index d6fe116248..f3093445ab 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/cli", - "version": "0.26.5-next.1", + "version": "0.26.5", "description": "CLI for developing Backstage plugins and apps", "backstage": { "role": "cli" diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index f21eed47d0..f171c222b7 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/core-app-api +## 1.12.5 + +### Patch Changes + +- 1bed9a3: The Backstage identity session expiration check will no longer fall back to using the provider expiration. This was introduced to smooth out the rollout of Backstage release 1.18, and is no longer needed. + ## 1.12.4 ### Patch Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index b61a860298..0a74dac3f8 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-app-api", "description": "Core app API used by Backstage apps", - "version": "1.12.4", + "version": "1.12.5", "publishConfig": { "access": "public" }, diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index 3e3f824816..67084d7926 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/core-compat-api +## 0.2.5 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/frontend-plugin-api@0.6.5 + ## 0.2.5-next.1 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index fbea128a68..9124060464 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.2.5-next.1", + "version": "0.2.5", "backstage": { "role": "web-library" }, diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index dc31cb9f4d..4c2a973813 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/core-components +## 0.14.7 + +### Patch Changes + +- e42779e: Properly log the `errorInfo` in `ErrorBoundary` +- 5223c4c: Fixed an internal circular import that broke Jest mocks. +- 71e4229: Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. +- a2ee4df: Add `alignGauge` prop to the `GaugeCard`, and a small size version. When `alignGauge` is `'bottom'` the gauge will vertically align the gauge in the cards, even when the card titles span across multiple lines. + Add `alignContent` prop to the `InfoCard`, defaulting to `'normal'` with the option of `'bottom'` which vertically aligns the content to the bottom of the card. +- 5b7b49b: The `SignInPage` guest provider will now fall back to legacy guest auth if the backend request fails, allowing guest auth without a running backend. +- 359376a: Removing react-text-truncate with css styles. +- Updated dependencies + - @backstage/theme@0.5.4 + ## 0.14.7-next.2 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 316ce46ac4..435a013062 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.14.7-next.2", + "version": "0.14.7", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index ee49b7d8f5..be4c46ab03 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/create-app +## 0.5.15 + +### Patch Changes + +- c066c88: Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. +- 5d99272: Update local development dependencies. +- 0478509: Bumped create-app version. +- d85dd88: Bumped create-app version. +- 8105aad: Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. + ## 0.5.15-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index ec0e764fff..422442ed2b 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.15-next.2", + "version": "0.5.15", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 673ee43d24..c8e32a39d0 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/dev-utils +## 1.0.32 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + ## 1.0.32-next.2 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index f6308b6446..de5acd3249 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/dev-utils", - "version": "1.0.32-next.2", + "version": "1.0.32", "description": "Utilities for developing Backstage plugins.", "backstage": { "role": "web-library" diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 326002b350..7ff6862d2f 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,12 @@ # e2e-test +## 0.2.16 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.15 + ## 0.2.16-next.1 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index e4ddf47d73..a77bb8c8a1 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.16-next.1", + "version": "0.2.16", "private": true, "backstage": { "role": "cli" diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 60dde12184..63a7650400 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/eslint-plugin +## 0.1.8 + +### Patch Changes + +- 65ec043: add some `pickers` fixes + ## 0.1.7 ### Patch Changes diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 395a3eea64..0d8db000e0 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/eslint-plugin", - "version": "0.1.7", + "version": "0.1.8", "description": "Backstage ESLint plugin", "publishConfig": { "access": "public" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index c560948cc2..b9571091a8 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/frontend-app-api +## 0.7.0 + +### Minor Changes + +- ddddecb: Extensions in app-config now always affect ordering. Previously, only when enabling disabled extensions did they rise to the top. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.7.0-next.2 ### Minor Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 7602f688ef..2e350b5a98 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.7.0-next.2", + "version": "0.7.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 1c681fa6bc..f12de020f5 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/frontend-plugin-api +## 0.6.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + ## 0.6.5-next.1 ### Patch Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index 94906cfc67..2dedd6fc12 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.6.5-next.1", + "version": "0.6.5", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index 0d41932eb0..b2abbd9c2d 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/frontend-test-utils +## 0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.7.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/test-utils@1.5.5 + ## 0.1.7-next.2 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index 44eddc2ada..4845e7e9b1 100644 --- a/packages/frontend-test-utils/package.json +++ b/packages/frontend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-test-utils", - "version": "0.1.7-next.2", + "version": "0.1.7", "backstage": { "role": "web-library" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 33de746f92..f44e72919c 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/integration-react +## 1.1.27 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.11.0 + ## 1.1.27-next.0 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 5d87ccaa13..07effadbae 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration-react", - "version": "1.1.27-next.0", + "version": "1.1.27", "description": "Frontend package for managing integrations towards external systems", "backstage": { "role": "web-library" diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 0ed0080b10..0c00b80d58 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/integration +## 1.11.0 + +### Minor Changes + +- 2cc750d: Added `HarnessIntegration` via the `ScmIntegrations` interface. + ## 1.11.0-next.0 ### Minor Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index ad41e216a7..da4b700fd6 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration", - "version": "1.11.0-next.0", + "version": "1.11.0", "description": "Helpers for managing integrations towards external systems", "backstage": { "role": "common-library" diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index b3aefc9e67..251ddb28de 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/repo-tools +## 0.9.0 + +### Minor Changes + +- 683870a: Adds 2 new commands `repo schema openapi diff` and `package schema openapi diff`. `repo schema openapi diff` is intended to power a new breaking changes check on pull requests and the package level command allows plugin developers to quickly see new API breaking changes. They're intended to be used in complement with the existing `repo schema openapi verify` command to validate your OpenAPI spec against a variety of things. + +### Patch Changes + +- 9ae9bb2: Update the paths logic in the api reports command to support complex subpaths +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + ## 0.9.0-next.2 ### Minor Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 41492f2366..5c2e5e859c 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/repo-tools", "description": "CLI for Backstage repo tooling ", - "version": "0.9.0-next.2", + "version": "0.9.0", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index cd27b1c1a7..0bb564782c 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,22 @@ # techdocs-cli-embedded-app +## 0.2.96 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/cli@0.26.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/app-defaults@1.5.5 + - @backstage/integration-react@1.1.27 + - @backstage/test-utils@1.5.5 + - @backstage/plugin-techdocs-react@1.2.4 + ## 0.2.96-next.2 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 687a469914..c6f776015c 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.96-next.2", + "version": "0.2.96", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 3b2c544e7d..c1c15bb78c 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,15 @@ # @techdocs/cli +## 1.8.11 + +### Patch Changes + +- 1a0e009: Fix cookie endpoint mock for `serve` +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-techdocs-node@1.12.4 + ## 1.8.11-next.1 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 13eed9d249..5af004aeb0 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.8.11-next.1", + "version": "1.8.11", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index d28d0cac49..4c8e0c1173 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/test-utils +## 1.5.5 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + ## 1.5.5-next.0 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 2e46e3a9b0..d48b652c43 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/test-utils", - "version": "1.5.5-next.0", + "version": "1.5.5", "description": "Utilities to test Backstage plugins and apps.", "backstage": { "role": "web-library" diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md index 20703a1d9d..397b6c80f5 100644 --- a/packages/theme/CHANGELOG.md +++ b/packages/theme/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/theme +## 0.5.4 + +### Patch Changes + +- f1462df: Fixed bug where scrollbars don't pick up the theme when in dark mode + ## 0.5.4-next.0 ### Patch Changes diff --git a/packages/theme/package.json b/packages/theme/package.json index 07eefe756f..698d4f567c 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/theme", - "version": "0.5.4-next.0", + "version": "0.5.4", "description": "material-ui theme for use with Backstage.", "backstage": { "role": "web-library" diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 24b30e2fda..92eb1b44f1 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-api-docs +## 0.11.5 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- 725ff0b: Fix dark mode text color inside tables in `description:` from OpenAPI definitions +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.11.5-next.2 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 4b8ff68d86..398407e33f 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.11.5-next.2", + "version": "0.11.5", "description": "A Backstage plugin that helps represent API entities in the frontend", "backstage": { "role": "frontend-plugin" diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 2b51f92102..c33d774b1a 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-backend +## 0.3.66 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-app-node@0.1.18 + ## 0.3.66-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index fc4a6a8ded..d0b07f4041 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.66-next.1", + "version": "0.3.66", "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 dfc8e08cb9..75fc04fbdf 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-app-node +## 0.1.18 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + ## 0.1.18-next.1 ### Patch Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index a38ed25171..cbaca9f3d1 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.18-next.1", + "version": "0.1.18", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-visualizer/CHANGELOG.md b/plugins/app-visualizer/CHANGELOG.md index c3e117a8a0..bf39546c90 100644 --- a/plugins/app-visualizer/CHANGELOG.md +++ b/plugins/app-visualizer/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-app-visualizer +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/app-visualizer/package.json b/plugins/app-visualizer/package.json index 0b2370054c..a3e9d89e3b 100644 --- a/plugins/app-visualizer/package.json +++ b/plugins/app-visualizer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app-visualizer", - "version": "0.1.6-next.1", + "version": "0.1.6", "description": "Visualizes the Backstage app structure", "backstage": { "role": "frontend-plugin" diff --git a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md index 915c9b0f19..f75da3056e 100644 --- a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-atlassian-provider +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-atlassian-provider/package.json b/plugins/auth-backend-module-atlassian-provider/package.json index 0f0c3eeda9..0b0f949c44 100644 --- a/plugins/auth-backend-module-atlassian-provider/package.json +++ b/plugins/auth-backend-module-atlassian-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-atlassian-provider", "description": "The atlassian-provider backend module for the auth plugin.", - "version": "0.1.10-next.1", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md index 784334ac96..f3c1594df9 100644 --- a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-aws-alb-provider +## 0.1.10 + +### Patch Changes + +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-aws-alb-provider/package.json b/plugins/auth-backend-module-aws-alb-provider/package.json index 86d4793d81..e699c13dfd 100644 --- a/plugins/auth-backend-module-aws-alb-provider/package.json +++ b/plugins/auth-backend-module-aws-alb-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-aws-alb-provider", "description": "The aws-alb provider module for the Backstage auth backend.", - "version": "0.1.10-next.2", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md index 0ed21e2749..901f88b20a 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-azure-easyauth-provider +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-azure-easyauth-provider/package.json b/plugins/auth-backend-module-azure-easyauth-provider/package.json index e936f48f43..bec9f86224 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/package.json +++ b/plugins/auth-backend-module-azure-easyauth-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-azure-easyauth-provider", - "version": "0.1.1-next.1", + "version": "0.1.1", "description": "The azure-easyauth-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md index 4b414015cc..a3787cfdc0 100644 --- a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-bitbucket-provider +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-bitbucket-provider/package.json b/plugins/auth-backend-module-bitbucket-provider/package.json index ba1184ab0f..3d16dc4bce 100644 --- a/plugins/auth-backend-module-bitbucket-provider/package.json +++ b/plugins/auth-backend-module-bitbucket-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-bitbucket-provider", - "version": "0.1.1-next.1", + "version": "0.1.1", "description": "The bitbucket-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md index 1aabb47fb9..d8e5dfe4d5 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-cloudflare-access-provider +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-cloudflare-access-provider/package.json b/plugins/auth-backend-module-cloudflare-access-provider/package.json index 77f77052b5..7fe161480b 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/package.json +++ b/plugins/auth-backend-module-cloudflare-access-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-cloudflare-access-provider", - "version": "0.1.1-next.1", + "version": "0.1.1", "description": "The cloudflare-access-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md index 03576e316e..89f6dd9805 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-gcp-iap-provider +## 0.2.13 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.2.13-next.1 ### 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 1492ebaaf2..603fcc64c7 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.13-next.1", + "version": "0.2.13", "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 32ea1205d9..a892924c64 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.15 + +### Patch Changes + +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.15-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index 3f587ad033..2a45c2ed78 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", - "version": "0.1.15-next.2", + "version": "0.1.15", "description": "The github-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md index 1f4f5ecbf9..201fa5901b 100644 --- a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-gitlab-provider +## 0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gitlab-provider/package.json b/plugins/auth-backend-module-gitlab-provider/package.json index 5d8ee28020..146c26fffd 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.15-next.1", + "version": "0.1.15", "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 9e7e4043a3..46ea104253 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.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json index a9b529504d..35814282ec 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.15-next.1", + "version": "0.1.15", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-guest-provider/CHANGELOG.md b/plugins/auth-backend-module-guest-provider/CHANGELOG.md index 56c4e179b8..91565c88fd 100644 --- a/plugins/auth-backend-module-guest-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-guest-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-guest-provider +## 0.1.4 + +### Patch Changes + +- 07d8cca: Error if used outside of a development environment without explicit allowance +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-guest-provider/package.json b/plugins/auth-backend-module-guest-provider/package.json index 9676afb176..e27c19eb5d 100644 --- a/plugins/auth-backend-module-guest-provider/package.json +++ b/plugins/auth-backend-module-guest-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-guest-provider", - "version": "0.1.4-next.1", + "version": "0.1.4", "description": "The guest-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md index 14e4cef987..83c3bb229d 100644 --- a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-microsoft-provider +## 0.1.13 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json index a8569903cc..9e2719acc3 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.13-next.1", + "version": "0.1.13", "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 747d8fa317..dbb970e028 100644 --- a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-oauth2-provider +## 0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-provider/package.json b/plugins/auth-backend-module-oauth2-provider/package.json index 7cbc5929ae..6aecfd6c48 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.15-next.1", + "version": "0.1.15", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md index acc41221f6..e5366af8b6 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-oauth2-proxy-provider +## 0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/package.json b/plugins/auth-backend-module-oauth2-proxy-provider/package.json index cbcef196a5..0f3063db34 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/package.json +++ b/plugins/auth-backend-module-oauth2-proxy-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-proxy-provider", "description": "The oauth2-proxy-provider backend module for the auth plugin.", - "version": "0.1.11-next.1", + "version": "0.1.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md index 6713b3c7b6..e8716f0ce1 100644 --- a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-oidc-provider +## 0.1.9 + +### Patch Changes + +- dd53bf3: Add nonce to authorize request to be added in ID token +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend@0.22.5 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oidc-provider/package.json b/plugins/auth-backend-module-oidc-provider/package.json index c8894fc070..34bb282ba5 100644 --- a/plugins/auth-backend-module-oidc-provider/package.json +++ b/plugins/auth-backend-module-oidc-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-oidc-provider", "description": "The oidc-provider backend module for the auth plugin.", - "version": "0.1.9-next.1", + "version": "0.1.9", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-okta-provider/CHANGELOG.md b/plugins/auth-backend-module-okta-provider/CHANGELOG.md index 43e434a711..8378a83e7c 100644 --- a/plugins/auth-backend-module-okta-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-okta-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-okta-provider +## 0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.0.11-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-okta-provider/package.json b/plugins/auth-backend-module-okta-provider/package.json index 3006544145..b8a679b0b0 100644 --- a/plugins/auth-backend-module-okta-provider/package.json +++ b/plugins/auth-backend-module-okta-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-okta-provider", "description": "The okta-provider backend module for the auth plugin.", - "version": "0.0.11-next.1", + "version": "0.0.11", "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 a115289d0b..e9631b54cc 100644 --- a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-pinniped-provider +## 0.1.12 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-pinniped-provider/package.json b/plugins/auth-backend-module-pinniped-provider/package.json index 163c3f8e05..227055d366 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.12-next.1", + "version": "0.1.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md index 9245b6ded5..97753a12d2 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-backend-module-vmware-cloud-provider +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-vmware-cloud-provider/package.json b/plugins/auth-backend-module-vmware-cloud-provider/package.json index 6054f63ea1..64af928848 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/package.json +++ b/plugins/auth-backend-module-vmware-cloud-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-vmware-cloud-provider", - "version": "0.1.10-next.1", + "version": "0.1.10", "description": "The vmware-cloud-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 59a7aa4af0..2b161d638a 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-auth-backend +## 0.22.5 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 4a0577e: fix: Move config declarations to appropriate auth backend modules +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.10 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15 + - @backstage/plugin-auth-backend-module-oidc-provider@0.1.9 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.10 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.1 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.1 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.1 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.13 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.15 + - @backstage/plugin-auth-backend-module-google-provider@0.1.15 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.13 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.15 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.11 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.11 + ## 0.22.5-next.2 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 910c7d4180..0797145855 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.22.5-next.2", + "version": "0.22.5", "description": "A Backstage backend plugin that handles authentication", "backstage": { "role": "backend-plugin" diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index af4318227d..ecfd0c78b6 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-node +## 0.4.13 + +### Patch Changes + +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + ## 0.4.13-next.1 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index ba05caaad4..8b0e7f87c3 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.13-next.1", + "version": "0.4.13", "backstage": { "role": "node-library" }, diff --git a/plugins/auth-react/CHANGELOG.md b/plugins/auth-react/CHANGELOG.md index ebd567184f..46ddcc9a51 100644 --- a/plugins/auth-react/CHANGELOG.md +++ b/plugins/auth-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-react +## 0.1.2 + +### Patch Changes + +- c297afd: When using `CookieAuthRefreshProvider` or `useCookieAuthRefresh`, a 404 response from the cookie endpoint will now be treated as if cookie auth is disabled and is not needed. +- Updated dependencies + - @backstage/core-components@0.14.7 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/auth-react/package.json b/plugins/auth-react/package.json index c223b4c40f..7b85295f48 100644 --- a/plugins/auth-react/package.json +++ b/plugins/auth-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-react", - "version": "0.1.2-next.1", + "version": "0.1.2", "description": "Web library for the auth plugin", "backstage": { "role": "web-library" diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 1397e67af4..b20502394f 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.19 + +### Patch Changes + +- d76cb29: Updated dependency `ts-morph` to `^22.0.0`. +- Updated dependencies + - @backstage/integration@1.11.0 + ## 0.2.19-next.0 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 8d3458315e..a6d52a1850 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", - "version": "0.2.19-next.0", + "version": "0.2.19", "description": "Common functionalities for bitbucket-cloud plugins", "backstage": { "role": "common-library" diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index f0e0b8e6aa..cf7dc39048 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.3.13 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.3.13-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index d80383a18f..ba9a299fad 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", - "version": "0.3.13-next.2", + "version": "0.3.13", "description": "A Backstage catalog backend module that helps integrate towards AWS", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 6d3af364bb..649c15872a 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.38 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.1.38-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index a0a7edb728..e5b47db18c 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", - "version": "0.1.38-next.2", + "version": "0.1.38", "description": "A Backstage catalog backend module that helps integrate towards Azure", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md index fc48605090..2d63fdeadd 100644 --- a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-backstage-openapi +## 0.2.1 + +### Patch Changes + +- f3f0281: Fix incorrect dependency import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/backend-openapi-utils@0.1.11 + ## 0.2.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-backstage-openapi/package.json b/plugins/catalog-backend-module-backstage-openapi/package.json index 408fdfcc4f..af9a299848 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.2.1-next.2", + "version": "0.2.1", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 8884d911d3..1fa58406c4 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.2.5 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-bitbucket-cloud-common@0.2.19 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.2.5-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index a6554c173a..b821a1e01d 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.2.5-next.2", + "version": "0.2.5", "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 424f143da1..ffb79454cf 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.32 + +### Patch Changes + +- 062ffb1: Allow skipping archived repositories (`skipArchivedRepos` flag) on Bitbucket. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + ## 0.1.32-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index e1b0e4c362..684b5fa95a 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.32-next.2", + "version": "0.1.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 095366892f..008b18882b 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.19 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.1.19-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 758a909b3c..f0f3b1722f 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", - "version": "0.1.19-next.2", + "version": "0.1.19", "description": "A Backstage catalog backend module that helps integrate towards GCP", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 3aaa06ae02..2b5f22e034 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.35 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/integration@1.11.0 + ## 0.1.35-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index f58d6bb85f..1e9ff4284c 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.35-next.2", + "version": "0.1.35", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/catalog-backend-module-github-org/CHANGELOG.md b/plugins/catalog-backend-module-github-org/CHANGELOG.md index 01a6fb3b7a..99f073203c 100644 --- a/plugins/catalog-backend-module-github-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-github-org/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-github-org +## 0.1.13 + +### Patch Changes + +- 5bdeaa7: Fixed an issue where the `catalog-backend-module-github-org` would not correctly create groups using `default` as namespace in case a single organization was configured. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-backend-module-github@0.6.1 + - @backstage/plugin-events-node@0.3.4 + ## 0.1.13-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github-org/package.json b/plugins/catalog-backend-module-github-org/package.json index 4557cbedef..9f73d2a052 100644 --- a/plugins/catalog-backend-module-github-org/package.json +++ b/plugins/catalog-backend-module-github-org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-github-org", - "version": "0.1.13-next.2", + "version": "0.1.13", "description": "The github-org backend module for the catalog plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index ad4281d185..09735e37ca 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog-backend-module-github +## 0.6.1 + +### Patch Changes + +- 0b50143: GitHub push events now schedule a refresh on entities that have a `refresh_key` matching the `catalogPath` config itself. + This allows to support a `catalogPath` configuration that uses glob patterns. +- f2a2a83: Updated to use the new `catalogAnalysisExtensionPoint` API. +- 5bdeaa7: Added `alwaysUseDefaultNamespace` option to `GithubMultiOrgEntityProvider`. + + If set to true, the provider will use `default` as the namespace for all group entities. Groups with the same name across different orgs will be considered the same group. + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.6.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 05306549c3..d71303629a 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-github", - "version": "0.6.1-next.2", + "version": "0.6.1", "description": "A Backstage catalog backend module that helps integrate towards GitHub", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md index 4926c5efc4..793b10fd8b 100644 --- a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-gitlab-org +## 0.0.1 + +### Patch Changes + +- a70377d: Added a new `catalog-backend-module-gitlab-org` module which adds the `GitlabOrgDiscoveryEntityProvider` to the catalog's providers using the new backend system. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend-module-gitlab@0.3.15 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.0.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab-org/package.json b/plugins/catalog-backend-module-gitlab-org/package.json index e0eb268ba6..d0069fc968 100644 --- a/plugins/catalog-backend-module-gitlab-org/package.json +++ b/plugins/catalog-backend-module-gitlab-org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab-org", - "version": "0.0.1-next.2", + "version": "0.0.1", "description": "The gitlab-org backend module for the catalog plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 661d422547..5500adc6b1 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.3.15 + +### Patch Changes + +- a70377d: Added events support for `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider`. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.3.15-next.4 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index c485326f3e..83e2a47be9 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -72,5 +72,5 @@ ] } }, - "version": "0.3.15-next.4" + "version": "0.3.15" } diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index 961ebe081c..b20c236f55 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.4.23 + +### Patch Changes + +- 8c1ab9e: Fix plugin/incremental-ingestion 'Maximum call stack size exceeded' error when ingest large entities. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + ## 0.4.23-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 0a4f73c5d4..8f6016a228 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", - "version": "0.4.23-next.2", + "version": "0.4.23", "description": "An entity provider for streaming large asset sources into the catalog", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 22da3d6099..917f895046 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.34 + +### Patch Changes + +- 7699967: Remove dependency to Winston Logger and use Backstage LoggerService instead +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.5.34-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 2be1113e64..2b447ea7ec 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", - "version": "0.5.34-next.2", + "version": "0.5.34", "description": "A Backstage catalog backend module that helps integrate towards LDAP", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 4d6a4bc350..526a8609ac 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.26 + +### Patch Changes + +- 49eab29: Fixed disabling of user photo fetching. Previously, the config value wasn't propagated properly, so user photos was still being fetched despite disabled by config. +- 6e370e6: Handle fetching huge amounts of users from Azure without crashing +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.5.26-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index ddc3ca4af3..b12afe2f01 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", - "version": "0.5.26-next.2", + "version": "0.5.26", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index 2b1e0650a8..a0f8b3945d 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.36 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-catalog-backend@1.22.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.1.36-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 2eb832684d..40975fc254 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", - "version": "0.1.36-next.2", + "version": "0.1.36", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 84d705b8be..e49b8fdfa2 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + ## 0.1.24-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 6d3a71092e..d12990b54d 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", - "version": "0.1.24-next.2", + "version": "0.1.24", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index b51aacb4f1..e2a2e7f299 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.1.16 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.1.16-next.2 ### 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 2bf29a3bb3..5f7a22b8dc 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", - "version": "0.1.16-next.2", + "version": "0.1.16", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 1a2e2a2785..16b105df8d 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.4.5 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- 6f5a3a3: Correctly convert owner to string in case owner has not been provided +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.4.5-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index ba13df5a2a..c1df39fc6c 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", - "version": "0.4.5-next.2", + "version": "0.4.5", "description": "Backstage Catalog module to view unprocessed entities", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index cb4e25d190..3934bb495f 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-catalog-backend +## 1.22.0 + +### Minor Changes + +- f2a2a83: Deprecated the `LocationAnalyzer` type, which has been moved to `@backstage/plugin-catalog-node`. +- f2a2a83: The `/alpha` plugin export has had its implementation of the `catalogAnalysisExtensionPoint` updated to reflect the new API. +- 8d14475: Emit well known relationships for the Domain entity kind. + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- c6cb568: Add lifecycle monitoring for the catalog processing +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 8479a0b: Fixed bug in stitching queue gauge that included entities that are scheduled in the future. +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-search-backend-module-catalog@0.1.24 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + - @backstage/integration@1.11.0 + - @backstage/backend-openapi-utils@0.1.11 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-permission-node@0.7.29 + ## 1.22.0-next.2 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index f57efe5ae6..44f35dccf2 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "1.22.0-next.2", + "version": "1.22.0", "description": "The Backstage backend plugin that provides the Backstage catalog", "backstage": { "role": "backend-plugin" diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index f070ca11e2..a6dc3f06d6 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-catalog-common +## 1.0.23 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + ## 1.0.23-next.0 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 59d0019512..936fc3c935 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-common", - "version": "1.0.23-next.0", + "version": "1.0.23", "description": "Common functionalities for the catalog plugin", "backstage": { "role": "common-library" diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 372a94a19c..9d5a638ad7 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-graph +## 0.4.5 + +### Patch Changes + +- 39564b3: Allow multiple edges with different type (e.g. `ownedBy` and `applicationOwnerBy`) to have the same source and target node. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.4.5-next.2 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index ac9039a441..4d2ac4b393 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.4.5-next.2", + "version": "0.4.5", "backstage": { "role": "frontend-plugin" }, diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index f201bf7552..8bc9f0914e 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-import +## 0.11.0 + +### Minor Changes + +- e1174b0: `EntityListComponent` uses `entityPresentationApi` instead of `humanizeEntityRef` to display Entity + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.10.11-next.2 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index be4122b105..822ed6f395 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-import", - "version": "0.10.11-next.2", + "version": "0.11.0", "description": "A Backstage plugin the helps you import entities into your catalog", "backstage": { "role": "frontend-plugin" diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 949a44b384..8948ad6f98 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-node +## 1.12.0 + +### Minor Changes + +- f2a2a83: Added `LocationAnalyzer` type, moved from `@backstage/plugin-catalog-backend`. +- f2a2a83: Breaking change to `/alpha` API where the `catalogAnalysisExtensionPoint` has been reworked. The `addLocationAnalyzer` method has been renamed to `addScmLocationAnalyzer`, and a new `setLocationAnalyzer` method has been added which allows the full `LocationAnalyzer` implementation to be overridden. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-permission-node@0.7.29 + ## 1.12.0-next.2 ### Minor Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 010389079d..da6a67f163 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-node", - "version": "1.12.0-next.2", + "version": "1.12.0", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", "backstage": { "role": "node-library" diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index bb2477302e..ab6f2290ba 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-react +## 1.12.0 + +### Minor Changes + +- 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context. + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + ## 1.12.0-next.2 ### Minor Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 85b7ba95be..6f0094f0c7 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.12.0-next.2", + "version": "1.12.0", "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 06d4344889..989a852b55 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index eb35eae31e..059dc8802b 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "frontend-plugin" }, diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index abfcf1012c..b2d036e914 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog +## 1.20.0 + +### Minor Changes + +- 8834daf: Updated the presentation API to return a promise, in addition to the snapshot and observable that were there before. This makes it much easier to consume the API in a non-React context. + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- 5d99272: Update local development dependencies. +- 4118530: Avoiding pre-loading display total count undefined for table counts +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + - @backstage/plugin-search-react@1.7.11 + ## 1.20.0-next.2 ### Minor Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index e32191c629..bad4466146 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "1.20.0-next.2", + "version": "1.20.0", "description": "The Backstage plugin for browsing the Backstage catalog", "backstage": { "role": "frontend-plugin" diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 792691f33d..4d6609477c 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-config-schema +## 0.1.55 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + ## 0.1.55-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 19f2401602..bbf1e786a1 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-config-schema", - "version": "0.1.55-next.1", + "version": "0.1.55", "description": "A Backstage plugin that lets you browse the configuration schema of your app", "backstage": { "role": "frontend-plugin" diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index 38e0da331f..902a43c880 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-devtools-backend +## 0.3.4 + +### Patch Changes + +- 036feca: Added discovery property to the readme documentation to ensure that it will build when setting it up as new to a Backstage instance +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-permission-node@0.7.29 + ## 0.3.4-next.2 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index fd2c8eac4a..00d8df80ae 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.3.4-next.2", + "version": "0.3.4", "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 b618417ce0..ee7fd659bb 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-devtools +## 0.1.14 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 64b3626546..c711d941c6 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.14-next.1", + "version": "0.1.14", "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 498f89b6fa..1398d95e4a 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-events-node@0.3.4 + ## 0.3.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index ab33e2c451..0e889a2f8e 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.3.4-next.1", + "version": "0.3.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index 1fbb360beb..d9c8e91140 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.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index f7ade8b3a2..9264fe2374 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index b649c38b5b..b2734012c0 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.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index baed6171fd..5dc4d0147a 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index 57c6390296..5a1134e692 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.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index b3f8161604..61d0fafd53 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index ae5ee59263..88b0b1634d 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-github +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 9fb876f714..d234a7e01b 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 73c4c7e281..b6bb80f18f 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index e10b26736f..f793455a5d 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.2.4-next.1", + "version": "0.2.4", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index f5ba8b9609..eeb52a1d29 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.28 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.3.4 + ## 0.1.28-next.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index f766130efc..b96b7afe7f 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-test-utils", - "version": "0.1.28-next.1", + "version": "0.1.28", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", "backstage": { "role": "node-library" diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 1bb33b6db1..0862263896 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend +## 0.3.5 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + ## 0.3.5-next.1 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index dc36a33d07..1cd3f909cc 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.3.5-next.1", + "version": "0.3.5", "backstage": { "role": "backend-plugin" }, diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index 7238c9ed49..5b907547d8 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-node +## 0.3.4 + +### Patch Changes + +- 7e5a50d: added `eventsServiceFactory` to `defaultServiceFactories` to resolve issue where different instances of the EventsServices could be used +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + ## 0.3.4-next.2 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 9500fdc0ad..c082da2eab 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-node", - "version": "0.3.4-next.2", + "version": "0.3.4", "description": "The plugin-events-node module for @backstage/plugin-events-backend", "backstage": { "role": "node-library" diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index 2d6dee39e2..d152236a11 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list-backend +## 1.0.27 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 1.0.27-next.1 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index cd45af6d37..15a9d16ee9 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.27-next.1", + "version": "1.0.27", "backstage": { "role": "backend-plugin" }, diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index 0962426ac3..a86ffe7c60 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list +## 1.0.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + ## 1.0.27-next.1 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 849b96433a..4bd01f6e32 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.27-next.1", + "version": "1.0.27", "backstage": { "role": "frontend-plugin" }, diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index b1f8f6793e..6013cad734 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-home-react +## 0.1.13 + +### Patch Changes + +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-components@0.14.7 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index bb04ce8211..3853ef0f85 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-home-react", - "version": "0.1.13-next.1", + "version": "0.1.13", "description": "A Backstage plugin that contains react components helps you build a home page", "backstage": { "role": "web-library" diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 6fb3fbaec9..9543096cd0 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-home +## 0.7.4 + +### Patch Changes + +- 2196d3e: Use relative time when displaying visits from the same day +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/plugin-home-react@0.1.13 + - @backstage/core-app-api@1.12.5 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.7.4-next.2 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 63f01e84c4..79003a2ad7 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-home", - "version": "0.7.4-next.2", + "version": "0.7.4", "description": "A Backstage plugin that helps you build a home page", "backstage": { "role": "frontend-plugin" diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 48e205f868..bc447b62e0 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-kubernetes-backend +## 0.17.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-kubernetes-common@0.7.6 + - @backstage/plugin-kubernetes-node@0.1.12 + - @backstage/plugin-permission-node@0.7.29 + ## 0.17.1-next.2 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 24a52bc8a8..7589a453a7 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.17.1-next.2", + "version": "0.17.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 09adcabc63..aad774818d 100644 --- a/plugins/kubernetes-cluster/CHANGELOG.md +++ b/plugins/kubernetes-cluster/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes-cluster +## 0.0.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/plugin-kubernetes-react@0.3.5 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.0.11-next.2 ### Patch Changes diff --git a/plugins/kubernetes-cluster/package.json b/plugins/kubernetes-cluster/package.json index 409c385263..db9d08b5d7 100644 --- a/plugins/kubernetes-cluster/package.json +++ b/plugins/kubernetes-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-cluster", - "version": "0.0.11-next.2", + "version": "0.0.11", "description": "A Backstage plugin that shows details of Kubernetes clusters", "backstage": { "role": "frontend-plugin" diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 55f3485ff4..778364af1b 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-common +## 0.7.6 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + ## 0.7.6-next.0 ### Patch Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 77201e4fbf..f3bba8b855 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-common", - "version": "0.7.6-next.0", + "version": "0.7.6", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", "backstage": { "role": "common-library" diff --git a/plugins/kubernetes-node/CHANGELOG.md b/plugins/kubernetes-node/CHANGELOG.md index 89c7a58526..730d43b95c 100644 --- a/plugins/kubernetes-node/CHANGELOG.md +++ b/plugins/kubernetes-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kubernetes-node +## 0.1.12 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/kubernetes-node/package.json b/plugins/kubernetes-node/package.json index 79e304671a..dbe0a35d44 100644 --- a/plugins/kubernetes-node/package.json +++ b/plugins/kubernetes-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-node", - "version": "0.1.12-next.1", + "version": "0.1.12", "description": "Node.js library for the kubernetes plugin", "backstage": { "role": "node-library" diff --git a/plugins/kubernetes-react/CHANGELOG.md b/plugins/kubernetes-react/CHANGELOG.md index e05d103ad6..76abb6a50a 100644 --- a/plugins/kubernetes-react/CHANGELOG.md +++ b/plugins/kubernetes-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kubernetes-react +## 0.3.5 + +### Patch Changes + +- 3102a99: add the namespace label to CronJobDrawer & IngressDrawer. +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.3.5-next.1 ### Patch Changes diff --git a/plugins/kubernetes-react/package.json b/plugins/kubernetes-react/package.json index 7ff42ab26c..0991845ebd 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.3.5-next.1", + "version": "0.3.5", "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 87b1132710..abd18e5e21 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes +## 0.11.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/plugin-kubernetes-react@0.3.5 + - @backstage/plugin-kubernetes-common@0.7.6 + ## 0.11.10-next.2 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index bfb8ed1e2c..fd02de4137 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.10-next.2", + "version": "0.11.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/notifications-backend-module-email/CHANGELOG.md b/plugins/notifications-backend-module-email/CHANGELOG.md index 1c6e150a29..41bb1d2d9e 100644 --- a/plugins/notifications-backend-module-email/CHANGELOG.md +++ b/plugins/notifications-backend-module-email/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-notifications-backend-module-email +## 0.0.1 + +### Patch Changes + +- d541ff6: Fixed email processor `esm` issue and config reading +- e538b10: Support relative links in notifications sent via email +- dbf2696: Allow sending notifications by email with the new notifications module +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + ## 0.0.1-next.1 ### Patch Changes diff --git a/plugins/notifications-backend-module-email/package.json b/plugins/notifications-backend-module-email/package.json index 1884dc6352..892c8c9156 100644 --- a/plugins/notifications-backend-module-email/package.json +++ b/plugins/notifications-backend-module-email/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-backend-module-email", - "version": "0.0.1-next.1", + "version": "0.0.1", "description": "The email backend module for the notifications plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/notifications-backend/CHANGELOG.md b/plugins/notifications-backend/CHANGELOG.md index 5d6792659d..26762f5b2a 100644 --- a/plugins/notifications-backend/CHANGELOG.md +++ b/plugins/notifications-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-notifications-backend +## 0.2.1 + +### Patch Changes + +- d541ff6: Fixed email processor `esm` issue and config reading +- 295c05d: Support for filtering entities from notification recipients after resolving them from the recipients +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- cba628a: Add possibility to generate random notifications on the fly in local development +- ee09dfc: Updated documentation for sending messages by external services. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-signals-node@0.1.4 + ## 0.2.1-next.2 ### Patch Changes diff --git a/plugins/notifications-backend/package.json b/plugins/notifications-backend/package.json index 3aada48a9c..6e6c0e04cb 100644 --- a/plugins/notifications-backend/package.json +++ b/plugins/notifications-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-backend", - "version": "0.2.1-next.2", + "version": "0.2.1", "backstage": { "role": "backend-plugin" }, diff --git a/plugins/notifications-node/CHANGELOG.md b/plugins/notifications-node/CHANGELOG.md index 2b6321a3f8..86813090da 100644 --- a/plugins/notifications-node/CHANGELOG.md +++ b/plugins/notifications-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-notifications-node +## 0.1.4 + +### Patch Changes + +- 295c05d: Support for filtering entities from notification recipients after resolving them from the recipients +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-signals-node@0.1.4 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/notifications-node/package.json b/plugins/notifications-node/package.json index 1abfcc07ba..9f764c732b 100644 --- a/plugins/notifications-node/package.json +++ b/plugins/notifications-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-node", - "version": "0.1.4-next.1", + "version": "0.1.4", "description": "Node.js library for the notifications plugin", "backstage": { "role": "node-library" diff --git a/plugins/notifications/CHANGELOG.md b/plugins/notifications/CHANGELOG.md index 13cff2c7f7..278ac77062 100644 --- a/plugins/notifications/CHANGELOG.md +++ b/plugins/notifications/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-notifications +## 0.2.1 + +### Patch Changes + +- e6bf85f: Allow overriding `NotificationsPage` page properties +- f730c0b: The user can newly mark all unread messages as read at one click. +- bfcb2f1: Allow showing notifications as snackbars in the UI +- e49a810: Show all notifications by default to match the sidebar item status +- 42eaf63: Increase default and allow modifying notification snackbar auto hide duration +- a42a19b: Empty descriptions are not rendered to improve the look&feel. +- 1bc3b86: Fix to show web notifications even when browser is on foreground. Fix duplicate notifications with multiple tabs. +- f793112: Allow defining `className` and additional properties for `NotificationsSideBarItem` +- e1c7d6e: Fix infinite loop in the notification title counter +- fcda449: The rendered size of a notification is limited for very long descriptions. +- f6633ca: Add option to set the notification as read automatically when the notification link is opened +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + ## 0.2.1-next.2 ### Patch Changes diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json index 09127ecf04..8307103942 100644 --- a/plugins/notifications/package.json +++ b/plugins/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications", - "version": "0.2.1-next.2", + "version": "0.2.1", "backstage": { "role": "frontend-plugin" }, diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 8767b0e303..853a4e76e3 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-org-react +## 0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/catalog-client@1.6.5 + ## 0.1.24-next.2 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 53f8f83fe2..dd9bc64f5a 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.24-next.2", + "version": "0.1.24", "backstage": { "role": "web-library" }, diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index a18e9a4e61..885f03cb3d 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-org +## 0.6.25 + +### Patch Changes + +- 99e6105: Fix ownership card sometimes locking up for complex org structures +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.6.25-next.2 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 719eef72ce..5c9580ee0b 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-org", - "version": "0.6.25-next.2", + "version": "0.6.25", "description": "A Backstage plugin that helps you create entity pages for your organization", "backstage": { "role": "frontend-plugin" diff --git a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md index 90874346ad..d2ae73f5f4 100644 --- a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md +++ b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend-module-allow-all-policy +## 0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + ## 0.1.15-next.1 ### 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 ef5dfade7f..6e08904940 100644 --- a/plugins/permission-backend-module-policy-allow-all/package.json +++ b/plugins/permission-backend-module-policy-allow-all/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend-module-allow-all-policy", - "version": "0.1.15-next.1", + "version": "0.1.15", "description": "Allow all policy backend module for the permission plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index cc5b497a2c..6548fdfac1 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-backend +## 0.5.42 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-permission-node@0.7.29 + ## 0.5.42-next.1 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 3671e2b5a4..e039cd1898 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.42-next.1", + "version": "0.5.42", "backstage": { "role": "backend-plugin" }, diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index fd84633615..8b145de147 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-node +## 0.7.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.7.29-next.1 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index c510014089..bf6afc9e34 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.29-next.1", + "version": "0.7.29", "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 b133154c85..80e2f2e241 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-proxy-backend +## 0.4.16 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + ## 0.4.16-next.1 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 9430f7120d..0614956a18 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.4.16-next.1", + "version": "0.4.16", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", "backstage": { "role": "backend-plugin" diff --git a/plugins/scaffolder-backend-module-azure/CHANGELOG.md b/plugins/scaffolder-backend-module-azure/CHANGELOG.md index cdbe8cd77e..c2418d6309 100644 --- a/plugins/scaffolder-backend-module-azure/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-azure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-azure +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-azure/package.json b/plugins/scaffolder-backend-module-azure/package.json index d9d648ec6d..bc6b4a45d0 100644 --- a/plugins/scaffolder-backend-module-azure/package.json +++ b/plugins/scaffolder-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-azure", - "version": "0.1.10-next.2", + "version": "0.1.10", "description": "The azure module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md index 93fc9f821f..9a1340c1ad 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-cloud +## 0.1.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.1.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json index d58a871f99..abde43fb2f 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud", - "version": "0.1.8-next.2", + "version": "0.1.8", "description": "The Bitbucket Cloud module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md index 9b083cfaf4..fc245e48ba 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-server +## 0.1.8 + +### Patch Changes + +- 24dd655: Add examples for `publish:bitbucketServer:pull-request` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.1.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-server/package.json b/plugins/scaffolder-backend-module-bitbucket-server/package.json index b75099e81d..2a9fcc3f9d 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-server", - "version": "0.1.8-next.2", + "version": "0.1.8", "description": "The Bitbucket Server module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md index 5067f00aa8..97a57ff28f 100644 --- a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket +## 0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8 + - @backstage/integration@1.11.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8 + ## 0.2.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket/package.json b/plugins/scaffolder-backend-module-bitbucket/package.json index ce82b551b4..355ca41844 100644 --- a/plugins/scaffolder-backend-module-bitbucket/package.json +++ b/plugins/scaffolder-backend-module-bitbucket/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket", - "version": "0.2.8-next.2", + "version": "0.2.8", "description": "The bitbucket module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 23a7973822..77152b9659 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.2.19-next.2 ### 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 f33e71b536..7cca3be249 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", - "version": "0.2.19-next.2", + "version": "0.2.19", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 7220f00aa1..a6c6b24a07 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.42 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.2.42-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 78b9a2a8ce..b0f137ffab 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", - "version": "0.2.42-next.2", + "version": "0.2.42", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md index fd11a0f755..3daf8fc28a 100644 --- a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-gerrit +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gerrit/package.json b/plugins/scaffolder-backend-module-gerrit/package.json index 7215239608..1d9e003cfd 100644 --- a/plugins/scaffolder-backend-module-gerrit/package.json +++ b/plugins/scaffolder-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gerrit", - "version": "0.1.10-next.2", + "version": "0.1.10", "description": "The gerrit module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md index c88d71f652..6ec5592bc5 100644 --- a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-gitea +## 0.1.8 + +### Patch Changes + +- 554af73: Allow defining `repoVisibility` field for the action `publish:gitea` +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.1.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitea/package.json b/plugins/scaffolder-backend-module-gitea/package.json index c49954b6b9..1d8ad190bc 100644 --- a/plugins/scaffolder-backend-module-gitea/package.json +++ b/plugins/scaffolder-backend-module-gitea/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitea", - "version": "0.1.8-next.2", + "version": "0.1.8", "description": "The gitea module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-github/CHANGELOG.md b/plugins/scaffolder-backend-module-github/CHANGELOG.md index 39454530eb..40c8349399 100644 --- a/plugins/scaffolder-backend-module-github/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-github/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-github +## 0.2.8 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- 52ab241: Adding support to change the default commit author for `publish:github:pull-request` +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.2.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-github/package.json b/plugins/scaffolder-backend-module-github/package.json index a593541e08..56dbd291a3 100644 --- a/plugins/scaffolder-backend-module-github/package.json +++ b/plugins/scaffolder-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-github", - "version": "0.2.8-next.2", + "version": "0.2.8", "description": "The github module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index 18efb70009..829e2122f3 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.4.0 + +### Minor Changes + +- 18f736f: Add examples for `gitlab:projectVariable:create` scaffolder action & improve related tests + +### Patch Changes + +- 8fa8a00: Add merge method and squash option for project creation +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- ffc73ec: Add examples for `gitlab:repo:push` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.4.0-next.2 ### Minor Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index d03fb65c1b..383ef0e79d 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.4.0-next.2", + "version": "0.4.0", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md index 9a1c1b8891..d5d3902191 100644 --- a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-notifications +## 0.0.1 + +### Patch Changes + +- 503d769: Add a new scaffolder action to allow sending notifications from templates +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/plugin-notifications-node@0.1.4 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + ## 0.0.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-notifications/package.json b/plugins/scaffolder-backend-module-notifications/package.json index 7cb996f72b..07cb5e9bb1 100644 --- a/plugins/scaffolder-backend-module-notifications/package.json +++ b/plugins/scaffolder-backend-module-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-notifications", - "version": "0.0.1-next.0", + "version": "0.0.1", "description": "The notifications backend module for the scaffolder plugin.", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index f721032c0a..64c1c79d7c 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.35 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/integration@1.11.0 + ## 0.4.35-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index f8e1289359..0d822764dd 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", - "version": "0.4.35-next.2", + "version": "0.4.35", "description": "A module for the scaffolder backend that lets you template projects using Rails", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index d3685153d5..fa5b12ae0e 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.26 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + ## 0.1.26-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index bd7555a8c2..1f2e48ad59 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.26-next.1", + "version": "0.1.26", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 96b7222d0f..cb1a73f9f7 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.3.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/plugin-scaffolder-node-test-utils@0.1.4 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index c0f0c85f72..9a2fb1fdb1 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.3.1-next.1", + "version": "0.3.1", "backstage": { "role": "backend-plugin-module" }, diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 265517070d..05be28c1ae 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,36 @@ # @backstage/plugin-scaffolder-backend +## 1.22.6 + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- 025641b: Fix issue with the log format not being respected when logging from actions +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- e4b50ab: Scaffolder workspace serialization +- 025641b: Redact `meta` fields too with the logger +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/plugin-scaffolder-backend-module-github@0.2.8 + - @backstage/plugin-scaffolder-backend-module-gitea@0.1.8 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-scaffolder-node@0.4.4 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16 + - @backstage/plugin-permission-node@0.7.29 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.10 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.8 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.10 + ## 1.22.6-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index cf3d3d1ca0..f2f4da6a84 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "1.22.6-next.2", + "version": "1.22.6", "description": "The Backstage backend plugin that helps you create new things", "backstage": { "role": "backend-plugin" diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 9011c681cb..8b5c2d7c99 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-common +## 1.5.2 + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- Updated dependencies + - @backstage/catalog-model@1.5.0 + ## 1.5.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 614bd16a25..a0060b1427 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-common", - "version": "1.5.2-next.1", + "version": "1.5.2", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", "backstage": { "role": "common-library" diff --git a/plugins/scaffolder-node-test-utils/CHANGELOG.md b/plugins/scaffolder-node-test-utils/CHANGELOG.md index 5914c8fdee..72804941e4 100644 --- a/plugins/scaffolder-node-test-utils/CHANGELOG.md +++ b/plugins/scaffolder-node-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-node-test-utils +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-test-utils@0.3.8 + - @backstage/plugin-scaffolder-node@0.4.4 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/scaffolder-node-test-utils/package.json b/plugins/scaffolder-node-test-utils/package.json index 99adae5ab7..8686592f7a 100644 --- a/plugins/scaffolder-node-test-utils/package.json +++ b/plugins/scaffolder-node-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-node-test-utils", - "version": "0.1.4-next.1", + "version": "0.1.4", "backstage": { "role": "node-library" }, diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index d9e2804297..5c6fe0f6cc 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-node +## 0.4.4 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- e4b50ab: Scaffolder workspace serialization +- f633efa: To remove the dependency on the soon-to-be-deprecated `backend-common` package, this package now maintains its own isomorphic Git class implementation. +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + ## 0.4.4-next.2 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index c45382a707..af26f204dd 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-node", - "version": "0.4.4-next.2", + "version": "0.4.4", "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "node-library" diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index ca23ab25be..c445b76d06 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-scaffolder-react +## 1.8.5 + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/catalog-client@1.6.5 + ## 1.8.5-next.2 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 728c6e23d7..9187d9259d 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-react", - "version": "1.8.5-next.2", + "version": "1.8.5", "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder", "backstage": { "role": "web-library" diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 6edfc1484d..c4949715d7 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-scaffolder +## 1.20.0 + +### Minor Changes + +- 4268696: `MultiEntityPicker` uses `EntityDisplayName` instead of `humanizeEntityRef` to display entity. + +### Patch Changes + +- 9156654: Capturing more event clicks for scaffolder +- 131e5cb: Fix broken links in README. +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- 762141c: Fixed a bug where the `MultiEntityPicker` was not able to be set as required +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.5.2 + - @backstage/plugin-scaffolder-react@1.8.5 + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/integration@1.11.0 + - @backstage/catalog-client@1.6.5 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-catalog-common@1.0.23 + ## 1.19.4-next.2 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index fe0deb9036..c11f1a163a 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "1.19.4-next.2", + "version": "1.20.0", "description": "The Backstage plugin that helps you create new things", "backstage": { "role": "frontend-plugin" diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index 6ed9030a22..d0c84a7617 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.24 + +### Patch Changes + +- b192752: Updated `README.md` to point to `packages/backend` instead of `packages/backend-next`. +- d5fff66: Fix wiring of the module exported at the `/alpha` path, which was causing authentication failures. +- 5dc5f4f: Allow the `tokenManager` parameter to be optional when instantiating collator +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.1.24-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index aef1a1028d..f7eca60fbd 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-catalog", - "version": "0.1.24-next.2", + "version": "0.1.24", "description": "A module for the search backend that exports catalog modules", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 1af0204403..5bf9aa19ea 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.4.1 + +### Patch Changes + +- 5252ee1: Fix never resolved indexer promise. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + ## 1.4.1-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 85489b4043..128bc0e28c 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", - "version": "1.4.1-next.1", + "version": "1.4.1", "description": "A module for the search backend that implements search using ElasticSearch", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index ce6499ab4e..fc8ff4b307 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.24 + +### Patch Changes + +- ca6e2e0: Migrate search collator to use the new auth services. +- 5d99272: Update README.md to point to explore plugin in community-plugins repository. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index d181d70cbf..28ba6945c3 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-explore", - "version": "0.1.24-next.1", + "version": "0.1.24", "description": "A module for the search backend that exports explore modules", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index 37386a7fd1..ba6674606d 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.27 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + ## 0.5.27-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 3aec50e503..6645e2642f 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-pg", - "version": "0.5.27-next.1", + "version": "0.5.27", "description": "A module for the search backend that implements search using PostgreSQL", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md index c8faaf7609..c56c40ebe4 100644 --- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md +++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-stack-overflow-collator +## 0.1.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-search-backend-node@1.2.22 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-stack-overflow-collator/package.json b/plugins/search-backend-module-stack-overflow-collator/package.json index 3c76ed164b..5ae74d37bc 100644 --- a/plugins/search-backend-module-stack-overflow-collator/package.json +++ b/plugins/search-backend-module-stack-overflow-collator/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-stack-overflow-collator", - "version": "0.1.11-next.1", + "version": "0.1.11", "description": "A module for the search backend that exports stack overflow modules", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index 850db158c8..569a73c232 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.23 + +### Patch Changes + +- 5dc5f4f: Allow the `tokenManager` parameter to be optional when instantiating collator +- Updated dependencies + - @backstage/plugin-catalog-node@1.12.0 + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + - @backstage/plugin-techdocs-node@1.12.4 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 0.1.23-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 5cf53c40be..c27fe52d93 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", - "version": "0.1.23-next.2", + "version": "0.1.23", "description": "A module for the search backend that exports techdocs modules", "backstage": { "role": "backend-plugin-module" diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index 854996ba53..74ba4c86c1 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-node +## 1.2.22 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/backend-tasks@0.5.23 + ## 1.2.22-next.1 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index c734681980..a3c9e16f95 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-node", - "version": "1.2.22-next.1", + "version": "1.2.22", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", "backstage": { "role": "node-library" diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index c4bc71318c..0a80301ede 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend +## 1.5.8 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/repo-tools@0.9.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-search-backend-node@1.2.22 + - @backstage/backend-openapi-utils@0.1.11 + - @backstage/plugin-permission-node@0.7.29 + ## 1.5.8-next.2 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index dde1dc9de9..146e50d177 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend", - "version": "1.5.8-next.2", + "version": "1.5.8", "description": "The Backstage backend plugin that provides your backstage app with search", "backstage": { "role": "backend-plugin" diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index c4e75fa41a..046532facf 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-react +## 1.7.11 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + - @backstage/frontend-plugin-api@0.6.5 + ## 1.7.11-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 274deae1d7..1e6b2b0e8e 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.11-next.1", + "version": "1.7.11", "backstage": { "role": "web-library" }, diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 2b221c75e9..b738d853f8 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search +## 1.4.11 + +### Patch Changes + +- 0501243: Added `aria-label` attribute to DialogTitle element and set `aria-modal` attribute to `true` for improved accessibility in the search modal. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/plugin-search-react@1.7.11 + ## 1.4.11-next.2 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index f064be1433..1a9a09a5fe 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search", - "version": "1.4.11-next.2", + "version": "1.4.11", "description": "The Backstage plugin that provides your backstage app with search", "backstage": { "role": "frontend-plugin" diff --git a/plugins/signals-backend/CHANGELOG.md b/plugins/signals-backend/CHANGELOG.md index 5287438fb6..f6eeac9bf4 100644 --- a/plugins/signals-backend/CHANGELOG.md +++ b/plugins/signals-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-signals-backend +## 0.1.4 + +### Patch Changes + +- 845d56a: Improved signal lifecycle management and added server side pinging of connections +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + - @backstage/plugin-signals-node@0.1.4 + ## 0.1.4-next.2 ### Patch Changes diff --git a/plugins/signals-backend/package.json b/plugins/signals-backend/package.json index b6f16c272a..b148d4d5e5 100644 --- a/plugins/signals-backend/package.json +++ b/plugins/signals-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-signals-backend", - "version": "0.1.4-next.2", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/signals-node/CHANGELOG.md b/plugins/signals-node/CHANGELOG.md index ea703d4291..e26991c787 100644 --- a/plugins/signals-node/CHANGELOG.md +++ b/plugins/signals-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-signals-node +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-events-node@0.3.4 + - @backstage/plugin-auth-node@0.4.13 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/signals-node/package.json b/plugins/signals-node/package.json index 970b89aca2..4d1ad9e1ef 100644 --- a/plugins/signals-node/package.json +++ b/plugins/signals-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-signals-node", "description": "Node.js library for the signals plugin", - "version": "0.1.4-next.1", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/signals/CHANGELOG.md b/plugins/signals/CHANGELOG.md index fdfddfdf2a..971a849a03 100644 --- a/plugins/signals/CHANGELOG.md +++ b/plugins/signals/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-signals +## 0.0.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/theme@0.5.4 + ## 0.0.6-next.1 ### Patch Changes diff --git a/plugins/signals/package.json b/plugins/signals/package.json index 7d5fb3bcf9..ec618415a8 100644 --- a/plugins/signals/package.json +++ b/plugins/signals/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-signals", - "version": "0.0.6-next.1", + "version": "0.0.6", "backstage": { "role": "frontend-plugin" }, diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 00c7297773..8a4b3d1eb8 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.32 + +### Patch Changes + +- 2f13862: Fix bug in TechDocsAddonTester when jest.resetAllMocks is called between tests +- Updated dependencies + - @backstage/plugin-catalog@1.20.0 + - @backstage/plugin-techdocs@1.10.5 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/core-app-api@1.12.5 + - @backstage/integration-react@1.1.27 + - @backstage/test-utils@1.5.5 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-techdocs-react@1.2.4 + ## 1.0.32-next.2 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index e1ee4400bb..02161159e9 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.32-next.2", + "version": "1.0.32", "backstage": { "role": "web-library" }, diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index d6847da1ae..d4d18976b0 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-techdocs-backend +## 1.10.5 + +### Patch Changes + +- 5863cf7: The `techdocs.builder` config is now optional and it will default to `local`. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-techdocs-node@1.12.4 + - @backstage/integration@1.11.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23 + - @backstage/catalog-client@1.6.5 + - @backstage/plugin-catalog-common@1.0.23 + ## 1.10.5-next.2 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 79a701413a..a5a8e0ba76 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "1.10.5-next.2", + "version": "1.10.5", "description": "The Backstage backend plugin that renders technical documentation for your components", "backstage": { "role": "backend-plugin" diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 77e83144d5..2ab0cef022 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/integration@1.11.0 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-techdocs-react@1.2.4 + ## 1.1.10-next.2 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 8c89c9bf37..2aaca2c4e0 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", - "version": "1.1.10-next.2", + "version": "1.1.10", "description": "Plugin module for contributed TechDocs Addons", "backstage": { "role": "frontend-plugin-module" diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index aea92cb71c..59a0cc2055 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-node +## 1.12.4 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/catalog-model@1.5.0 + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/integration@1.11.0 + ## 1.12.4-next.2 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 0eda77c887..7d4c83545d 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-node", - "version": "1.12.4-next.2", + "version": "1.12.4", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", "backstage": { "role": "node-library" diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 9a13bd2149..4b76fe42e4 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs-react +## 1.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + ## 1.2.4-next.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index ebba33cdca..283e3afcff 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-react", - "version": "1.2.4-next.1", + "version": "1.2.4", "description": "Shared frontend utilities for TechDocs and Addons", "backstage": { "role": "web-library" diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 5011b3471c..7e8f3056e5 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-techdocs +## 1.10.5 + +### Patch Changes + +- d2cc139: Update path in Readme for Plugin Techdocs to show the correct setup information. +- 5863cf7: The `techdocs.builder` config is now optional and it will default to `local`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/catalog-model@1.5.0 + - @backstage/plugin-auth-react@0.1.2 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/integration@1.11.0 + - @backstage/frontend-plugin-api@0.6.5 + - @backstage/integration-react@1.1.27 + - @backstage/plugin-search-react@1.7.11 + - @backstage/plugin-techdocs-react@1.2.4 + ## 1.10.5-next.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index d75774cb10..bc9c4c8022 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "1.10.5-next.2", + "version": "1.10.5", "description": "The Backstage plugin that renders technical documentation for your components", "backstage": { "role": "frontend-plugin" diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index 57e3663d5f..f689d8090f 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-user-settings-backend +## 0.2.17 + +### Patch Changes + +- d229dc4: Move path utilities from `backend-common` to the `backend-plugin-api` package. +- Updated dependencies + - @backstage/backend-common@0.22.0 + - @backstage/backend-plugin-api@0.6.18 + - @backstage/plugin-auth-node@0.4.13 + ## 0.2.17-next.1 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index f8b46d8d3f..ac5e5d9af2 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-user-settings-backend", - "version": "0.2.17-next.1", + "version": "0.2.17", "description": "The Backstage backend plugin to manage user settings", "backstage": { "role": "backend-plugin" diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 01d7c1214c..85930ec041 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings +## 0.8.6 + +### Patch Changes + +- 131e5cb: Fix broken links in README. +- Updated dependencies + - @backstage/core-compat-api@0.2.5 + - @backstage/core-components@0.14.7 + - @backstage/plugin-catalog-react@1.12.0 + - @backstage/theme@0.5.4 + - @backstage/core-app-api@1.12.5 + - @backstage/frontend-plugin-api@0.6.5 + ## 0.8.6-next.2 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 1af0b2fb41..b3f0f244c8 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-user-settings", - "version": "0.8.6-next.2", + "version": "0.8.6", "description": "A Backstage plugin that provides a settings page", "backstage": { "role": "frontend-plugin" diff --git a/yarn.lock b/yarn.lock index 52606f44db..f10de89d74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3574,18 +3574,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-client@npm:^1.6.4": - version: 1.6.4 - resolution: "@backstage/catalog-client@npm:1.6.4" - dependencies: - "@backstage/catalog-model": ^1.4.5 - "@backstage/errors": ^1.2.4 - cross-fetch: ^4.0.0 - uri-template: ^2.0.0 - checksum: af3537d04f0abd6e6f3e49c7623994cc83db6efb2776fff5d59faee26c598840486e42a99c2bbb4a1b6ff97ad97ac857e913830cad62cda7cd71eef74cf2e179 - languageName: node - linkType: hard - "@backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": version: 0.0.0-use.local resolution: "@backstage/catalog-client@workspace:packages/catalog-client" @@ -3599,19 +3587,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@npm:^1.4.3, @backstage/catalog-model@npm:^1.4.5": - version: 1.4.5 - resolution: "@backstage/catalog-model@npm:1.4.5" - dependencies: - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 - ajv: ^8.10.0 - lodash: ^4.17.21 - checksum: 34aaa4b82d29bf3b0a4b52552f8eb8189041df826f87a7bbdef5107a1efb8ce1f7eb1c1a343868718ca2af9be76d9f5184f6a92076d893d3a3951d16881647b7 - languageName: node - linkType: hard - -"@backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@^1.4.3, @backstage/catalog-model@^1.4.5, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": version: 0.0.0-use.local resolution: "@backstage/catalog-model@workspace:packages/catalog-model" dependencies: @@ -3863,7 +3839,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.1.1, @backstage/config@^1.2.0, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@^1.1.1, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -3935,109 +3911,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@npm:^0.13.10": - version: 0.13.10 - resolution: "@backstage/core-components@npm:0.13.10" - dependencies: - "@backstage/config": ^1.1.1 - "@backstage/core-plugin-api": ^1.8.2 - "@backstage/errors": ^1.2.3 - "@backstage/theme": ^0.5.0 - "@backstage/version-bridge": ^1.0.7 - "@date-io/core": ^1.3.13 - "@material-table/core": ^3.1.0 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.61 - "@react-hookz/web": ^23.0.0 - "@types/react": ^16.13.1 || ^17.0.0 - "@types/react-sparklines": ^1.7.0 - "@types/react-text-truncate": ^0.14.0 - ansi-regex: ^6.0.1 - classnames: ^2.2.6 - d3-selection: ^3.0.0 - d3-shape: ^3.0.0 - d3-zoom: ^3.0.0 - dagre: ^0.8.5 - linkify-react: 4.1.3 - linkifyjs: 4.1.3 - lodash: ^4.17.21 - pluralize: ^8.0.0 - qs: ^6.9.4 - rc-progress: 3.5.1 - react-helmet: 6.1.0 - react-hook-form: ^7.12.2 - react-idle-timer: 5.6.2 - react-markdown: ^8.0.0 - react-sparklines: ^1.7.0 - react-syntax-highlighter: ^15.4.5 - react-text-truncate: ^0.19.0 - react-use: ^17.3.2 - react-virtualized-auto-sizer: ^1.0.11 - react-window: ^1.8.6 - remark-gfm: ^3.0.1 - zen-observable: ^0.10.0 - zod: ^3.22.4 - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: ec2a0d0a27bc4d6b9d4da97f0b4df600148529ee51bf2c8e7d3adc45c3950adac662535d3beabc451db346f2c7e3c412ceaa756fc774012b43dff5e2695f2271 - languageName: node - linkType: hard - -"@backstage/core-components@npm:^0.14.4": - version: 0.14.4 - resolution: "@backstage/core-components@npm:0.14.4" - dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/errors": ^1.2.4 - "@backstage/theme": ^0.5.3 - "@backstage/version-bridge": ^1.0.8 - "@date-io/core": ^1.3.13 - "@material-table/core": ^3.1.0 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.61 - "@react-hookz/web": ^24.0.0 - "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 - "@types/react-sparklines": ^1.7.0 - "@types/react-text-truncate": ^0.14.0 - ansi-regex: ^6.0.1 - classnames: ^2.2.6 - d3-selection: ^3.0.0 - d3-shape: ^3.0.0 - d3-zoom: ^3.0.0 - dagre: ^0.8.5 - linkify-react: 4.1.3 - linkifyjs: 4.1.3 - lodash: ^4.17.21 - pluralize: ^8.0.0 - qs: ^6.9.4 - rc-progress: 3.5.1 - react-helmet: 6.1.0 - react-hook-form: ^7.12.2 - react-idle-timer: 5.7.2 - react-markdown: ^8.0.0 - react-sparklines: ^1.7.0 - react-syntax-highlighter: ^15.4.5 - react-text-truncate: ^0.19.0 - react-use: ^17.3.2 - react-virtualized-auto-sizer: ^1.0.11 - react-window: ^1.8.6 - remark-gfm: ^3.0.1 - zen-observable: ^0.10.0 - zod: ^3.22.4 - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: b96721b267daeec5a73a8b487f96ab5b5b3a85b8b113b2e45c5b733f3201af0d5cda3d7a325f5f68a4057ccbe78beac9f239b51ceb3099d3b0001709ec16928b - languageName: node - linkType: hard - -"@backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@^0.14.4, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": version: 0.0.0-use.local resolution: "@backstage/core-components@workspace:packages/core-components" dependencies: @@ -4108,6 +3982,57 @@ __metadata: languageName: unknown linkType: soft +"@backstage/core-components@npm:^0.13.10": + version: 0.13.10 + resolution: "@backstage/core-components@npm:0.13.10" + dependencies: + "@backstage/config": ^1.1.1 + "@backstage/core-plugin-api": ^1.8.2 + "@backstage/errors": ^1.2.3 + "@backstage/theme": ^0.5.0 + "@backstage/version-bridge": ^1.0.7 + "@date-io/core": ^1.3.13 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^23.0.0 + "@types/react": ^16.13.1 || ^17.0.0 + "@types/react-sparklines": ^1.7.0 + "@types/react-text-truncate": ^0.14.0 + ansi-regex: ^6.0.1 + classnames: ^2.2.6 + d3-selection: ^3.0.0 + d3-shape: ^3.0.0 + d3-zoom: ^3.0.0 + dagre: ^0.8.5 + linkify-react: 4.1.3 + linkifyjs: 4.1.3 + lodash: ^4.17.21 + pluralize: ^8.0.0 + qs: ^6.9.4 + rc-progress: 3.5.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-idle-timer: 5.6.2 + react-markdown: ^8.0.0 + react-sparklines: ^1.7.0 + react-syntax-highlighter: ^15.4.5 + react-text-truncate: ^0.19.0 + react-use: ^17.3.2 + react-virtualized-auto-sizer: ^1.0.11 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ^3.22.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: ec2a0d0a27bc4d6b9d4da97f0b4df600148529ee51bf2c8e7d3adc45c3950adac662535d3beabc451db346f2c7e3c412ceaa756fc774012b43dff5e2695f2271 + languageName: node + linkType: hard + "@backstage/core-plugin-api@^1.8.2, @backstage/core-plugin-api@^1.9.2, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": version: 0.0.0-use.local resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api" @@ -4255,26 +4180,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/frontend-plugin-api@npm:^0.6.4": - version: 0.6.4 - resolution: "@backstage/frontend-plugin-api@npm:0.6.4" - dependencies: - "@backstage/core-components": ^0.14.4 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/types": ^1.1.1 - "@backstage/version-bridge": ^1.0.8 - "@material-ui/core": ^4.12.4 - "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 - lodash: ^4.17.21 - zod: ^3.22.4 - zod-to-json-schema: ^3.21.4 - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 2ae2919147dcfd8a5b4379059ecb76461a27f38159c398915384db7a7396bc65451cf696d955e4ba23eb6dfb549395624d09412d0c9c776072d3f003e5f1cba8 - languageName: node - linkType: hard - "@backstage/frontend-plugin-api@workspace:^, @backstage/frontend-plugin-api@workspace:packages/frontend-plugin-api": version: 0.0.0-use.local resolution: "@backstage/frontend-plugin-api@workspace:packages/frontend-plugin-api" @@ -4338,24 +4243,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@npm:^1.1.26": - version: 1.1.26 - resolution: "@backstage/integration-react@npm:1.1.26" - dependencies: - "@backstage/config": ^1.2.0 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/integration": ^1.10.0 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@types/react": ^16.13.1 || ^17.0.0 - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 590e8293a0e21a034126c1a00c1c69c66bba81dcbf39675336c092b250ee139effe874e443a99521751b3c1aa9b103603bc8a3177a9f115ff0f1a0249ac5eed6 - languageName: node - linkType: hard - "@backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": version: 0.0.0-use.local resolution: "@backstage/integration-react@workspace:packages/integration-react" @@ -4380,23 +4267,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@npm:^1.10.0": - version: 1.10.0 - resolution: "@backstage/integration@npm:1.10.0" - dependencies: - "@azure/identity": ^4.0.0 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@octokit/auth-app": ^4.0.0 - "@octokit/rest": ^19.0.3 - cross-fetch: ^4.0.0 - git-url-parse: ^14.0.0 - lodash: ^4.17.21 - luxon: ^3.0.0 - checksum: 86324df95b30ff6ae92fcc605bd21d0f12cdc0553d555ebe8977a1be6554819ad8723eabcd99d1574c7c244b4822a6628d01273557040c89360394ba3198f6b9 - languageName: node - linkType: hard - "@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" @@ -5449,18 +5319,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@npm:^1.0.20, @backstage/plugin-catalog-common@npm:^1.0.22": - version: 1.0.22 - resolution: "@backstage/plugin-catalog-common@npm:1.0.22" - dependencies: - "@backstage/catalog-model": ^1.4.5 - "@backstage/plugin-permission-common": ^0.7.13 - "@backstage/plugin-search-common": ^1.2.11 - checksum: f468ade184d5e535cc27cbb27a9dbd6cd21c1601b5a84167d2ea1004f471180ef8bf148df5561b5557c332bdc01480d020e93f62915f029cc728802cebf8e255 - languageName: node - linkType: hard - -"@backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@^1.0.20, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common" dependencies: @@ -5569,43 +5428,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@npm:^1.11.3, @backstage/plugin-catalog-react@npm:^1.9.3": - version: 1.11.3 - resolution: "@backstage/plugin-catalog-react@npm:1.11.3" - dependencies: - "@backstage/catalog-client": ^1.6.4 - "@backstage/catalog-model": ^1.4.5 - "@backstage/core-components": ^0.14.4 - "@backstage/core-plugin-api": ^1.9.2 - "@backstage/errors": ^1.2.4 - "@backstage/frontend-plugin-api": ^0.6.4 - "@backstage/integration-react": ^1.1.26 - "@backstage/plugin-catalog-common": ^1.0.22 - "@backstage/plugin-permission-common": ^0.7.13 - "@backstage/plugin-permission-react": ^0.4.22 - "@backstage/types": ^1.1.1 - "@backstage/version-bridge": ^1.0.8 - "@material-ui/core": ^4.12.2 - "@material-ui/icons": ^4.9.1 - "@material-ui/lab": 4.0.0-alpha.61 - "@react-hookz/web": ^24.0.0 - "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 - classnames: ^2.2.6 - lodash: ^4.17.21 - material-ui-popup-state: ^1.9.3 - qs: ^6.9.4 - react-use: ^17.2.4 - yaml: ^2.0.0 - zen-observable: ^0.10.0 - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: d04919bff692094bb145d8479aae47368911f3adc92644b4742e5db1296af9a2673cf4341995b9c65e660cd608d3b59a136b9c164ab2df51bdc3ccbaf5af71fd - languageName: node - linkType: hard - -"@backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@^1.11.3, @backstage/plugin-catalog-react@^1.9.3, @backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-react@workspace:plugins/catalog-react" dependencies: @@ -6444,7 +6267,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@^0.7.13, @backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": +"@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common" dependencies: @@ -6482,7 +6305,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-react@^0.4.22, @backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": +"@backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-react@workspace:plugins/permission-react" dependencies: @@ -7216,7 +7039,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-search-common@^1.2.11, @backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": +"@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": version: 0.0.0-use.local resolution: "@backstage/plugin-search-common@workspace:plugins/search-common" dependencies: @@ -7753,23 +7576,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/theme@npm:^0.5.0, @backstage/theme@npm:^0.5.3": - version: 0.5.3 - resolution: "@backstage/theme@npm:0.5.3" - dependencies: - "@emotion/react": ^11.10.5 - "@emotion/styled": ^11.10.5 - "@mui/material": ^5.12.2 - peerDependencies: - "@material-ui/core": ^4.12.2 - "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - checksum: ac6c3bbd73294385f73aa91e04f8bf3a1bb78cadc0e43034760ebf19e86814ed2d679f2641bb086aa9e305a24d923d8c3480b2de3bff55189c19bc5dfdce1814 - languageName: node - linkType: hard - -"@backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme": +"@backstage/theme@^0.5.0, @backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme": version: 0.0.0-use.local resolution: "@backstage/theme@workspace:packages/theme" dependencies: @@ -7800,7 +7607,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.7, @backstage/version-bridge@^1.0.8, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.7, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": version: 0.0.0-use.local resolution: "@backstage/version-bridge@workspace:packages/version-bridge" dependencies: From c65938d64d769cb3e8f27f495756544897a5ea31 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 14 May 2024 16:58:20 +0200 Subject: [PATCH 117/153] docs/overview: update roadmap for fall 2024 Signed-off-by: Patrik Oldsberg --- docs/overview/roadmap.md | 120 +++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 62 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 186619d1df..f53f79f431 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -6,91 +6,87 @@ description: Roadmap of Backstage ## The Backstage Roadmap -Backstage is currently under rapid development. This page details the project's -public roadmap, the result of ongoing collaboration between the core maintainers -and the broader Backstage community. +Backstage is still under rapid development, and this page details the project's +public roadmap. This not a complete list of all work happening in and around the +project, it only highlights the highest priority initiatives worked on by the +core maintainers. -The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future work"](#future-work). With "next" we mean features planned for release within -the ongoing quarter from July through September 2022. With "future" we mean -features on the radar, but not yet scheduled. +## 2024 Fall Roadmap -| [What's next](#whats-next) | [Future work](#future-work) | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| [Backend Services (MVP)](#backend-services-mvp)
[Backstage Security Audit](#backstage-security-audit)
[Backstage Threat Model](#backstage-threat-model)
[Software Catalog pagination](#software-catalog-pagination)
[More SIGs](#more-sigs) | Ease of onboarding
Composable Homepage 1.0
Creator experience
GraphQL
Telemetry | +The initiatives listed below are planned for release within the next half-year, starting in May 2024. The roadmap is updated every 6 months, and the next update is planned for November 2024. -The long-term roadmap (12 - 36 months) is not detailed in the public roadmap. -Third-party contributions are also not currently included in the roadmap. Let us -know about any ongoing developments and we're happy to include them here as -well. +### Backend System 1.0 -## What's next +The goal of this initiative is the stable 1.0 release of the [new backend system](../backend-system/index.md). +This includes ensuring that all documentation is up to date, and includes API +reviews and refactoring efforts to ensure that what is released is both stable +and evolvable. You can follow along with this work in the [meta issue](https://github.com/backstage/backstage/issues/24493). -The feature set below is planned for the ongoing quarter, and grouped by theme. -The list order doesn't necessarily reflect priority, and the development/release -cycle will vary based on maintainer schedules. +As part of this initiative, there will also be and exploration on how to +simplify extension of backend services. It is not currently possible to augment +backend services through declarative integration, they are instead only +customizable through complete replacement. This also limits the ability to +modularize services and scale ownership of the implementations. The goal is to +provide a more flexible and scalable way to extend backend services. -### Backend Services (MVP) +### New Frontend System - Ready for Adoption -To better scale and maintain the Backstage instances, a backend services system -is planned to be introduced as part of the software architecture. This layer of -backend services will help in decoupling the various modules (e.g. Catalog and -Scaffolder) from the frontend experience. +The [new fronted system](../frontend-system/index.md) still needs more work, and +the next milestone is to improve it to the point where there is enough +confidence in the design to start encouraging adoption in the community. You can +follow along with this work in the [meta issue](https://github.com/backstage/backstage/issues/19545). +This milestone also includes reaching and executing [rollout phase 2](https://github.com/backstage/backstage/issues/19545#issuecomment-1766069146). -After the experimentation and design happened in the past quarter, soon we plan to release a first version to start providing the first benefits to adopters and developers. +Once the initial milestone is reached, the goal is to also build out broader +support for the new frontend system in the core plugins. ### Backstage Security Audit -This is the continuation of the initiative started in the previous quarters. This -quarter will see the publication of the report describing the outcome of the -audit, together the first fixes and the development of some of the changes -required to address the vulnerabilities. +This is the second security audit of the Backstage project. It is done together, +and with the support of the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/). +This time the audit will in particular focus on the recently introduced +[authentication system](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution), +but also cover other parts of the project. -This initiative is the first of a broader Security Strategy for Backstage. The -purpose of the Security Audit is to involve third-party companies in auditing -the platform. The benefit for the adopters is clear: we want Backstage to be as -secure as possible, and we want to make it reliable through a specific -initiative. +### Plugin Metadata -This initiative is done together with, and with the support of, the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/). +The goal of this initiative is to provide better machine readable metadata for +Backstage packages, available both at runtime, at build-time and as part of +package registries. We want to surface information such as what packages make up +a particular plugin, what features it provides, and more generally laying the +foundation for an evolvable plugin metadata system. -### Backstage Threat Model +### MUI v5 Green-light -This is another (relevant) initiative planned to make Backstage a secure product for the adopters. The goals of this initiative are: +Material-UI v4 is still the officially supported version of MUI in Backstage. +While we have heard that adopters have had success using MUI 5, this is still an +untested path with known bugs. The goal of this initiative is to iron out any +remaining issues of gaps, and then provide a green light for migration to MUI 5. -1. Understand where security investment and attention is needed. -2. Guide the upcoming security audit. -3. Communicate expectations to Backstage adopters and inform and attract security researchers. +### Configuration Improvements -The planned artifacts are: +This initiative aims to improve the configuration experience and reliability in +Backstage. Areas for improvement include the way that configuration schema is +loaded, the way that plugins access configuration that is not owned by them, how +plugins read configuration, and how configuration visibility is handled. -- Concise high level threat model that will be included as part of the Backstage security documentation. -- Granular threat model created in conjunction with the security audit to inform further security investment areas for Backstage. +### Versioned Documentation -### Software Catalog pagination +The goal of this initiative is to provide versioned documentation at +[backstage.io](https://backstage.io). This lets us provide documentation that is +both up-to-date while at the same time not ahead of the latest release. -Today adopters with a big catalog (with several thousands of software components) might not have an ideal end-user experience when viewing the `/catalog` page. The issue is related to how the entities are fetched by the frontend. In order to provide a better end-user experience the pagination of the catalog’s entities needs to be enforced. Some experimentation is already completed but in this quarter we plan to continue, and hopefully complete, this relevant enhancement. +### Rework Pull Request & Issue Process -### More SIGs +Our current review and issue triage process is centered around either core- or +project area maintainers. The goal of this initiative is to make it simpler for +more members of the community to be involved and contribute to this process. -In the last quarter we launched the [Catalog SIG (Special Interest Group)](https://github.com/backstage/community/tree/main/sigs/sig-catalog) to better coordinate the increasing number of contributions to the project. We think that this is the proper path to follow to engage more with the contributors. For this reason we will launch other SIGs dedicated to the most interesting topics for the community. +### Catalog Observability -## Future work - -The following feature list doesn't represent a commitment to develop, and the -list order doesn't reflect any priority or importance, but these features are on -the maintainers' radar, with clear interest expressed by the community. - -- **Ease of onboarding:** A faster (with less development) and easier setup of - Backstage and the most relevant/adopted plugins. -- **Composable Homepage 1.0:** Driving this to 1.0 by adding some composable - components. -- **Creator experience:** Provide a better Backstage user experience through - visual guidelines and templates, especially navigation across plug-ins and - portal functionalities. -- **[GraphQL](https://graphql.org/) support:** Introduce the ability to query - Backstage backend services with a standard query language for APIs. -- **Telemetry:** To efficiently generate logging and metrics in such a way that - adopters can get insights so that Backstage can be monitored and improved. +The goal of this initiative is to provide better tools for debugging catalog +ingestion issues and to more generally reduce friction for setting up and +maintaining the software catalog. ## How to influence the roadmap From b7de62385ca04eab5437040af6d9549ea54a1a7c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 14 May 2024 17:17:34 +0200 Subject: [PATCH 118/153] backend-app-api: fix object meta null proto crash Signed-off-by: Patrik Oldsberg --- .changeset/brave-apples-move.md | 5 +++++ .../backend-app-api/src/logging/WinstonLogger.test.ts | 8 ++++++++ packages/backend-app-api/src/logging/WinstonLogger.ts | 8 ++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .changeset/brave-apples-move.md diff --git a/.changeset/brave-apples-move.md b/.changeset/brave-apples-move.md new file mode 100644 index 0000000000..7a1fa86a56 --- /dev/null +++ b/.changeset/brave-apples-move.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Fixed a potential crash when passing an object with a `null` prototype as log meta. diff --git a/packages/backend-app-api/src/logging/WinstonLogger.test.ts b/packages/backend-app-api/src/logging/WinstonLogger.test.ts index d025719d9a..06f9cdd4c3 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.test.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.test.ts @@ -65,6 +65,10 @@ describe('WinstonLogger', () => { level: 'error', message: { nested: 'hello (world) from nested object', + null: null, + nullProto: Object.create(null, { + foo: { value: 'hello foo', enumerable: true }, + }), }, }; @@ -74,6 +78,10 @@ describe('WinstonLogger', () => { ...log, message: { nested: '[REDACTED] (world) from nested object', + null: null, + nullProto: { + foo: 'hello foo', // read only prop is not redacted + }, }, }), ); diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 8d4b37bb8d..3fcb4142b6 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -87,11 +87,15 @@ export class WinstonLogger implements RootLoggerService { const replace = (obj: TransformableInfo) => { for (const key in obj) { - if (obj.hasOwnProperty(key)) { + if (Object.hasOwn(obj, key)) { if (typeof obj[key] === 'object') { obj[key] = replace(obj[key] as TransformableInfo); } else if (typeof obj[key] === 'string') { - obj[key] = obj[key]?.replace(redactionPattern, '[REDACTED]'); + try { + obj[key] = obj[key]?.replace(redactionPattern, '[REDACTED]'); + } catch { + /* ignore read only properties */ + } } } } From bab063c8d1143ce09a7f9465034f58d134a43c23 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 14 May 2024 17:26:01 +0200 Subject: [PATCH 119/153] Apply suggestions from code review Co-authored-by: Phil Kuang Signed-off-by: Patrik Oldsberg --- docs/overview/roadmap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index f53f79f431..1a41eedd63 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -22,7 +22,7 @@ This includes ensuring that all documentation is up to date, and includes API reviews and refactoring efforts to ensure that what is released is both stable and evolvable. You can follow along with this work in the [meta issue](https://github.com/backstage/backstage/issues/24493). -As part of this initiative, there will also be and exploration on how to +As part of this initiative, there will also be an exploration on how to simplify extension of backend services. It is not currently possible to augment backend services through declarative integration, they are instead only customizable through complete replacement. This also limits the ability to @@ -61,7 +61,7 @@ foundation for an evolvable plugin metadata system. Material-UI v4 is still the officially supported version of MUI in Backstage. While we have heard that adopters have had success using MUI 5, this is still an untested path with known bugs. The goal of this initiative is to iron out any -remaining issues of gaps, and then provide a green light for migration to MUI 5. +remaining issues or gaps, and then provide a green light for migration to MUI 5. ### Configuration Improvements From 14495e165e3f3667b6b04ec071c87ffc2ba304fd Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Tue, 14 May 2024 11:58:15 -0500 Subject: [PATCH 120/153] docs: change Twilio's ADOPTERS.md contact to @alecjacobs5401 My last day at Twilio is 2024-05-17 and Alec Jacobs will take over as Tech Lead and point person. Update Twilio's contact in ADOPTERS.md to reflect the change. Follows #11943 Signed-off-by: Kyle Smith --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 4a6f726fcd..2bb76a199e 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -154,7 +154,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Lendingkart](https://www.lendingkart.com/) | [Dinesh Rajpoot](mailto:dinesh.rajpoot@lendingkart.com) | Service catalog, Software templates to enforce best practices and tech insights to track mandates & migrations. | | [Meltwater](https://underthehood.meltwater.com) | [@spier](https://github.com/spier), [@remen](https://github.com/remen) | Improving developer experience by centralizing documentation and internal APIs. Goal: Foster InnerSource collaboration and speed up onboarding time in our 500+ people Product & Engineering org. | | [Doctolib](https://doctolib.engineering/) | [@djiit](https://github.com/djiit) | Rails modularization effort awareness, tech organization discoverability. Improving the daily workflows and collaboration processes of our engineers. | -| [Twilio](https://www.twilio.com) | [Kyle Smith](https://github.com/knksmith57) | Developer portal, universal software catalog, and centralized taxonomy platform. | +| [Twilio](https://www.twilio.com) | [Alec Jacobs](https://github.com/alecjacobs5401) | Developer portal, universal software catalog, and centralized taxonomy platform. | | [OVHcloud](https://www.ovhcloud.com/fr/) | [Jean-Philippe Blary](https://github.com/blaryjp), [Arnaud Bauer](mailto:arnaud.bauer@ovhcloud.com), [Flavien Chantelot](https://github.com/Dorn-) | We're providing Backstage to our collaborators to ease their daily jobs, and let them extends it using plugins. | | [Procter & Gamble](https://us.pg.com/) | [Binita Nayak](https://github.com/binitan), | P&G leverages Backstage to build internal developer portal to ensure developers' happiness. This developer portal shall act as single source of information needed by development teams to seamlessly create, find and maintain their software components/resources/documentation. | | [SANS Institute](https://www.sans.org) | [Christopher Klewin](mailto:cklewin@sans.org) | Developer portal for centralized visibility, reporting, and tooling across multiple organizations. | From 881e49d94c2bf54bb7007c61a7c4c75400135c49 Mon Sep 17 00:00:00 2001 From: Erik Sjoholm Date: Tue, 14 May 2024 10:33:50 -0700 Subject: [PATCH 121/153] Remove changes to scaffolder-backend api-report generated by running yarn build:api-reports Signed-off-by: Erik Sjoholm --- plugins/scaffolder-backend/api-report.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 8a9623d78f..c141733ec4 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -302,10 +302,7 @@ export const createPublishGitlabMergeRequestAction: (options: { }) => TemplateAction_2< { repoUrl: string; - title: string - /** - * @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead - */; + title: string; description: string; branchName: string; targetBranchName?: string | undefined; From aeb8a06dc28aec29f4e827ef30a76abbc528e178 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Date: Wed, 15 May 2024 08:32:43 +0530 Subject: [PATCH 122/153] Updated the backend-system/building-backends documents Signed-off-by: Aditya Kumar --- .../building-backends/01-index.md | 8 +++- .../building-backends/08-migrating.md | 42 ++++++++++++++----- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/docs/backend-system/building-backends/01-index.md b/docs/backend-system/building-backends/01-index.md index 4caa6fd524..44aa0c7e28 100644 --- a/docs/backend-system/building-backends/01-index.md +++ b/docs/backend-system/building-backends/01-index.md @@ -6,8 +6,12 @@ sidebar_label: Overview description: Building backends using the new backend system --- -> NOTE: If you have an existing backend that is not yet using the new backend -> system, see [migrating](./08-migrating.md). +:::note Note + +If you have an existing backend that is not yet using the new backend +system, see [migrating](./08-migrating.md). + +::: This section covers how to set up and customize your own Backstage backend. It covers some aspects of how backend instances fit into the larger system, but for a more in-depth explanation of the role of backends in the backend system, see [the architecture section](../architecture/02-backends.md). diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index fc0bf35267..ae41193b11 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -201,10 +201,14 @@ const legacyPlugin = makeLegacyPlugin( After this, your backend will know how to instantiate your thing on demand and place it in the legacy plugin environment. -> NOTE: If you happen to be dealing with a service ref that does NOT have a -> default implementation, but rather has a separate service factory, then you -> will also need to import that factory and pass it to the `services` array -> argument of `createBackend`. +:::note Note + +If you happen to be dealing with a service ref that does NOT have a +default implementation, but rather has a separate service factory, then you +will also need to import that factory and pass it to the `services` array +argument of `createBackend`. + +::: ## Cleaning Up the Plugins Folder @@ -216,10 +220,14 @@ maintained by the Backstage maintainers, you may find that they have already been migrated to the new backend system. This section describes some specific such migrations you can make. -> NOTE: For each of these, note that your backend still needs to have a -> dependency (e.g. in `packages/backend/package.json`) to those plugin packages, -> and they still need to be configured properly in your app-config. Those -> mechanisms still work just the same as they used to in the old backend system. +:::note Note + +For each of these, note that your backend still needs to have a +dependency (e.g. in `packages/backend/package.json`) to those plugin packages, +and they still need to be configured properly in your app-config. Those +mechanisms still work just the same as they used to in the old backend system. + +::: ### The App Plugin @@ -880,7 +888,11 @@ auth: - resolver: emailMatchingUserEntityAnnotation ``` -> Note: the resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: #### Auth Plugin Modules and Their Resolvers @@ -1137,7 +1149,11 @@ backend.add(import('@backstage/plugin-search-backend/alpha')); /* highlight-add-end */ ``` -> Note: this will use the Lunr search engine which stores its index in memory +:::note Note + +This will use the Lunr search engine which stores its index in memory. + +::: #### Search Engines @@ -1226,7 +1242,11 @@ backend.add( /* highlight-add-end */ ``` -> Note: The above example includes a default allow-all policy. If that is not what you want, do not add the second line and instead investigate one of the options below. +:::note Note + +The above example includes a default allow-all policy. If that is not what you want, do not add the second line and instead investigate one of the options below. + +::: #### Custom Permission Policy From 7f0268486a335a1fb4455e1c08258b4a88e2569d Mon Sep 17 00:00:00 2001 From: Heikki Hellgren Date: Wed, 15 May 2024 08:47:57 +0300 Subject: [PATCH 123/153] fix: do not show scrollbars in notification description if not needed Signed-off-by: Heikki Hellgren --- .changeset/four-adults-mix.md | 5 +++++ .../src/components/NotificationsTable/NotificationsTable.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/four-adults-mix.md diff --git a/.changeset/four-adults-mix.md b/.changeset/four-adults-mix.md new file mode 100644 index 0000000000..5013166dc6 --- /dev/null +++ b/.changeset/four-adults-mix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Do not always show scrollbars in notification description diff --git a/plugins/notifications/src/components/NotificationsTable/NotificationsTable.tsx b/plugins/notifications/src/components/NotificationsTable/NotificationsTable.tsx index db2b351432..72a27975f6 100644 --- a/plugins/notifications/src/components/NotificationsTable/NotificationsTable.tsx +++ b/plugins/notifications/src/components/NotificationsTable/NotificationsTable.tsx @@ -43,7 +43,7 @@ const ThrottleDelayMs = 1000; const useStyles = makeStyles({ description: { maxHeight: '5rem', - overflow: 'scroll', + overflow: 'auto', }, severityItem: { alignContent: 'center', From 3568039ef23dab1d482e5be6cb07342aff912b08 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 15 May 2024 10:16:02 +0200 Subject: [PATCH 124/153] catalog-backend-module-gitlab: fix release Signed-off-by: Patrik Oldsberg --- .../CHANGELOG.md | 2 +- .../package.json | 94 +++++++++---------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 5500adc6b1..ee1ceb70b7 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,6 +1,6 @@ # @backstage/plugin-catalog-backend-module-gitlab -## 0.3.15 +## 0.3.16 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 83e2a47be9..109dee369e 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,8 +1,53 @@ { + "name": "@backstage/plugin-catalog-backend-module-gitlab", + "version": "0.3.16", + "description": "A Backstage catalog backend module that helps integrate towards GitLab", "backstage": { "role": "backend-plugin-module" }, - "configSchema": "config.d.ts", + "publishConfig": { + "access": "public" + }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/catalog-backend-module-gitlab" + }, + "license": "Apache-2.0", + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "main": "src/index.ts", + "types": "src/index.ts", + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, + "files": [ + "config.d.ts", + "dist" + ], + "scripts": { + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" + }, "dependencies": { "@backstage/backend-common": "workspace:^", "@backstage/backend-plugin-api": "workspace:^", @@ -18,7 +63,6 @@ "node-fetch": "^2.6.7", "uuid": "^9.0.0" }, - "description": "A Backstage catalog backend module that helps integrate towards GitLab", "devDependencies": { "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^", @@ -28,49 +72,5 @@ "luxon": "^3.0.0", "msw": "^1.0.0" }, - "exports": { - ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", - "./package.json": "./package.json" - }, - "files": [ - "config.d.ts", - "dist" - ], - "homepage": "https://backstage.io", - "keywords": [ - "backstage" - ], - "license": "Apache-2.0", - "main": "src/index.ts", - "name": "@backstage/plugin-catalog-backend-module-gitlab", - "publishConfig": { - "access": "public" - }, - "repository": { - "directory": "plugins/catalog-backend-module-gitlab", - "type": "git", - "url": "https://github.com/backstage/backstage" - }, - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "postpack": "backstage-cli package postpack", - "prepack": "backstage-cli package prepack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "types": "src/index.ts", - "typesVersions": { - "*": { - "alpha": [ - "src/alpha.ts" - ], - "package.json": [ - "package.json" - ] - } - }, - "version": "0.3.15" + "configSchema": "config.d.ts" } From 8985c63966080b3fdb9055d6bfdc055240866dac Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 14 May 2024 13:25:28 +0200 Subject: [PATCH 125/153] docs: 1.27 release notes Signed-off-by: Vincenzo Scamporlino --- docs/releases/v1.27.0.md | 83 ++++++++++++++++++++++++++++++++++ microsite/docusaurus.config.ts | 2 +- microsite/sidebars.json | 1 + 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 docs/releases/v1.27.0.md diff --git a/docs/releases/v1.27.0.md b/docs/releases/v1.27.0.md new file mode 100644 index 0000000000..123d9663ad --- /dev/null +++ b/docs/releases/v1.27.0.md @@ -0,0 +1,83 @@ +--- +id: v1.27.0 +title: v1.27.0 +description: Backstage Release v1.27.0 +--- + +These are the release notes for the v1.27.0 release of [Backstage](https://backstage.io/). + +A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done. + +## Highlights + +### Backend System Deprecations + +As part of the [work towards a stable 1.0 release of the new backend system](https://github.com/backstage/backstage/issues/24493), we will deprecate and move or remove several utilities from `@backstage/backend-common`. This release contains a few of these deprecations, with more to be expected in the future. The long-term goal is to completely deprecate and remove the `@backstage/backend-common` package. + +### Hierarchical Domains + +The Backstage System Model has been tweaked with the addition of a hierarchy of `Domain` entities. The change includes a new `spec.subdomainOf` property on the `Domain` entity, which can be used to express that a domain has a `partOf` (and conversely, `hasPart`) relation toward another domain. + +Contributed by [@dawngerpony](https://github.com/dawngerpony) and [@janogonzalez](https://github.com/janogonzalez) in [#17125](https://github.com/backstage/backstage/pull/17125). + +### Scaffolder workspace serialization + +Added experimental support for serialization of workspaces in the scaffolder. By serializing the workspace, it is possible to re-run the task in a non-sticky way. This means that the task can be restored and retried on a different scaffolder task worker. + +To enable this feature, set the `EXPERIMENTAL_workspaceSerialization` option to `true` in the `scaffolder` section of the `app-config.yaml` file: + +```yaml +scaffolder: + EXPERIMENTAL_workspaceSerialization: true +``` + +Contributed by [@acierto](https://github.com/acierto) in [#24570](https://github.com/backstage/backstage/pull/24570). + +### Scaffolder `notification:send` action + +The new `notification:send` action allows sending notifications from templates. This can be used to send notifications to users when executing a template. Please note that the notifications system is still under development. + +To install this action, add the new module to your backend: + +```diff ++ backend.add(import('@backstage/plugin-scaffolder-backend-module-notifications')); +``` + +Contributed by [@drodil](https://github.com/drodil) in [#24588](https://github.com/backstage/backstage/pull/24588). + +### Backend Authentication + +The requirement to configure a secret for backend authentication in production has been removed. It is now only needed if you rely on the [legacy authentication mechanism](https://backstage.io/docs/auth/service-to-service-auth#external-callers-legacy). If you don’t configure any secrets you will also not be able to generate tokens with the `TokenManager` service, although use of this service is discouraged as it has been replaced by the `AuthService`. + +### User Authentication + +The `auth` backend plugin now provides an `authOwnershipResolutionExtensionPoint` that lets you override the default ownership resolution used by sign-in resolvers. This allows you to customize this logic for all sign-in resolvers without replacing them. + +Contributed by [@drodil](https://github.com/drodil) in [#22765](https://github.com/backstage/backstage/pull/22765). + +### Events support for GitLab Entity and Org Discovery + +The `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider` can now be configured to receive events from GitLab. This allows for the automatic discovery of entities in Backstage when groups or users are created or updated in GitLab. + +Contributed by [@elaine-mattos](https://github.com/elaine-mattos) in [#23373](https://github.com/backstage/backstage/pull/23373). + +## Security Fixes + +This release does not contain any security fixes. + +## Upgrade path + +We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). + +## Links and References + +Below you can find a list of links and references to help you learn about and start using this new release. + +- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) +- [GitHub repository](https://github.com/backstage/backstage) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) +- [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support +- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.27.0-changelog.md) +- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) + +Sign up for our [newsletter](https://info.backstage.spotify.com/newsletter_subscribe) if you want to be informed about what is happening in the world of Backstage. diff --git a/microsite/docusaurus.config.ts b/microsite/docusaurus.config.ts index 5f6dfd3bc6..b7b98bf9e5 100644 --- a/microsite/docusaurus.config.ts +++ b/microsite/docusaurus.config.ts @@ -216,7 +216,7 @@ const config: Config = { position: 'left', }, { - to: 'docs/releases/v1.26.0', + to: 'docs/releases/v1.27.0', label: 'Releases', position: 'left', }, diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 6d9ba3a680..624fe83029 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -1,6 +1,7 @@ { "releases": { "Release Notes": [ + "releases/v1.27.0", "releases/v1.26.0", "releases/v1.25.0", "releases/v1.24.0", From 9ee948a4d81a4c3d8a80783b471296aee69a6f9c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 15 May 2024 10:42:20 +0200 Subject: [PATCH 126/153] cli: bump esbuild to es2022 Signed-off-by: Patrik Oldsberg --- .changeset/young-camels-return.md | 5 +++++ packages/cli/src/lib/builder/config.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/young-camels-return.md diff --git a/.changeset/young-camels-return.md b/.changeset/young-camels-return.md new file mode 100644 index 0000000000..efdd822788 --- /dev/null +++ b/.changeset/young-camels-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Bump `esbuild` target for package builds to `ES2022`. diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 6fd92101f6..8beb2cbb1e 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -151,7 +151,7 @@ export async function makeRollupConfigs( template: svgrTemplate, }), esbuild({ - target: 'es2019', + target: 'ES2022', minify: options.minify, }), ], From 6accdd99c67fcbd5d3e5642051feba3c724537ce Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 15 May 2024 10:49:53 +0200 Subject: [PATCH 127/153] docs: hierarchy of domains Signed-off-by: Vincenzo Scamporlino --- .../software-catalog/software-model-entities.drawio.svg | 4 ++-- docs/features/software-catalog/system-model.md | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/assets/software-catalog/software-model-entities.drawio.svg b/docs/assets/software-catalog/software-model-entities.drawio.svg index d087583245..122f58b065 100644 --- a/docs/assets/software-catalog/software-model-entities.drawio.svg +++ b/docs/assets/software-catalog/software-model-entities.drawio.svg @@ -1,4 +1,4 @@ - + -
Domain
(e.g.  domain
models, metrics, KPIs, business purpose)
Domain...
partOf
partOf
System
Collection of entities that cooperate to perform some function
System...
dependsOn
dependsOn
partOf
partOf
Resource
(e.g. SQL Database, S3 bucket, ...)
Resource...
consumesAPI
consumesAPI
API
(e.g. OpenAPI, gRPC API, Avro, Dataset, ...)
API...
providesAPI
providesAPI
partOf
partOf
Component
(e.g. backend service, data pipeline ...)
Component...
partOf
partOf
dependsOn
dependsOn
Kind: Group
Kind: Group
Kind: User
Kind: User
OwnerOf
OwnerOf
OwnedBy
OwnedBy
Service
Service
website
website
website
website
Types
Types
service
service
website
website
library
library
asyncapi
asyncapi
graphql
graphql
grpc
grpc
Types
Types
openapi
openapi
business-unit
business-unit
product-area
product-area
root
root
Types
Types
team
team
s3-bucket
s3-bucket
cluster
cluster
Types
Types
database
database
Kind: Template
Parameters rendered in the
frontend and the steps executed in  the scaffolding process
Kind: Template...
Kind: Location
a marker that references other places to look for catalog data
Kind: Location...
memberOf
memberOf
hasMember
hasMember
parentOf
parentOf
childOf
childOf
Text is not SVG - cannot display
\ No newline at end of file +
Domain
(e.g.  domain
models, metrics, KPIs, business purpose)
partOf
System
Collection of entities that cooperate to perform some function
dependsOn
partOf
Resource
(e.g. SQL Database, S3 bucket, ...)
consumesAPI
API
(e.g. OpenAPI, gRPC API, Avro, Dataset, ...)
providesAPI
partOf
Component
(e.g. backend service, data pipeline ...)
partOf
dependsOn
Kind: Group
Kind: User
OwnerOf
OwnedBy
Service
website
website
Types
service
website
library
asyncapi
graphql
grpc
Types
openapi
business-unit
product-area
root
Types
team
s3-bucket
cluster
Types
database
Kind: Template
Parameters rendered in the
frontend and the steps executed in  the scaffolding process
Kind: Location
a marker that references other places to look for catalog data
memberOf
hasMember
parentOf
childOf
subdomainOf
\ No newline at end of file diff --git a/docs/features/software-catalog/system-model.md b/docs/features/software-catalog/system-model.md index af359bb18a..ee7270a960 100644 --- a/docs/features/software-catalog/system-model.md +++ b/docs/features/software-catalog/system-model.md @@ -120,6 +120,9 @@ product or use-case, share the same entity types in their APIs, and integrate well with each other. Other domains could be “Content Ingestion”, “Ads” or “Search”. +In case of a large organization, it might make sense to further group domains +in a hierarchy, where a domain can be a subdomain of another domain. + ## Other ### Location From 75b9c07da8761ea04b500a8754254c6bf386cc0d Mon Sep 17 00:00:00 2001 From: David Festal Date: Wed, 15 May 2024 11:42:47 +0200 Subject: [PATCH 128/153] Add a test for the support of external schemas in the router Signed-off-by: David Festal --- .../app-dir/dist/.config-schema.json | 4 + .../app-backend/src/service/router.test.ts | 75 ++++++++++++++++++- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 plugins/app-backend/src/service/__fixtures__/app-dir/dist/.config-schema.json diff --git a/plugins/app-backend/src/service/__fixtures__/app-dir/dist/.config-schema.json b/plugins/app-backend/src/service/__fixtures__/app-dir/dist/.config-schema.json new file mode 100644 index 0000000000..3db59473d3 --- /dev/null +++ b/plugins/app-backend/src/service/__fixtures__/app-dir/dist/.config-schema.json @@ -0,0 +1,4 @@ +{ + "backstageConfigSchemaVersion": 1, + "schemas": [] +} diff --git a/plugins/app-backend/src/service/router.test.ts b/plugins/app-backend/src/service/router.test.ts index 30fa5454c0..6fffdb149f 100644 --- a/plugins/app-backend/src/service/router.test.ts +++ b/plugins/app-backend/src/service/router.test.ts @@ -15,12 +15,13 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { ConfigReader } from '@backstage/config'; +import { AppConfig, ConfigReader } from '@backstage/config'; import express from 'express'; import Router from 'express-promise-router'; import { resolve as resolvePath } from 'path'; import request from 'supertest'; import { createRouter } from './router'; +import { loadConfigSchema } from '@backstage/config-loader'; jest.mock('../lib/config', () => ({ injectConfig: jest.fn(), @@ -115,3 +116,75 @@ describe('createRouter with static fallback handler', () => { expect(response3.status).toBe(404); }); }); + +describe('createRouter config schema test', () => { + const libConfigs = require('../lib/config'); + const libConfigsActual = jest.requireActual('../lib/config'); + const readConfigsMock: jest.Mock = libConfigs.readConfigs; + + beforeEach(() => { + jest.resetAllMocks(); + readConfigsMock.mockImplementation(libConfigsActual.readConfigs); + }); + + it('uses an external schema', async () => { + await createRouter({ + logger: getVoidLogger(), + config: new ConfigReader({ + test: 'value', + }), + appPackageName: 'example-app', + schema: await loadConfigSchema({ + serialized: { + schemas: [ + { + value: { + type: 'object', + properties: { + test: { + visibility: 'frontend', + type: 'string', + }, + }, + }, + path: '/mock', + }, + ], + backstageConfigSchemaVersion: 1, + }, + }), + }); + + const results = readConfigsMock.mock.results; + expect(results.length).toBe(1); + + const mockedResult = results[0]; + expect(mockedResult.type).toBe('return'); + const result = await (mockedResult.value as Promise); + + expect(result.length).toBe(1); + expect(result[0].data).toStrictEqual({ + test: 'value', + }); + }); + + it('uses no external schema', async () => { + await createRouter({ + logger: getVoidLogger(), + config: new ConfigReader({ + test: 'value', + }), + appPackageName: 'example-app', + }); + + const results = readConfigsMock.mock.results; + expect(results.length).toBe(1); + + const mockedResult = results[0]; + expect(mockedResult.type).toBe('return'); + const result = await (mockedResult.value as Promise); + + expect(result.length).toBe(1); + expect(result[0].data).toStrictEqual({}); + }); +}); From fb398264c67c0a58f42ef512f74bf9c7a9a5f559 Mon Sep 17 00:00:00 2001 From: David Festal Date: Wed, 15 May 2024 11:43:39 +0200 Subject: [PATCH 129/153] Fix the regression in the support of external schemas in the router Signed-off-by: David Festal --- plugins/app-backend/src/service/router.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index f1fb20a4b5..8ec871df81 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -113,6 +113,7 @@ export async function createRouter( staticFallbackHandler, auth, httpAuth, + schema, } = options; const disableConfigInjection = @@ -143,6 +144,7 @@ export async function createRouter( config, appDistDir, env: process.env, + schema, }); const assetStore = From 82c2b908ccccb10c1865d2a4a9cfaac1bb63a543 Mon Sep 17 00:00:00 2001 From: David Festal Date: Wed, 15 May 2024 12:16:20 +0200 Subject: [PATCH 130/153] Add changeset Signed-off-by: David Festal --- .changeset/itchy-spoons-cry.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/itchy-spoons-cry.md diff --git a/.changeset/itchy-spoons-cry.md b/.changeset/itchy-spoons-cry.md new file mode 100644 index 0000000000..20877e8087 --- /dev/null +++ b/.changeset/itchy-spoons-cry.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-app-backend': patch +--- + +Restore the support of external config schema in the router of the `app-backend` plugin, which was broken in release `1.26.0`. +This support is critical for dynamic frontend plugins to have access to their config values. From e74c615bd610b99931921bf4d94c6cbb4d97a4d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 15 May 2024 13:04:54 +0200 Subject: [PATCH 131/153] remove last remnants of react-text-truncate from test mocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../Group/MembersList/MembersListCard.test.tsx | 13 ------------- .../Cards/OwnershipCard/OwnershipCard.test.tsx | 13 ------------- .../TechDocsSearchResultListItem.test.tsx | 5 ----- 3 files changed, 31 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index 06ec3b0ebd..793ffe274b 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -36,19 +36,6 @@ import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { Observable } from '@backstage/types'; -// Mock needed because jsdom doesn't correctly implement box-sizing -// https://github.com/ShinyChang/React-Text-Truncate/issues/70 -// https://stackoverflow.com/questions/71916701/how-to-mock-a-react-function-component-that-takes-a-ref-prop -jest.mock('react-text-truncate', () => { - const { forwardRef } = jest.requireActual('react'); - return { - __esModule: true, - default: forwardRef((props: any, ref: any) => ( -

- )), - }; -}); - const mockedStarredEntitiesApi: Partial = { starredEntitie$: () => { return { diff --git a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx index 72a912e16e..f2b949f768 100644 --- a/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx +++ b/plugins/org/src/components/Cards/OwnershipCard/OwnershipCard.test.tsx @@ -120,19 +120,6 @@ const getEntitiesMock = ( } as GetEntitiesResponse); }; -// Mock needed because jsdom doesn't correctly implement box-sizing -// https://github.com/ShinyChang/React-Text-Truncate/issues/70 -// https://stackoverflow.com/questions/71916701/how-to-mock-a-react-function-component-that-takes-a-ref-prop -jest.mock('react-text-truncate', () => { - const { forwardRef } = jest.requireActual('react'); - return { - __esModule: true, - default: forwardRef((props: any, ref: any) => ( -
{props.text}
- )), - }; -}); - describe('OwnershipCard', () => { const groupEntity: GroupEntity = { apiVersion: 'backstage.io/v1alpha1', diff --git a/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.test.tsx b/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.test.tsx index 15444fca9e..9ba88a78ff 100644 --- a/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.test.tsx +++ b/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.test.tsx @@ -18,11 +18,6 @@ import React from 'react'; import { TechDocsSearchResultListItem } from './TechDocsSearchResultListItem'; import { renderInTestApp } from '@backstage/test-utils'; -// Using canvas to render text.. -jest.mock('react-text-truncate', () => { - return ({ text }: { text: string }) => {text}; -}); - const validResult = { location: 'https://backstage.io/docs', title: 'Documentation', From db7b8243a9fef10ca6090f641e0aa663ddc6a2d3 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 15 May 2024 16:59:16 +0530 Subject: [PATCH 132/153] Updated documentation of auth providers Signed-off-by: AmbrishRamachandiran --- docs/auth/atlassian/provider.md | 6 +++++- docs/auth/gitlab/provider.md | 6 +++++- docs/auth/google/gcp-iap-auth.md | 6 +++++- docs/auth/google/provider.md | 6 +++++- docs/auth/microsoft/provider.md | 6 +++++- docs/auth/oauth2-proxy/provider.md | 6 +++++- docs/auth/okta/provider.md | 6 +++++- docs/auth/vmware-cloud/provider.md | 6 +++++- 8 files changed, 40 insertions(+), 8 deletions(-) diff --git a/docs/auth/atlassian/provider.md b/docs/auth/atlassian/provider.md index d6f19ee791..c8db009805 100644 --- a/docs/auth/atlassian/provider.md +++ b/docs/auth/atlassian/provider.md @@ -71,7 +71,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/gitlab/provider.md b/docs/auth/gitlab/provider.md index ff6a341667..f5613582fd 100644 --- a/docs/auth/gitlab/provider.md +++ b/docs/auth/gitlab/provider.md @@ -70,7 +70,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/google/gcp-iap-auth.md b/docs/auth/google/gcp-iap-auth.md index 709ef2b521..7e6178154c 100644 --- a/docs/auth/google/gcp-iap-auth.md +++ b/docs/auth/google/gcp-iap-auth.md @@ -50,7 +50,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `emailMatchingUserEntityAnnotation`: Matches the email address from the auth provider with the User entity where the value of the `google.com/email` annotation matches. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/google/provider.md b/docs/auth/google/provider.md index f2d2e8524e..f7802d43f7 100644 --- a/docs/auth/google/provider.md +++ b/docs/auth/google/provider.md @@ -64,7 +64,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `emailMatchingUserEntityAnnotation`: Matches the email address from the auth provider with the User entity where the value of the `google.com/email` annotation matches. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/microsoft/provider.md b/docs/auth/microsoft/provider.md index ab3c5d8044..b96f175183 100644 --- a/docs/auth/microsoft/provider.md +++ b/docs/auth/microsoft/provider.md @@ -84,7 +84,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `emailMatchingUserEntityAnnotation`: Matches the email address from the auth provider with the User entity where the value of the `microsoft.com/email` annotation matches. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/oauth2-proxy/provider.md b/docs/auth/oauth2-proxy/provider.md index aded90a1e7..8745f32297 100644 --- a/docs/auth/oauth2-proxy/provider.md +++ b/docs/auth/oauth2-proxy/provider.md @@ -40,7 +40,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `forwardedUserMatchingUserEntityName`: Matches the value in the `x-forwarded-user` header from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/okta/provider.md b/docs/auth/okta/provider.md index 0c15746cfd..6fe7a8b992 100644 --- a/docs/auth/okta/provider.md +++ b/docs/auth/okta/provider.md @@ -75,7 +75,11 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `emailMatchingUserEntityAnnotation`: Matches the email address from the auth provider with the User entity where the value of the `okta.com/email` annotation matches. If no match is found it will throw a `NotFoundError`. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. diff --git a/docs/auth/vmware-cloud/provider.md b/docs/auth/vmware-cloud/provider.md index d7580eccba..dd7c32f700 100644 --- a/docs/auth/vmware-cloud/provider.md +++ b/docs/auth/vmware-cloud/provider.md @@ -176,6 +176,10 @@ This provider includes several resolvers out of the box that you can use: - `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`. - `vmwareCloudSignInResolvers`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will sign in the user without associating with a catalog user. -> Note: The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. +:::note Note + +The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +::: If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation. From 3e8148e39ce1a68dbd965584e8d1d32df2844144 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 14:49:40 +0200 Subject: [PATCH 133/153] feat: fix issue with redaction by implementing another way Signed-off-by: blam --- .../src/logging/WinstonLogger.test.ts | 2 +- .../src/logging/WinstonLogger.ts | 20 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/backend-app-api/src/logging/WinstonLogger.test.ts b/packages/backend-app-api/src/logging/WinstonLogger.test.ts index 06f9cdd4c3..8f60e8dae2 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.test.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.test.ts @@ -80,7 +80,7 @@ describe('WinstonLogger', () => { nested: '[REDACTED] (world) from nested object', null: null, nullProto: { - foo: 'hello foo', // read only prop is not redacted + foo: '[REDACTED] foo', }, }, }), diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 3fcb4142b6..cb9d81cdf1 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -86,19 +86,17 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; const replace = (obj: TransformableInfo) => { - for (const key in obj) { - if (Object.hasOwn(obj, key)) { - if (typeof obj[key] === 'object') { - obj[key] = replace(obj[key] as TransformableInfo); - } else if (typeof obj[key] === 'string') { - try { - obj[key] = obj[key]?.replace(redactionPattern, '[REDACTED]'); - } catch { - /* ignore read only properties */ - } - } + const stringifiedFields = JSON.stringify(obj, null); + const redacted = JSON.parse( + stringifiedFields.replace(redactionPattern!, '[REDACTED]'), + ); + + for (const key in redacted) { + if (obj && Object.hasOwn(obj, key)) { + obj[key] = redacted[key]; } } + return obj; }; return { From 7d30d95dee0174a8345883ad59704b60fadb2cd8 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 15:03:13 +0200 Subject: [PATCH 134/153] chore: safer way to do redactions Signed-off-by: blam --- .changeset/nine-ties-type.md | 6 ++++++ packages/backend-app-api/package.json | 2 ++ .../src/logging/WinstonLogger.ts | 9 ++++++-- plugins/scaffolder-backend/package.json | 2 ++ .../src/scaffolder/tasks/logger.ts | 21 ++++++++++++------- yarn.lock | 11 ++++++++++ 6 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 .changeset/nine-ties-type.md diff --git a/.changeset/nine-ties-type.md b/.changeset/nine-ties-type.md new file mode 100644 index 0000000000..abb0661724 --- /dev/null +++ b/.changeset/nine-ties-type.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +'@backstage/backend-app-api': patch +--- + +Fixing issue with log meta fields possibly being circular refs diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 0634c30de1..b5fe3a1271 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -72,6 +72,7 @@ "fs-extra": "^11.2.0", "helmet": "^6.0.0", "jose": "^5.0.0", + "json-stringify-safe": "^5.0.1", "knex": "^3.0.0", "lodash": "^4.17.21", "logform": "^2.3.2", @@ -93,6 +94,7 @@ "@types/compression": "^1.7.0", "@types/fs-extra": "^11.0.0", "@types/http-errors": "^2.0.0", + "@types/json-stringify-safe": "^5.0.3", "@types/minimist": "^1.2.0", "@types/morgan": "^1.9.0", "@types/node-forge": "^1.3.0", diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index cb9d81cdf1..42c181573c 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -27,6 +27,7 @@ import { transports, transport as Transport, } from 'winston'; +import stringify from 'json-stringify-safe'; import { escapeRegExp } from '../lib/escapeRegExp'; /** @@ -86,9 +87,13 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; const replace = (obj: TransformableInfo) => { - const stringifiedFields = JSON.stringify(obj, null); + if (!redactionPattern) { + return obj; + } + + const stringifiedFields = stringify(obj); const redacted = JSON.parse( - stringifiedFields.replace(redactionPattern!, '[REDACTED]'), + stringifiedFields.replace(redactionPattern, '[REDACTED]'), ); for (const key in redacted) { diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index f2f4da6a84..877163a151 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -85,6 +85,7 @@ "globby": "^11.0.0", "isbinaryfile": "^5.0.0", "isolated-vm": "^4.5.0", + "json-stringify-safe": "^5.0.1", "jsonschema": "^1.2.6", "knex": "^3.0.0", "lodash": "^4.17.21", @@ -107,6 +108,7 @@ "@backstage/cli": "workspace:^", "@backstage/plugin-scaffolder-node-test-utils": "workspace:^", "@types/fs-extra": "^11.0.0", + "@types/json-stringify-safe": "^5.0.3", "@types/nunjucks": "^3.1.4", "@types/supertest": "^2.0.8", "@types/zen-observable": "^0.8.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts index 064eb69349..01f454a6ff 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts @@ -21,6 +21,7 @@ import { JsonObject } from '@backstage/types'; import { Format, TransformableInfo } from 'logform'; import Transport, { TransportStreamOptions } from 'winston-transport'; import { Logger, format, createLogger, transports } from 'winston'; +import stringify from 'json-stringify-safe'; /** * Escapes a given string to be used inside a RegExp. @@ -108,15 +109,21 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; const replace = (obj: TransformableInfo) => { - for (const key in obj) { - if (obj.hasOwnProperty(key)) { - if (typeof obj[key] === 'object') { - obj[key] = replace(obj[key] as TransformableInfo); - } else if (typeof obj[key] === 'string') { - obj[key] = obj[key]?.replace(redactionPattern, '[REDACTED]'); - } + if (!redactionPattern) { + return obj; + } + + const stringifiedFields = stringify(obj); + const redacted = JSON.parse( + stringifiedFields.replace(redactionPattern, '[REDACTED]'), + ); + + for (const key in redacted) { + if (obj && Object.hasOwn(obj, key)) { + obj[key] = redacted[key]; } } + return obj; }; return { diff --git a/yarn.lock b/yarn.lock index f10de89d74..eccfdd3eb5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3304,6 +3304,7 @@ __metadata: "@types/express": ^4.17.6 "@types/fs-extra": ^11.0.0 "@types/http-errors": ^2.0.0 + "@types/json-stringify-safe": ^5.0.3 "@types/minimist": ^1.2.0 "@types/morgan": ^1.9.0 "@types/node-forge": ^1.3.0 @@ -3317,6 +3318,7 @@ __metadata: helmet: ^6.0.0 http-errors: ^2.0.0 jose: ^5.0.0 + json-stringify-safe: ^5.0.1 knex: ^3.0.0 lodash: ^4.17.21 logform: ^2.3.2 @@ -6661,6 +6663,7 @@ __metadata: "@backstage/types": "workspace:^" "@types/express": ^4.17.6 "@types/fs-extra": ^11.0.0 + "@types/json-stringify-safe": ^5.0.3 "@types/luxon": ^3.0.0 "@types/nunjucks": ^3.1.4 "@types/supertest": ^2.0.8 @@ -6673,6 +6676,7 @@ __metadata: globby: ^11.0.0 isbinaryfile: ^5.0.0 isolated-vm: ^4.5.0 + json-stringify-safe: ^5.0.1 jsonschema: ^1.2.6 knex: ^3.0.0 lodash: ^4.17.21 @@ -17312,6 +17316,13 @@ __metadata: languageName: node linkType: hard +"@types/json-stringify-safe@npm:^5.0.3": + version: 5.0.3 + resolution: "@types/json-stringify-safe@npm:5.0.3" + checksum: 66826a59b53ce5a5becc9c05cd0bdadb7e2032e02803a9dd13137de134a0882a6c67ae334371ccff07a20b1d2b2c23fa3a81b5e23f40b27cfcf553c7cce06e35 + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" From 0f68c5096db97136d8c8591f49440f7b2af2965b Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 16:24:23 +0200 Subject: [PATCH 135/153] chore: rework to use the message symbol instead Signed-off-by: blam --- packages/backend-app-api/package.json | 3 +- .../src/logging/WinstonLogger.test.ts | 97 ++++++++++--------- .../src/logging/WinstonLogger.ts | 33 +++---- 3 files changed, 65 insertions(+), 68 deletions(-) diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index b5fe3a1271..414a4333e7 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -72,7 +72,6 @@ "fs-extra": "^11.2.0", "helmet": "^6.0.0", "jose": "^5.0.0", - "json-stringify-safe": "^5.0.1", "knex": "^3.0.0", "lodash": "^4.17.21", "logform": "^2.3.2", @@ -84,6 +83,7 @@ "path-to-regexp": "^6.2.1", "selfsigned": "^2.0.0", "stoppable": "^1.1.0", + "triple-beam": "^1.4.1", "uuid": "^9.0.0", "winston": "^3.2.1", "winston-transport": "^4.5.0" @@ -94,7 +94,6 @@ "@types/compression": "^1.7.0", "@types/fs-extra": "^11.0.0", "@types/http-errors": "^2.0.0", - "@types/json-stringify-safe": "^5.0.3", "@types/minimist": "^1.2.0", "@types/morgan": "^1.9.0", "@types/node-forge": "^1.3.0", diff --git a/packages/backend-app-api/src/logging/WinstonLogger.test.ts b/packages/backend-app-api/src/logging/WinstonLogger.test.ts index 8f60e8dae2..4b608f8e57 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.test.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.test.ts @@ -14,12 +14,10 @@ * limitations under the License. */ -import { TransformableInfo } from 'logform'; +import { format } from 'logform'; import { WinstonLogger } from './WinstonLogger'; - -function msg(info: TransformableInfo): TransformableInfo { - return { message: info.message, level: info.level, stack: info.stack }; -} +import Transport from 'winston-transport'; +import { MESSAGE } from 'triple-beam'; describe('WinstonLogger', () => { it('creates a winston logger instance with default options', () => { @@ -33,57 +31,66 @@ describe('WinstonLogger', () => { expect(childLogger).toBeInstanceOf(WinstonLogger); }); - it('redacter should redact and escape regex', () => { - const redacter = WinstonLogger.redacter(); - const log = { - level: 'error', - message: 'hello (world)', - stack: 'hello (world) from this file', - }; - expect(redacter.format.transform(msg(log))).toEqual(msg(log)); - redacter.add(['hello\n']); - expect(redacter.format.transform(msg(log))).toEqual( - msg({ - ...log, - message: '[REDACTED] (world)', - stack: '[REDACTED] (world) from this file', - }), - ); - redacter.add(['(world']); - expect(redacter.format.transform(msg(log))).toEqual( - msg({ - ...log, - message: '[REDACTED] [REDACTED])', - stack: '[REDACTED] [REDACTED]) from this file', + it('should redact and escape regex', () => { + const mockTransport = new Transport({ + log: jest.fn(), + logv: jest.fn(), + }); + + const logger = WinstonLogger.create({ + format: format.json(), + transports: [mockTransport], + }); + + logger.addRedactions(['hello (world']); + + logger.error('hello (world) from this file'); + + expect(mockTransport.log).toHaveBeenCalledWith( + expect.objectContaining({ + [MESSAGE]: JSON.stringify({ + level: 'error', + message: '[REDACTED]) from this file', + }), }), + expect.any(Function), ); }); - it('redacter should redact nested object', () => { - const redacter = WinstonLogger.redacter(); - const log = { - level: 'error', - message: { - nested: 'hello (world) from nested object', - null: null, - nullProto: Object.create(null, { - foo: { value: 'hello foo', enumerable: true }, - }), - }, - }; + it('should redact nested object', () => { + const mockTransport = new Transport({ + log: jest.fn(), + logv: jest.fn(), + }); - redacter.add(['hello']); - expect(redacter.format.transform(msg(log))).toEqual( - msg({ - ...log, - message: { + const logger = WinstonLogger.create({ + format: format.json(), + transports: [mockTransport], + }); + + logger.addRedactions(['hello']); + + logger.error('something went wrong', { + null: null, + nested: 'hello (world) from nested object', + nullProto: Object.create(null, { + foo: { value: 'hello foo', enumerable: true }, + }), + }); + + expect(mockTransport.log).toHaveBeenCalledWith( + expect.objectContaining({ + [MESSAGE]: JSON.stringify({ + level: 'error', + message: 'something went wrong', nested: '[REDACTED] (world) from nested object', null: null, nullProto: { foo: '[REDACTED] foo', }, - }, + }), }), + expect.any(Function), ); }); }); diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 42c181573c..3133fde949 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -27,7 +27,7 @@ import { transports, transport as Transport, } from 'winston'; -import stringify from 'json-stringify-safe'; +import { MESSAGE } from 'triple-beam'; import { escapeRegExp } from '../lib/escapeRegExp'; /** @@ -62,8 +62,8 @@ export class WinstonLogger implements RootLoggerService { let logger = createLogger({ level: process.env.LOG_LEVEL || options.level || 'info', format: format.combine( - redacter.format, options.format ?? defaultFormatter, + redacter.format, ), transports: options.transports ?? new transports.Console(), }); @@ -86,26 +86,17 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; - const replace = (obj: TransformableInfo) => { - if (!redactionPattern) { - return obj; - } - - const stringifiedFields = stringify(obj); - const redacted = JSON.parse( - stringifiedFields.replace(redactionPattern, '[REDACTED]'), - ); - - for (const key in redacted) { - if (obj && Object.hasOwn(obj, key)) { - obj[key] = redacted[key]; - } - } - - return obj; - }; return { - format: format(replace)(), + format: format((obj: TransformableInfo) => { + if (!redactionPattern || !obj) { + return obj; + } + + obj[MESSAGE] = obj[MESSAGE]?.replace?.(redactionPattern, '[REDACTED]'); + obj.message = obj.message.replace?.(redactionPattern, '[REDACTED]'); + + return obj; + })(), add(newRedactions) { let added = 0; for (const redactionToTrim of newRedactions) { From d6c34ab98f8f219ef480435ffd23ecb22e4e4a7b Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 16:30:22 +0200 Subject: [PATCH 136/153] chore: update in the scaffolder instead Signed-off-by: blam --- plugins/scaffolder-backend/package.json | 2 +- .../src/scaffolder/tasks/logger.ts | 31 +++++++------------ yarn.lock | 20 ++++-------- 3 files changed, 18 insertions(+), 35 deletions(-) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 877163a151..59c9901eb8 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -96,6 +96,7 @@ "p-queue": "^6.6.2", "prom-client": "^15.0.0", "tar": "^6.1.12", + "triple-beam": "^1.4.1", "uuid": "^9.0.0", "winston": "^3.2.1", "winston-transport": "^4.7.0", @@ -108,7 +109,6 @@ "@backstage/cli": "workspace:^", "@backstage/plugin-scaffolder-node-test-utils": "workspace:^", "@types/fs-extra": "^11.0.0", - "@types/json-stringify-safe": "^5.0.3", "@types/nunjucks": "^3.1.4", "@types/supertest": "^2.0.8", "@types/zen-observable": "^0.8.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts index 01f454a6ff..4314f39385 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts @@ -21,7 +21,7 @@ import { JsonObject } from '@backstage/types'; import { Format, TransformableInfo } from 'logform'; import Transport, { TransportStreamOptions } from 'winston-transport'; import { Logger, format, createLogger, transports } from 'winston'; -import stringify from 'json-stringify-safe'; +import { MESSAGE } from 'triple-beam'; /** * Escapes a given string to be used inside a RegExp. @@ -108,26 +108,17 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; - const replace = (obj: TransformableInfo) => { - if (!redactionPattern) { - return obj; - } - - const stringifiedFields = stringify(obj); - const redacted = JSON.parse( - stringifiedFields.replace(redactionPattern, '[REDACTED]'), - ); - - for (const key in redacted) { - if (obj && Object.hasOwn(obj, key)) { - obj[key] = redacted[key]; - } - } - - return obj; - }; return { - format: format(replace)(), + format: format((obj: TransformableInfo) => { + if (!redactionPattern || !obj) { + return obj; + } + + obj[MESSAGE] = obj[MESSAGE]?.replace?.(redactionPattern, '[REDACTED]'); + obj.message = obj.message?.replace?.(redactionPattern, '[REDACTED]'); + + return obj; + })(), add(newRedactions) { let added = 0; for (const redactionToTrim of newRedactions) { diff --git a/yarn.lock b/yarn.lock index eccfdd3eb5..d85a001f17 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3304,7 +3304,6 @@ __metadata: "@types/express": ^4.17.6 "@types/fs-extra": ^11.0.0 "@types/http-errors": ^2.0.0 - "@types/json-stringify-safe": ^5.0.3 "@types/minimist": ^1.2.0 "@types/morgan": ^1.9.0 "@types/node-forge": ^1.3.0 @@ -3318,7 +3317,6 @@ __metadata: helmet: ^6.0.0 http-errors: ^2.0.0 jose: ^5.0.0 - json-stringify-safe: ^5.0.1 knex: ^3.0.0 lodash: ^4.17.21 logform: ^2.3.2 @@ -3332,6 +3330,7 @@ __metadata: selfsigned: ^2.0.0 stoppable: ^1.1.0 supertest: ^6.1.3 + triple-beam: ^1.4.1 uuid: ^9.0.0 winston: ^3.2.1 winston-transport: ^4.5.0 @@ -6663,7 +6662,6 @@ __metadata: "@backstage/types": "workspace:^" "@types/express": ^4.17.6 "@types/fs-extra": ^11.0.0 - "@types/json-stringify-safe": ^5.0.3 "@types/luxon": ^3.0.0 "@types/nunjucks": ^3.1.4 "@types/supertest": ^2.0.8 @@ -6689,6 +6687,7 @@ __metadata: strip-ansi: ^7.1.0 supertest: ^6.1.3 tar: ^6.1.12 + triple-beam: ^1.4.1 uuid: ^9.0.0 wait-for-expect: ^3.0.2 winston: ^3.2.1 @@ -17316,13 +17315,6 @@ __metadata: languageName: node linkType: hard -"@types/json-stringify-safe@npm:^5.0.3": - version: 5.0.3 - resolution: "@types/json-stringify-safe@npm:5.0.3" - checksum: 66826a59b53ce5a5becc9c05cd0bdadb7e2032e02803a9dd13137de134a0882a6c67ae334371ccff07a20b1d2b2c23fa3a81b5e23f40b27cfcf553c7cce06e35 - languageName: node - linkType: hard - "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -41491,10 +41483,10 @@ __metadata: languageName: node linkType: hard -"triple-beam@npm:^1.3.0": - version: 1.3.0 - resolution: "triple-beam@npm:1.3.0" - checksum: 7d7b77d8625fb252c126c24984a68de462b538a8fcd1de2abd0a26421629cf3527d48e23b3c2264f08f4a6c3bc40a478a722176f4d7b6a1acc154cb70c359f2b +"triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": + version: 1.4.1 + resolution: "triple-beam@npm:1.4.1" + checksum: 2e881a3e8e076b6f2b85b9ec9dd4a900d3f5016e6d21183ed98e78f9abcc0149e7d54d79a3f432b23afde46b0885bdcdcbff789f39bc75de796316961ec07f61 languageName: node linkType: hard From 2bbc55f0a8a1938146fcd1a3466bacae4dbf7e95 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 16:53:18 +0200 Subject: [PATCH 137/153] chore: leave message clean Signed-off-by: blam --- packages/backend-app-api/src/logging/WinstonLogger.ts | 1 - plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 3133fde949..8ee86d247f 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -93,7 +93,6 @@ export class WinstonLogger implements RootLoggerService { } obj[MESSAGE] = obj[MESSAGE]?.replace?.(redactionPattern, '[REDACTED]'); - obj.message = obj.message.replace?.(redactionPattern, '[REDACTED]'); return obj; })(), diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts index 4314f39385..3824a32a6f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts @@ -115,7 +115,6 @@ export class WinstonLogger implements RootLoggerService { } obj[MESSAGE] = obj[MESSAGE]?.replace?.(redactionPattern, '[REDACTED]'); - obj.message = obj.message?.replace?.(redactionPattern, '[REDACTED]'); return obj; })(), From 57a1d69e1df49953a9a47d46431409fa25d19c37 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 15 May 2024 17:23:05 +0200 Subject: [PATCH 138/153] chore: go away dependency Signed-off-by: blam --- plugins/scaffolder-backend/package.json | 1 - yarn.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 59c9901eb8..f748ccb92d 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -85,7 +85,6 @@ "globby": "^11.0.0", "isbinaryfile": "^5.0.0", "isolated-vm": "^4.5.0", - "json-stringify-safe": "^5.0.1", "jsonschema": "^1.2.6", "knex": "^3.0.0", "lodash": "^4.17.21", diff --git a/yarn.lock b/yarn.lock index d85a001f17..728bac0c68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6674,7 +6674,6 @@ __metadata: globby: ^11.0.0 isbinaryfile: ^5.0.0 isolated-vm: ^4.5.0 - json-stringify-safe: ^5.0.1 jsonschema: ^1.2.6 knex: ^3.0.0 lodash: ^4.17.21 From 5ce928b93a09271ea69f6e978411d45a031ce313 Mon Sep 17 00:00:00 2001 From: Brian Phillips <28457+brianphillips@users.noreply.github.com> Date: Wed, 15 May 2024 11:00:33 -0500 Subject: [PATCH 139/153] Split search index service startup into a build and start phase Fixes #24794. The build process takes place synchronously to the plugin initialization rather than at startup so that the HTTP router has the relevant types available to validate incoming requests. Signed-off-by: Brian Phillips <28457+brianphillips@users.noreply.github.com> --- plugins/search-backend-node/src/alpha.ts | 21 ++++++++++++++++----- plugins/search-backend/src/alpha.ts | 11 ++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/plugins/search-backend-node/src/alpha.ts b/plugins/search-backend-node/src/alpha.ts index 331f0ae304..20b0f22089 100644 --- a/plugins/search-backend-node/src/alpha.ts +++ b/plugins/search-backend-node/src/alpha.ts @@ -34,7 +34,7 @@ import { * @alpha * Options for build method on {@link SearchIndexService}. */ -export type SearchIndexServiceStartOptions = { +export type SearchIndexServiceBuildOptions = { searchEngine: SearchEngine; collators: RegisterCollatorParameters[]; decorators: RegisterDecoratorParameters[]; @@ -45,15 +45,21 @@ export type SearchIndexServiceStartOptions = { * Interface for implementation of index service. */ export interface SearchIndexService { + /** + * Initializes state in preparation for starting the search index service + */ + build(options: SearchIndexServiceBuildOptions): void; + /** * Starts indexing process */ - start(options: SearchIndexServiceStartOptions): Promise; + start(): Promise; /** * Stops indexing process */ stop(): Promise; + /** * Returns an index types list. */ @@ -83,7 +89,7 @@ type DefaultSearchIndexServiceOptions = { /** * @alpha - * Reponsible for register the indexing task and start the schedule. + * Responsible for register the indexing task and start the schedule. */ class DefaultSearchIndexService implements SearchIndexService { private readonly logger: LoggerService; @@ -98,7 +104,7 @@ class DefaultSearchIndexService implements SearchIndexService { return new DefaultSearchIndexService(options); } - async start(options: SearchIndexServiceStartOptions): Promise { + build(options: SearchIndexServiceBuildOptions): void { this.indexBuilder = new IndexBuilder({ logger: this.logger, searchEngine: options.searchEngine, @@ -111,8 +117,13 @@ class DefaultSearchIndexService implements SearchIndexService { options.decorators.forEach(decorator => this.indexBuilder?.addDecorator(decorator), ); + } - const { scheduler } = await this.indexBuilder?.build(); + async start(): Promise { + if (!this.indexBuilder) { + throw new Error('IndexBuilder is not initialized, call build first'); + } + const { scheduler } = await this.indexBuilder.build(); this.scheduler = scheduler; this.scheduler!.start(); } diff --git a/plugins/search-backend/src/alpha.ts b/plugins/search-backend/src/alpha.ts index a17b542903..a7c2c6c872 100644 --- a/plugins/search-backend/src/alpha.ts +++ b/plugins/search-backend/src/alpha.ts @@ -121,13 +121,14 @@ export default createBackendPlugin({ const collators = searchIndexRegistry.getCollators(); const decorators = searchIndexRegistry.getDecorators(); + searchIndexService.build({ + searchEngine: searchEngine!, + collators, + decorators, + }); lifecycle.addStartupHook(async () => { - await searchIndexService.start({ - searchEngine: searchEngine!, - collators, - decorators, - }); + await searchIndexService.start(); }); lifecycle.addShutdownHook(async () => { From 5b6f979d8608ab80b61a71924403c3848c5c9c35 Mon Sep 17 00:00:00 2001 From: Brian Phillips <28457+brianphillips@users.noreply.github.com> Date: Wed, 15 May 2024 11:04:36 -0500 Subject: [PATCH 140/153] Add changeset Signed-off-by: Brian Phillips <28457+brianphillips@users.noreply.github.com> --- .changeset/seven-geese-raise.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/seven-geese-raise.md diff --git a/.changeset/seven-geese-raise.md b/.changeset/seven-geese-raise.md new file mode 100644 index 0000000000..176f6ae479 --- /dev/null +++ b/.changeset/seven-geese-raise.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-search-backend-node': patch +'@backstage/plugin-search-backend': patch +--- + +Split backend search plugin startup into "build" and "start" stages to ensure necessary initialization has happened before startup From c31ad6bee331cba5ca1e2671f5777f873ed86295 Mon Sep 17 00:00:00 2001 From: Brian Phillips <28457+brianphillips@users.noreply.github.com> Date: Wed, 15 May 2024 11:25:48 -0500 Subject: [PATCH 141/153] update API reports for search-backend-node Signed-off-by: Brian Phillips <28457+brianphillips@users.noreply.github.com> --- plugins/search-backend-node/api-report-alpha.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/search-backend-node/api-report-alpha.md b/plugins/search-backend-node/api-report-alpha.md index 8e35e70f65..4c1e70b32b 100644 --- a/plugins/search-backend-node/api-report-alpha.md +++ b/plugins/search-backend-node/api-report-alpha.md @@ -32,20 +32,21 @@ export const searchIndexRegistryExtensionPoint: ExtensionPoint; - start(options: SearchIndexServiceStartOptions): Promise; + start(): Promise; stop(): Promise; } // @alpha -export const searchIndexServiceRef: ServiceRef; - -// @alpha -export type SearchIndexServiceStartOptions = { +export type SearchIndexServiceBuildOptions = { searchEngine: SearchEngine; collators: RegisterCollatorParameters[]; decorators: RegisterDecoratorParameters[]; }; +// @alpha +export const searchIndexServiceRef: ServiceRef; + // (No @packageDocumentation comment for this package) ``` From 3dca9cbe7b817bc2cc4e68f44f0a177b611a887c Mon Sep 17 00:00:00 2001 From: erik-adsk <143032411+erik-adsk@users.noreply.github.com> Date: Wed, 15 May 2024 09:55:32 -0700 Subject: [PATCH 142/153] Update .changeset description to be more succinct Co-authored-by: Ben Lambert Signed-off-by: erik-adsk <143032411+erik-adsk@users.noreply.github.com> --- .changeset/loud-pumpkins-bow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/loud-pumpkins-bow.md b/.changeset/loud-pumpkins-bow.md index 366645db24..a55c97e19a 100644 --- a/.changeset/loud-pumpkins-bow.md +++ b/.changeset/loud-pumpkins-bow.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-react': patch --- -Fixed a bug where links in scaffolder field markdown content e.g. - description was not able to be launched in a new tab. This fix makes it so that all links within Scaffolder Fields are launched in a new tab. +Links that are rendered in the markdown in the `ScaffolderField` component are now opened in new tabs. From 6e9f4d480c1a3db3fd8fdc13d3cb1e6877fd93a8 Mon Sep 17 00:00:00 2001 From: Jaeeun Lee Date: Wed, 15 May 2024 17:03:20 -0400 Subject: [PATCH 143/153] Update setup-opentelemetry.md Signed-off-by: Jaeeun Lee --- docs/tutorials/setup-opentelemetry.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/setup-opentelemetry.md b/docs/tutorials/setup-opentelemetry.md index c49eef26a2..30dde79db8 100644 --- a/docs/tutorials/setup-opentelemetry.md +++ b/docs/tutorials/setup-opentelemetry.md @@ -65,13 +65,19 @@ You can now start your Backstage instance as usual, using `yarn dev`. ## Production Setup -In your `Dockerfile` add the `--require` flag which points to the `instrumentation.js` file +In your `Dockerfile`, copy `instrumentation.js` file into the root of the working directory. + +```Dockerfile +COPY --chown=${NOT_ROOT_USER}:${NOT_ROOT_USER} packages/backend/src/instrumentation.js ./ +``` + +And then add the `--require` flag that points to the file to the CMD array. ```Dockerfile // highlight-remove-next-line CMD ["node", "packages/backend", "--config", "app-config.yaml"] // highlight-add-next-line -CMD ["node", "--require", "./src/instrumentation.js", "packages/backend", "--config", "app-config.yaml"] +CMD ["node", "--require", "./instrumentation.js", "packages/backend", "--config", "app-config.yaml"] ``` If you need to disable/configure some OpenTelemetry feature there are lots of [environment variables](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/) which you can tweak. From f6e2d96a1cdcb3e969f44f9e32292b164e0cbd80 Mon Sep 17 00:00:00 2001 From: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> Date: Wed, 15 May 2024 23:46:54 -0400 Subject: [PATCH 144/153] chore: Fix typo in error logging Signed-off-by: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> --- .../src/manager/plugin-manager.test.ts | 24 +++++++++---------- .../src/manager/plugin-manager.ts | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/backend-dynamic-feature-service/src/manager/plugin-manager.test.ts b/packages/backend-dynamic-feature-service/src/manager/plugin-manager.test.ts index 487729687f..340991b11f 100644 --- a/packages/backend-dynamic-feature-service/src/manager/plugin-manager.test.ts +++ b/packages/backend-dynamic-feature-service/src/manager/plugin-manager.test.ts @@ -59,7 +59,7 @@ describe('backend-dynamic-feature-service', () => { name: string; packageManifest: ScannedPluginManifest; indexFile?: { - retativePath: string[]; + relativePath: string[]; content: string; }; expectedLogs?(location: URL): { @@ -83,7 +83,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: 'exports.dynamicPluginInstaller={ kind: "new", install: () => [] }', }, @@ -127,7 +127,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: `const alpha = { $$type: '@backstage/BackendFeature' }; exports["default"] = alpha;`, }, expectedLogs(location) { @@ -170,7 +170,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: `const alpha = () => { return { $$type: '@backstage/BackendFeature' } }; alpha.$$type = '@backstage/BackendFeatureFactory'; exports["default"] = alpha;`, @@ -215,7 +215,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: 'exports.dynamicPluginInstaller={ kind: "new", install: () => [] }', }, @@ -262,7 +262,7 @@ describe('backend-dynamic-feature-service', () => { return { errors: [ { - message: `an error occured while loading dynamic backend plugin 'backend-dynamic-plugin-test' from '${location}'`, + message: `an error occurred while loading dynamic backend plugin 'backend-dynamic-plugin-test' from '${location}'`, meta: { name: 'Error', message: expect.stringContaining( @@ -305,7 +305,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: '', }, expectedLogs(location) { @@ -332,7 +332,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: 'exports.dynamicPluginInstaller={ something: "else", unexpectedMethod() {} }', }, @@ -360,14 +360,14 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: 'strange text with syntax error', }, expectedLogs(location) { return { errors: [ { - message: `an error occured while loading dynamic backend plugin 'backend-dynamic-plugin-test' from '${location}'`, + message: `an error occurred while loading dynamic backend plugin 'backend-dynamic-plugin-test' from '${location}'`, meta: { message: expect.stringContaining('Unexpected identifier'), name: 'SyntaxError', @@ -391,7 +391,7 @@ describe('backend-dynamic-feature-service', () => { main: 'dist/index.cjs.js', }, indexFile: { - retativePath: ['dist', 'index.cjs.js'], + relativePath: ['dist', 'index.cjs.js'], content: 'exports.dynamicPluginInstaller={ kind: "legacy", scaffolder: (env)=>[] }', }, @@ -458,7 +458,7 @@ describe('backend-dynamic-feature-service', () => { mockedFiles[ path.join( url.fileURLToPath(plugin.location), - ...tc.indexFile.retativePath, + ...tc.indexFile.relativePath, ) ] = tc.indexFile.content; } diff --git a/packages/backend-dynamic-feature-service/src/manager/plugin-manager.ts b/packages/backend-dynamic-feature-service/src/manager/plugin-manager.ts index edc3e20f72..95b0c6592c 100644 --- a/packages/backend-dynamic-feature-service/src/manager/plugin-manager.ts +++ b/packages/backend-dynamic-feature-service/src/manager/plugin-manager.ts @@ -188,7 +188,7 @@ export class DynamicPluginManager implements DynamicPluginProvider { }; } catch (error) { this.logger.error( - `an error occured while loading dynamic backend plugin '${plugin.manifest.name}' from '${plugin.location}'`, + `an error occurred while loading dynamic backend plugin '${plugin.manifest.name}' from '${plugin.location}'`, error, ); return undefined; From 9478fbb64c4b894c31629df42155356b68eefdcf Mon Sep 17 00:00:00 2001 From: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> Date: Wed, 15 May 2024 23:55:55 -0400 Subject: [PATCH 145/153] chore(catalog-model): Remove useless test The metadata field is required by schema, and this was testing if it was optional, passing only because it was misspelled. Signed-off-by: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> --- .../src/entity/policies/FieldFormatEntityPolicy.test.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts index f32236e977..9fe041a839 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts @@ -65,11 +65,6 @@ describe('FieldFormatEntityPolicy', () => { await expect(policy.enforce(data)).rejects.toThrow(/kind/); }); - it('handles missing metadata gracefully', async () => { - delete data.medatata; - await expect(policy.enforce(data)).resolves.toBe(data); - }); - it('handles missing spec gracefully', async () => { delete data.spec; await expect(policy.enforce(data)).resolves.toBe(data); From d2c36c08964e920d1d1a317be66cc1cc2ed13e2b Mon Sep 17 00:00:00 2001 From: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> Date: Wed, 15 May 2024 23:56:18 -0400 Subject: [PATCH 146/153] chore: Fix minor typo in a test Signed-off-by: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> --- packages/backend-common/src/reading/FetchUrlReader.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/reading/FetchUrlReader.test.ts b/packages/backend-common/src/reading/FetchUrlReader.test.ts index 7b5e4ebc05..8a0b24002e 100644 --- a/packages/backend-common/src/reading/FetchUrlReader.test.ts +++ b/packages/backend-common/src/reading/FetchUrlReader.test.ts @@ -77,7 +77,7 @@ describe('FetchUrlReader', () => { worker.use( rest.get('https://backstage.io/error', (_req, res, ctx) => { - return res(ctx.status(500), ctx.body('An internal error occured')); + return res(ctx.status(500), ctx.body('An internal error occurred')); }), ); }); From cfa0afb3074687dbe736558dc28726dc486a71a4 Mon Sep 17 00:00:00 2001 From: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> Date: Wed, 15 May 2024 23:56:48 -0400 Subject: [PATCH 147/153] chore(backend-common): Fix typo in error message Signed-off-by: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com> --- packages/backend-common/src/database/connectors/mysql.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/database/connectors/mysql.ts b/packages/backend-common/src/database/connectors/mysql.ts index 1ad8b0b3be..2fb3545047 100644 --- a/packages/backend-common/src/database/connectors/mysql.ts +++ b/packages/backend-common/src/database/connectors/mysql.ts @@ -304,7 +304,7 @@ export class MysqlConnector implements Connector { const pluginDivisionMode = this.getPluginDivisionModeConfig(); if (pluginDivisionMode !== 'database') { throw new Error( - `The MySQL driver does not suppoert plugin division mode '${pluginDivisionMode}'`, + `The MySQL driver does not support plugin division mode '${pluginDivisionMode}'`, ); } From 582099e4d1754bb7f7625f19ffa1380abc7e7966 Mon Sep 17 00:00:00 2001 From: Aditya Kumar Date: Thu, 16 May 2024 09:56:47 +0530 Subject: [PATCH 148/153] Updated the deployment documents Signed-off-by: Aditya Kumar --- docs/deployment/docker.md | 20 ++++++++++++++------ docs/deployment/index.md | 8 ++++++-- docs/deployment/k8s.md | 12 ++++++++---- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index 9ec5460a88..f16a2ad13e 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -141,8 +141,12 @@ browser at `http://localhost:7007` ## Multi-stage Build -> NOTE: The `.dockerignore` is different in this setup, read on for more -> details. +:::note Note + +The `.dockerignore` is different in this setup, read on for more +details. + +::: This section describes how to set up a multi-stage Docker build that builds the entire project within Docker. This is typically slower than a host build, but is @@ -293,10 +297,14 @@ browser at `http://localhost:7007` ## Separate Frontend -> NOTE: This is an optional step, and you will lose out on the features of the -> `@backstage/plugin-app-backend` plugin. Most notably the frontend configuration -> will no longer be injected by the backend, you will instead need to use the -> correct configuration when building the frontend bundle. +:::note Note + +This is an optional step, and you will lose out on the features of the +`@backstage/plugin-app-backend` plugin. Most notably the frontend configuration +will no longer be injected by the backend, you will instead need to use the +correct configuration when building the frontend bundle. + +::: It is sometimes desirable to serve the frontend separately from the backend, either from a separate image or for example a static file serving provider. The diff --git a/docs/deployment/index.md b/docs/deployment/index.md index da2c29ba23..0524e71db8 100644 --- a/docs/deployment/index.md +++ b/docs/deployment/index.md @@ -13,8 +13,12 @@ This documentation shows common examples that may be useful when deploying Backstage for the first time, or for those without established deployment practices. -> Note: The _easiest_ way to explore Backstage is to visit the -> [live demo site](https://demo.backstage.io). +:::note Note + +The _easiest_ way to explore Backstage is to visit the +[live demo site](https://demo.backstage.io). + +::: At Spotify, we deploy software generally by: diff --git a/docs/deployment/k8s.md b/docs/deployment/k8s.md index 00bf7464e3..46ba273e14 100644 --- a/docs/deployment/k8s.md +++ b/docs/deployment/k8s.md @@ -107,10 +107,14 @@ $ echo -n "backstage" | base64 YmFja3N0YWdl ``` -> Note: Secrets are base64-encoded, but not encrypted. Be sure to enable -> [Encryption at Rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) -> for the cluster. For storing secrets in Git, consider -> [SealedSecrets or other solutions](https://learnk8s.io/kubernetes-secrets-in-git). +:::note Note + +Secrets are base64-encoded, but not encrypted. Be sure to enable +[Encryption at Rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) +for the cluster. For storing secrets in Git, consider +[SealedSecrets or other solutions](https://learnk8s.io/kubernetes-secrets-in-git). + +::: The secrets can now be applied to the Kubernetes cluster: From 702fa7d17cc34c8d5c414529e21f7c1b775d9316 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 16 May 2024 11:32:58 +0200 Subject: [PATCH 149/153] theme: fix v5 prefix tree shaking Signed-off-by: Patrik Oldsberg --- .changeset/lovely-hats-pay.md | 5 ++++ .../theme/src/unified/MuiClassNameSetup.ts | 24 ------------------- .../src/unified/UnifiedThemeProvider.test.tsx | 1 - .../src/unified/UnifiedThemeProvider.tsx | 15 +++++++++--- 4 files changed, 17 insertions(+), 28 deletions(-) create mode 100644 .changeset/lovely-hats-pay.md delete mode 100644 packages/theme/src/unified/MuiClassNameSetup.ts diff --git a/.changeset/lovely-hats-pay.md b/.changeset/lovely-hats-pay.md new file mode 100644 index 0000000000..117f50e5db --- /dev/null +++ b/.changeset/lovely-hats-pay.md @@ -0,0 +1,5 @@ +--- +'@backstage/theme': patch +--- + +Internal refactor to fix an issue where the MUI 5 `v5-` class prefixing gets removed by tree shaking. diff --git a/packages/theme/src/unified/MuiClassNameSetup.ts b/packages/theme/src/unified/MuiClassNameSetup.ts deleted file mode 100644 index 5d7e0b26fe..0000000000 --- a/packages/theme/src/unified/MuiClassNameSetup.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/material/className'; - -/** - * This API is introduced in @mui/material (v5.0.5) as a replacement of deprecated createGenerateClassName & only affects v5 Material UI components from `@mui/*` - */ -ClassNameGenerator.configure(componentName => { - return `v5-${componentName}`; -}); diff --git a/packages/theme/src/unified/UnifiedThemeProvider.test.tsx b/packages/theme/src/unified/UnifiedThemeProvider.test.tsx index da4af5abab..98fc73505d 100644 --- a/packages/theme/src/unified/UnifiedThemeProvider.test.tsx +++ b/packages/theme/src/unified/UnifiedThemeProvider.test.tsx @@ -22,7 +22,6 @@ import { useTheme as useV5Theme } from '@mui/material/styles'; import { makeStyles as makeV5Styles } from '@mui/styles'; import { render, screen } from '@testing-library/react'; import React from 'react'; -import './MuiClassNameSetup'; import { UnifiedThemeProvider } from './UnifiedThemeProvider'; import { themes } from './themes'; diff --git a/packages/theme/src/unified/UnifiedThemeProvider.tsx b/packages/theme/src/unified/UnifiedThemeProvider.tsx index 35abbe57d8..465a4dda24 100644 --- a/packages/theme/src/unified/UnifiedThemeProvider.tsx +++ b/packages/theme/src/unified/UnifiedThemeProvider.tsx @@ -15,7 +15,6 @@ */ import React, { ReactNode } from 'react'; -import './MuiClassNameSetup'; import { CssBaseline } from '@material-ui/core'; import { ThemeProvider, @@ -29,6 +28,7 @@ import { Theme as Mui5Theme, } from '@mui/material/styles'; import { UnifiedTheme } from './types'; +import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/material/className'; /** * Props for {@link UnifiedThemeProvider}. @@ -41,10 +41,19 @@ export interface UnifiedThemeProviderProps { noCssBaseline?: boolean; } +/** + * This API is introduced in @mui/material (v5.0.5) as a replacement of deprecated createGenerateClassName & only affects v5 Material UI components from `@mui/*`. + * + * This call needs to be in the same module as the `UnifiedThemeProvider` to ensure that it doesn't get removed by tree shaking + */ +ClassNameGenerator.configure(componentName => { + return `v5-${componentName}`; +}); + // Background at https://mui.com/x/migration/migration-data-grid-v4/#using-mui-core-v4-with-v5 // Rather than disabling globals and custom seed, we instead only set a production prefix that -// won't collide with Material UI 5 styles. We've already got a separate class name generator for v5 set -// up in MuiClassNameSetup.ts, so only the production JSS needs deduplication. +// won't collide with Material UI 5 styles. We've already got the separate class name generator +// for v5 set up in just above, so only the production JSS needs deduplication. const generateV4ClassName = createGenerateClassName({ productionPrefix: 'jss4-', }); From b1ea88559cf79ef2d4061305e47dd52f7f6f67bf Mon Sep 17 00:00:00 2001 From: Brian Phillips <28457+brianphillips@users.noreply.github.com> Date: Thu, 16 May 2024 08:11:09 -0500 Subject: [PATCH 150/153] rename method per code review feedback Signed-off-by: Brian Phillips <28457+brianphillips@users.noreply.github.com> --- plugins/search-backend-node/api-report-alpha.md | 4 ++-- plugins/search-backend-node/src/alpha.ts | 8 ++++---- plugins/search-backend/src/alpha.ts | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/search-backend-node/api-report-alpha.md b/plugins/search-backend-node/api-report-alpha.md index 4c1e70b32b..4f3015a0e4 100644 --- a/plugins/search-backend-node/api-report-alpha.md +++ b/plugins/search-backend-node/api-report-alpha.md @@ -32,14 +32,14 @@ export const searchIndexRegistryExtensionPoint: ExtensionPoint; + init(options: SearchIndexServiceInitOptions): void; start(): Promise; stop(): Promise; } // @alpha -export type SearchIndexServiceBuildOptions = { +export type SearchIndexServiceInitOptions = { searchEngine: SearchEngine; collators: RegisterCollatorParameters[]; decorators: RegisterDecoratorParameters[]; diff --git a/plugins/search-backend-node/src/alpha.ts b/plugins/search-backend-node/src/alpha.ts index 20b0f22089..2a41bdbf81 100644 --- a/plugins/search-backend-node/src/alpha.ts +++ b/plugins/search-backend-node/src/alpha.ts @@ -32,9 +32,9 @@ import { /** * @alpha - * Options for build method on {@link SearchIndexService}. + * Options for the init method on {@link SearchIndexService}. */ -export type SearchIndexServiceBuildOptions = { +export type SearchIndexServiceInitOptions = { searchEngine: SearchEngine; collators: RegisterCollatorParameters[]; decorators: RegisterDecoratorParameters[]; @@ -48,7 +48,7 @@ export interface SearchIndexService { /** * Initializes state in preparation for starting the search index service */ - build(options: SearchIndexServiceBuildOptions): void; + init(options: SearchIndexServiceInitOptions): void; /** * Starts indexing process @@ -104,7 +104,7 @@ class DefaultSearchIndexService implements SearchIndexService { return new DefaultSearchIndexService(options); } - build(options: SearchIndexServiceBuildOptions): void { + init(options: SearchIndexServiceInitOptions): void { this.indexBuilder = new IndexBuilder({ logger: this.logger, searchEngine: options.searchEngine, diff --git a/plugins/search-backend/src/alpha.ts b/plugins/search-backend/src/alpha.ts index a7c2c6c872..3a3ba82c3e 100644 --- a/plugins/search-backend/src/alpha.ts +++ b/plugins/search-backend/src/alpha.ts @@ -121,7 +121,7 @@ export default createBackendPlugin({ const collators = searchIndexRegistry.getCollators(); const decorators = searchIndexRegistry.getDecorators(); - searchIndexService.build({ + searchIndexService.init({ searchEngine: searchEngine!, collators, decorators, From 42189602af0b49a3cce3e68a4c5d159eefe9b42e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 16 May 2024 15:33:12 +0200 Subject: [PATCH 151/153] Apply suggestions from code review Co-authored-by: Emma Indal Signed-off-by: Patrik Oldsberg --- .changeset/seven-geese-raise.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/seven-geese-raise.md b/.changeset/seven-geese-raise.md index 176f6ae479..3d6e2347b9 100644 --- a/.changeset/seven-geese-raise.md +++ b/.changeset/seven-geese-raise.md @@ -3,4 +3,4 @@ '@backstage/plugin-search-backend': patch --- -Split backend search plugin startup into "build" and "start" stages to ensure necessary initialization has happened before startup +Split backend search plugin startup into "init" and "start" stages to ensure necessary initialization has happened before startup From 021d4cbfd1cc5deaddef68f6dcbe808deea5fbf0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 16 May 2024 15:42:09 +0200 Subject: [PATCH 152/153] Update plugins/search-backend-node/src/alpha.ts Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Signed-off-by: Patrik Oldsberg --- plugins/search-backend-node/src/alpha.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/search-backend-node/src/alpha.ts b/plugins/search-backend-node/src/alpha.ts index 2a41bdbf81..6fb0c609e5 100644 --- a/plugins/search-backend-node/src/alpha.ts +++ b/plugins/search-backend-node/src/alpha.ts @@ -121,7 +121,7 @@ class DefaultSearchIndexService implements SearchIndexService { async start(): Promise { if (!this.indexBuilder) { - throw new Error('IndexBuilder is not initialized, call build first'); + throw new Error('IndexBuilder is not initialized, call init first'); } const { scheduler } = await this.indexBuilder.build(); this.scheduler = scheduler; From 654af4ab0b29c7ab770834f2335fd9ea6e49448b Mon Sep 17 00:00:00 2001 From: Kalle Ericson <7943407+kalleericson@users.noreply.github.com> Date: Thu, 16 May 2024 15:49:55 +0200 Subject: [PATCH 153/153] fix: add missing css variables Signed-off-by: Kalle Ericson <7943407+kalleericson@users.noreply.github.com> --- .changeset/calm-plums-wink.md | 5 +++++ .../src/reader/transformers/styles/rules/variables.ts | 11 +++++++++++ 2 files changed, 16 insertions(+) create mode 100644 .changeset/calm-plums-wink.md diff --git a/.changeset/calm-plums-wink.md b/.changeset/calm-plums-wink.md new file mode 100644 index 0000000000..edb991f616 --- /dev/null +++ b/.changeset/calm-plums-wink.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +mkdocs-material have updated their CSS variable template, and a few are unset in Backstage. This patch adds the missing variables to ensure coverage. diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/variables.ts b/plugins/techdocs/src/reader/transformers/styles/rules/variables.ts index a858d17354..3999430efb 100644 --- a/plugins/techdocs/src/reader/transformers/styles/rules/variables.ts +++ b/plugins/techdocs/src/reader/transformers/styles/rules/variables.ts @@ -58,6 +58,9 @@ export default ({ theme }: RuleOptions) => ` /* ACCENT */ --md-accent-fg-color: var(--md-primary-fg-color); + --md-accent-fg-color--transparent: ${alpha(theme.palette.primary.main, 0.1)}; + --md-accent-bg-color: var(--md-primary-bg-color); + --md-accent-bg-color--light: var(--md-primary-bg-color--light); /* SHADOW */ --md-shadow-z1: ${theme.shadows[1]}; @@ -101,6 +104,7 @@ export default ({ theme }: RuleOptions) => ` --md-code-fg-color: ${theme.palette.text.primary}; --md-code-bg-color: ${theme.palette.background.paper}; --md-code-hl-color: ${alpha(theme.palette.warning.main, 0.5)}; + --md-code-hl-color--light: var(--md-code-hl-color); --md-code-hl-keyword-color: ${ theme.palette.type === 'dark' ? theme.palette.primary.light @@ -135,6 +139,7 @@ export default ({ theme }: RuleOptions) => ` --md-typeset-color: var(--md-default-fg-color); --md-typeset-a-color: ${theme.palette.link}; --md-typeset-table-color: ${theme.palette.text.primary}; + --md-typeset-table-color--light: ${alpha(theme.palette.text.primary, 0.5)}; --md-typeset-del-color: ${ theme.palette.type === 'dark' ? alpha(theme.palette.error.dark, 0.5) @@ -150,6 +155,9 @@ export default ({ theme }: RuleOptions) => ` ? alpha(theme.palette.warning.dark, 0.5) : alpha(theme.palette.warning.light, 0.5) }; + --md-typeset-kbd-color: var(--md-code-bg-color); + --md-typeset-kbd-accent-color var(--md-code-bg-color); + --md-typeset-kbd-border-color: var(--md-default-fg-color--light); } @media screen and (max-width: 76.1875em) { @@ -165,4 +173,7 @@ export default ({ theme }: RuleOptions) => ` --md-typeset-font-size: .7rem; } } + + --md-footer-bg-color: var(--md-default-bg-color); + --md-footer-bg-color--dark: var(--md-default-bg-color); `;